int foo (void) { if (0) { static union { long i; char c[8]; } u; u.i = 0x01020304; return u.c[0] == 0x01 && u.c[1] == 0x02; } return 0; }
ICEs at -g -O0 in dwarf2out_finish, because the UNION_TYPE has TYPE_CONTEXT set, but not to some FUNCTION_DECL, but to BLOCK (that has been optimized out). -- Summary: ICE in dwarf2out_finish Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27058