http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53589
Bug #: 53589 Summary: [4.7/4.8 Regression] ICE in maybe_record_trace_start with asm goto Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: ja...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org extern void foo (void) __attribute__ ((__noreturn__)); void bar (int x) { if (x < 0) foo (); if (x == 0) return; __asm goto ("" : : : : lab); lab:; } ICEs on x86_64-linux: LC_ALL=C ./cc1 -O2 rh829247.c -quiet rh829247.c: In function 'bar': rh829247.c:12:1: internal compiler error: in maybe_record_trace_start, at dwarf2cfi.c:2193 } ^ Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. The problem is that we end up with asm goto that branches to the fallthru label and shrink-wrapping wants to redirect the edge, but leaves broken CFG around.