The below testcase ICEs in get_constraint_for_component_ref when compiled with -O1 or beyond on x86_64. Richard mentions that it also fails with trunk.
--------------------------------------- /* compile with gcc -c -Os -o foo.o foo.c */ typedef struct { struct { } z; } thang_t; struct widget { struct widget *p, *q; }; typedef struct thing { struct widget x; } thing_t; struct { int a; int b; int c; int d; int e; thang_t f; thing_t g; } my_struct; static void foo(thang_t *r) { splat(r);} void function(int blaz) { foo(&my_struct.f);} --------------------------------------- -- Summary: ICE in get_constraint_for_component_ref Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: matz at suse dot de GCC host triplet: x86_64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27409