This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: new SIGSEGV in jump.c
- To: law at cygnus dot com
- Subject: Re: new SIGSEGV in jump.c
- From: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>
- Date: Wed, 8 Jul 1998 22:24:30 +0200
- Cc: egcs-bugs at cygnus dot com
Am Wed, 08 Jul 1998 schrieb Franz Sirl:
>Am Wed, 08 Jul 1998 schrieb Jeffrey A Law:
>>In message <98070621161400.08933@ns1102.munich.netsurf.de>you write:
>> > -> if (GET_CODE (insn) == INSN
>> > && (set = single_set (insn)) != 0
>> > && ((reg = SET_DEST (set), GET_CODE (reg) == REG)
>> > || (GET_CODE (reg) == SUBREG
>> > && (reg = SUBREG_REG (reg), GET_CODE (reg) == REG)))
>> > && REGNO (reg) >= FIRST_PSEUDO_REGISTER
>> > && REGNO_FIRST_UID (REGNO (reg)) == INSN_UID (insn))
>> >
>> > (xxgdb) print insn
>> > $2 = 0x1c2c528
>> > (xxgdb) pr
>> > (insn 177 52 178 (set (reg:CCUNS 123)
>> > (compare:CCUNS (reg/s:SI 92)
>> > (const_int 5))) -1 (nil)
>> > (nil))
>> >
>> > (xxgdb) pi
>> > $3 = {0xb1, 0x1c2d608, 0x1c2c568, 0x1c2c518, 0xffffffff, 0x0, 0x0}
>> >
>> > If I interpret the assembler correctly the NULL pointer dereference happens
>> > here:
>> > && REGNO_FIRST_UID (REGNO (reg)) == INSN_UID (insn))
>>What is "reg" (OK, I think I know what it should be, but let's make
>>100% sure).
>>
>>p debug_rtx(reg)
>>
>>What is the value of reg_n_info->num_elements?
>
>(xxgdb) p debug_rtx(reg)
>(reg:SI 126)
>$1 = void
>(xxgdb) p reg_n_info->num_elements
>$2 = 126
>
>>Is is possible this is the problem fixed by rth's recent change to
>>regclass.c?
>
>No, just retested with updated cvs-egcs. I even put back rth's CONSTANT_P_RTX
>patch, which floods me with warnings when compiling c++ (when will the rs6000
>backend be converted?).
Oops. the cvs update did change _something_, so to limit the confusion, here's
the insn that belongs to the above debug output.
(xxgdb) print insn
$3 = 0x1b2c800
(xxgdb) pr
(insn 181 180 182 (set (reg:SI 126)
(not:SI (reg:SI 124))) -1 (nil)
(nil))
Franz.