[Bug bootstrap/87417] [9 regression] Internal error: abort in attr_alt_intersection, at genattrtab.c:2357

iii at linux dot ibm.com gcc-bugzilla@gcc.gnu.org
Mon Sep 24 20:44:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87417

--- Comment #3 from Ilya Leoshkevich <iii at linux dot ibm.com> ---
Valgrind has found an issue:

==12738== Invalid write of size 4
==12738==    at 0x804CC48: attr_rtx_1 (genattrtab.c:518)
==12738==    by 0x804CC48: attr_rtx(rtx_code, ...) (genattrtab.c:588)
==12738==    by 0x804EA6D: mk_attr_alt (genattrtab.c:2406)
==12738==    by 0x804EA6D: check_attr_test(file_location, rtx_def*, attr_desc*)
(genattrtab.c:709)
==12738==    by 0x804EBBF: check_attr_value(file_location, rtx_def*,
attr_desc*) (genattrtab.c:945)
==12738==    by 0x804A0AA: check_defs (genattrtab.c:1108)
==12738==    by 0x804A0AA: main (genattrtab.c:5253)
==12738==  Address 0x6d79aa0 is 0 bytes after a block of size 16 alloc'd
==12738==    at 0x402E27C: malloc (vg_replace_malloc.c:299)
==12738==    by 0x8064FD3: xmalloc (xmalloc.c:147)
==12738==    by 0x805233E: ggc_internal_alloc (ggc.h:130)
==12738==    by 0x805233E: ggc_alloc_rtx_def_stat (ggc.h:275)
==12738==    by 0x805233E: rtx_alloc_stat_v(rtx_code, int) (rtl.c:209)
==12738==    by 0x805236D: rtx_alloc(rtx_code) (rtl.c:233)
==12738==    by 0x804CC39: attr_rtx_1 (genattrtab.c:516)
==12738==    by 0x804CC39: attr_rtx(rtx_code, ...) (genattrtab.c:588)
==12738==    by 0x804EA6D: mk_attr_alt (genattrtab.c:2406)
==12738==    by 0x804EA6D: check_attr_test(file_location, rtx_def*, attr_desc*)
(genattrtab.c:709)
==12738==    by 0x804EBBF: check_attr_value(file_location, rtx_def*,
attr_desc*) (genattrtab.c:945)
==12738==    by 0x804A0AA: check_defs (genattrtab.c:1108)
==12738==    by 0x804A0AA: main (genattrtab.c:5253)

Apparently allocated EQ_ATTR_ALT is smaller than I expect: 16 bytes are clearly
not enough to contain rtx_def and 2 HOST_WIDE_INTs.


More information about the Gcc-bugs mailing list