This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases
- From: "hp at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 8 Jul 2011 21:28:03 +0000
- Subject: [Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases
- Auto-submitted: auto-generated
- References: <bug-49680-4@http.gcc.gnu.org/bugzilla/>
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.)