http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680
--- Comment #5 from Hans-Peter Nilsson <hp at gcc dot gnu.org> 2011-07-08 21:27:01 UTC --- (In reply to comment #4) > I see a similar build failure for cris-elf, FWIW so I take a wild guess and > assume it's the same issue. ...but in the case for cris-elf it seems the immediate cause of the SEGV is the appearance of notes between the case-insns and the jump-table, which is probably fixed by using prev_nonnote_insn instead of PREV_INSN in cris.c:cris_asm_output_case_end. This may or may not be related to the build failure in this PR, but I thought better mentioned than not. (jump_insn 18 17 76 (parallel [ (set (pc) (if_then_else (ltu (reg:SI 10 r10 [34]) (const_int 5 [0x5])) (plus:SI (sign_extend:SI (mem:HI (plus:SI (mult:SI (reg:SI 10 r10 [34]) (const_int 2 [0x2])) (pc)) [0 S2 A8])) (pc)) (label_ref 30))) (use (label_ref 19)) ]) /tmp/hpautotest-gcc1/gcc/libgcc/../gcc/unwind-pe.h:77 116 {*casesi_adds_w} (expr_list:REG_BR_PRED (const_int 12 [0xc]) (expr_list:REG_DEAD (reg:SI 10 r10 [34]) (insn_list:REG_LABEL_TARGET 30 (nil)))) -> 19) (note 76 18 74 NOTE_INSN_CFI_LABEL) (note 74 76 19 .cfi_offset 16, -4 NOTE_INSN_CFI) (code_label 19 74 20 36 "" [1 uses]) (jump_insn 20 19 21 (addr_diff_vec:HI (label_ref:SI 19) [ (label_ref:SI 22) (label_ref:SI 30) (label_ref:SI 51) (label_ref:SI 22) (label_ref:SI 26) ] (const_int 0 [0]) (const_int 0 [0])) /tmp/hpautotest-gcc1/gcc/libgcc/../gcc/unwind-pe.h:77 -1 (expr_list:REG_BR_PRED (const_int 12 [0xc]) (nil))) This seems like it'd be fixed by using prev_nonnote_insn instead of PREV_INSN in cris.c:cris_asm_output_case_end, which is where the SEGV is. This may or may not be related to the build failure in this PR, but I thought better mentioned than not. (No, not the case-table thingy, but maybe notes appearing where there used to be none.)