Hello all,

I'm building a powerpc cross of gcc-4.2.2 on RH 7.2 host and ran into this:

-> gdb build/genattrtab.orig core.20423
GNU gdb Red Hat Linux (5.2-2)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...

warning: core file may not match specified executable file.
Core was generated by `build/genattrtab ../../gcc/config/rs6000/rs6000.md insn-conditions.md'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/i686/libc.so.6...done.
Loaded symbols for /lib/i686/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
#0  attr_rtx_1 (code=AND, p=0xbfffe3d4) at ../../gcc/genattrtab.c:409
409             if (h->hashcode == hashcode
Breakpoint 1 at 0x8054d45: file ../../gcc/errors.c, line 132.
Breakpoint 2 at 0x8054cac: file ../../gcc/errors.c, line 96.
Breakpoint 3 at 0x4202bbea
Breakpoint 4 at 0x4202a758
(gdb) p h
$1 = (struct attr_hash *) 0x90000036
(gdb) p *h
Cannot access memory at address 0x90000036
(gdb) l
404               return rt_val;
405             }
406
407 hashcode = ((HOST_WIDE_INT) code + RTL_HASH (arg0) + RTL_HASH (arg1)); 408 for (h = attr_hash_table[hashcode % RTL_HASH_SIZE]; h; h = h->next)
409             if (h->hashcode == hashcode
410                 && GET_CODE (h->u.rtl) == code
411                 && XEXP (h->u.rtl, 0) == arg0
412                 && XEXP (h->u.rtl, 1) == arg1)
413               return h->u.rtl;
(gdb)


Host compiler details:
-> gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-113)

The bug is very hardly reproducable; on FC6 I was unable to reproduce after
running test loop overnight.

Has anyone seen this before?
I see that by design it is impossible for h->next to point to outside
of valid entry.

Currently, I'm running a loop with genattrtab linked with dmalloc. May be this will
shed some light...

Thanks for any help.

Regards,
Sergei



Reply via email to