Compiler output:
$ gcc testcase.C        
testcase.C:7:18: error: expected primary-expression before ')' token
testcase.C: In function 'void __static_initialization_and_destruction_0(int,
int)':
testcase.C:8:19: error: Invalid first operand of MEM_REF.
<<< error >>>
testcase.C:8:18: note: in statement
s = MEM[(const struct S &)<<< error >>>];

testcase.C:8:19: error: Invalid address operand in MEM_REF.
MEM[(const struct S &)<<< error >>>];

s = MEM[(const struct S &)<<< error >>>];

testcase.C:8:19: internal compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

----- testcase.C -----
struct S
{
  S & m ();
  int *p;
};

S foo (int, int =);
S s = foo (0).m ();
----------------------

Tested revisions:
r163921 - crash
r161659 - crash
r161170 - OK


-- 
           Summary: [4.6 Regression] ICE: verify_stmts failed: Invalid
                    address operand in MEM_REF. on invalid C++ code
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: zsojka at seznam dot cz


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45571

Reply via email to