The following testcase triggers an ICE when compiled with "-O2 -ftree-vectorize" on x86_64-unknown-linux-gnu (mainline):
===================================================== struct A { int* x[2]; A() { for (int** p=x; p<x+2; ++p) *p = 0; } }; struct B { char c; A a0, a1, a2, a3, *p; B() {} B(const B& b) : c(), a0(b.a0), p(b.p) {} ~B() { delete p; } }; inline void foo(const B& b) { new B(b); } void bar() { foo(B()); foo(B()); } ===================================================== bug.cc: In function 'void bar()': bug.cc:19: internal compiler error: tree check: expected ssa_name, have struct_field_tag in is_old_name, at tree-into-ssa.c:466 Please submit a full bug report, [etc.] This is similar to PR 26169, but hasn't been fixed yet. -- Summary: [4.2 regression] ICE in is_old_name, at tree-into- ssa.c:466 Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, monitored Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: reichelt at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26197