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: [email protected]
ReportedBy: [email protected]
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.