Fix EQ_ATTR_ALT size calculation (PR bootstrap/87417)
authorIlya Leoshkevich <iii@linux.ibm.com>
Tue, 25 Sep 2018 06:38:20 +0000 (06:38 +0000)
committerIlya Leoshkevich <iii@gcc.gnu.org>
Tue, 25 Sep 2018 06:38:20 +0000 (06:38 +0000)
commitd5c4f75ddbf2994b6c462ed4b624ab5fcf23674f
treedfab1d5f8d007337eaf612fa53c320d10aa138c9
parent75902396e6dbed2a3cacb42452992db156c6f32f
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  <iii@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.

From-SVN: r264556
gcc/ChangeLog
gcc/rtl.c