http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56635
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-03-18 Summary|[4.8 regression] internal |[4.8/4.9 regression] |compiler error: in |internal compiler error: in |find_lattice_value, at |find_lattice_value, at |tree-complex.c:15 |tree-complex.c:15 Ever Confirmed|0 |1 --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-03-18 08:26:32 UTC --- Reduced testcase (-O3): struct A { _Complex double a; }; struct B { A *b; void foo (void *); }; A operator / (A x, A y) { A r; r.a = x.a / y.a; return r; } void B::foo (void *x) { if (__real__ b[0].a) b[0] = (static_cast <B *>(x))->b[0] / b[0]; else b[0] = (static_cast <B *>(x))->b[0]; } The ICE is actually pr56635.C: In member function ‘void B::foo(void*)’: pr56635.C:13:1: error: invalid PHI argument B::foo (void *x) ^ MEM[(const struct A &)_9] pr56635.C:13:1: error: incompatible types in PHI argument 1 complex double const struct A cstore_10 = PHI <_11(3), MEM[(const struct A &)_9](4)> pr56635.C:13:1: internal compiler error: verify_gimple failed and looks like cselim bug. Started with http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=186501 but guess it just has been latent before that.