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

--- Comment #8 from iii at gcc dot gnu.org ---
Author: iii
Date: Tue Sep 25 06:38:20 2018
New Revision: 264556

URL: https://gcc.gnu.org/viewcvs?rev=264556&root=gcc&view=rev
Log:
Fix EQ_ATTR_ALT size calculation (PR bootstrap/87417)

"r264537: Change EQ_ATTR_ALT to support up to 64 alternatives" changed
the format of EQ_ATTR_ALT from ii to ww.  This broke the bootstrap on
32-bit systems, because the formula for rtx_code_size assumed that only
certain codes contain HOST_WIDE_INTs.  This did not surface on 64-bit
systems, because rtunion is 8 bytes anyway, but on 32-bit systems it's
only 4 bytes.  This resulted in out-of-bounds writes and memory
corruptions in genattrtab.

gcc/ChangeLog:

2018-09-25  Ilya Leoshkevich  <i...@linux.ibm.com>

        PR bootstrap/87417
        * rtl.c (rtx_code_size): Take into account that EQ_ATTR_ALT
        contains HOST_WIDE_INTs when computing its size.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/rtl.c

Reply via email to