The following code snippet causes an ICE since GCC 4.1.0: =============================== long double longjmp(); void foo() { longjmp(); } ===============================
bug.c: In function 'foo': bug.c:3: error: in basic block 3: bug.c:3: error: flow control insn inside a basic block (call_insn 8 7 23 3 (set (reg:XF 8 st) (call (mem:QI (symbol_ref:DI ("longjmp") [flags 0x41] <function_decl 0x2aaaaaf3da00 longjmp>) [0 S1 A8]) (const_int 0 [0x0]))) 739 {*call_value_0_rex64} (nil) (expr_list:REG_DEAD (reg:QI 0 ax) (expr_list:REG_NORETURN (const_int 0 [0x0]) (nil))) (expr_list:REG_DEP_TRUE (use (reg:QI 0 ax)) (nil))) bug.c:3: internal compiler error: in rtl_verify_flow_info_1, at cfgrtl.c:1938 Please submit a full bug report, [etc.] -- Summary: [4.1/4.2 regression] ICE with longjmp Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, monitored Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: reichelt at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27802