This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases


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.)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]