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

Reply via email to