[Bug tree-optimization/47714] [4.6 Regression] verify_ssa fails with error: invalid argument to gimple call

2011-03-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47714

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2011-03-09 
08:43:32 UTC ---
BTW, if you adjust the testcase (at least not to use explicit DImode type), I'd
say this patch is obvious, thunks never take addresses of its parameters and
whether the original method takes those addresses is irrelevant to thunks.
You could certainly handle TREE_ADDRESSABLE in assemble_thunk by copying siuch
arguments into a temporary, but that would be good just to shut up
verification.


[Bug tree-optimization/47714] [4.6 Regression] verify_ssa fails with error: invalid argument to gimple call

2011-03-09 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47714

--- Comment #10 from Martin Jambor jamborm at gcc dot gnu.org 2011-03-09 
12:02:34 UTC ---
I have posted the patch (with the simpler testcase, thanks) to the
mailing list:

http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00461.html

If there are no objections, I'll commit it in a few hours.


[Bug tree-optimization/47714] [4.6 Regression] verify_ssa fails with error: invalid argument to gimple call

2011-03-09 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47714

--- Comment #11 from Martin Jambor jamborm at gcc dot gnu.org 2011-03-09 
16:59:59 UTC ---
Author: jamborm
Date: Wed Mar  9 16:59:55 2011
New Revision: 170822

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=170822
Log:
2011-03-09  Martin Jambor  mjam...@suse.cz

PR tree-optimization/47714
* cp/method.c (use_thunk): Clear addressable flag of thunk arguments.

* testsuite/g++.dg/torture/pr47714.C: New test.



Added:
trunk/gcc/testsuite/g++.dg/torture/pr47714.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/method.c
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/47714] [4.6 Regression] verify_ssa fails with error: invalid argument to gimple call

2011-03-09 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47714

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #12 from Martin Jambor jamborm at gcc dot gnu.org 2011-03-09 
17:02:23 UTC ---
Fixed.


[Bug tree-optimization/47714] [4.6 Regression] verify_ssa fails with error: invalid argument to gimple call

2011-03-08 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47714

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code,
   ||wrong-code
   Priority|P3  |P1
  Known to work||4.5.2
   Target Milestone|--- |4.6.0
Summary|verify_ssa fails with   |[4.6 Regression] verify_ssa
   |error: invalid argument to  |fails with error: invalid
   |gimple call |argument to gimple call

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-03-08 
16:56:54 UTC ---
Fails at -O0.


[Bug tree-optimization/47714] [4.6 Regression] verify_ssa fails with error: invalid argument to gimple call

2011-03-08 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47714

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-03-08 
17:07:01 UTC ---
More reduced testcase:

typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
class CodeModule {
public:
virtual ~CodeModule() { }
};
class CodeModules {
virtual const CodeModule* GetModuleForAddress(u_int64_t address) const = 0;
};
templatetypename AddressType, typename EntryType class RangeMap
{
public:
RangeMap() ;
bool RetrieveRange(const AddressType address, EntryType *entry) const;
};
class MinidumpObject {
public:
virtual ~MinidumpObject() { }
};
class MinidumpModule : public MinidumpObject, public CodeModule { };
class MinidumpModuleList : public CodeModules {
virtual const MinidumpModule* GetModuleForAddress(u_int64_t address) const;
RangeMapu_int64_t, unsigned int *range_map_;
};
const MinidumpModule*
MinidumpModuleList::GetModuleForAddress(u_int64_t address) const
{
  unsigned int module_index;
  range_map_-RetrieveRange(address, module_index);
}


[Bug tree-optimization/47714] [4.6 Regression] verify_ssa fails with error: invalid argument to gimple call

2011-03-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47714

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-03-08 
20:42:17 UTC ---
Even more reduced testcase:

struct A { virtual ~A () {} };
struct B { virtual ~B () {} };
struct C { virtual const A *foo (int) const = 0; };
struct E : public B, public A { };
struct F : public C
{
  virtual const E *foo (int) const;
};
void bar (int );

const E *
F::foo (int x) const
{
  bar (x);
  return __null;
}


[Bug tree-optimization/47714] [4.6 Regression] verify_ssa fails with error: invalid argument to gimple call

2011-03-08 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47714

--- Comment #8 from Martin Jambor jamborm at gcc dot gnu.org 2011-03-08 
20:46:42 UTC ---
Created attachment 23584
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23584
proposed patch

I'm currently bootstrapping and testing this patch.