------- Comment #2 from reichelt at gcc dot gnu dot org 2009-11-13 10:45 ------- Confirmed. Reduced testcase (compile with -O2):
============================================ typedef void* Ptr; struct A { int i; union { Ptr p; char *q; } u; }; static void foo(struct A *p, char *q) { if (p->i) p->u.p = 0; else p->u.q = q; } void bar(struct A *p, char *q) { foo(p, q); } ============================================ -- reichelt at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |reichelt at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |ice-on-valid-code, monitored Last reconfirmed|0000-00-00 00:00:00 |2009-11-13 10:45:15 date| | Summary|internal compiler error: |[4. Regression] ICE |verify_stmts failed (non- |verify_stmts failed (non- |trivial conversion at |trivial conversion at |assignment) |assignment) Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42025