re PR c/83844 (ICE with warn_if_not_aligned attribute)
authorJakub Jelinek <jakub@redhat.com>
Tue, 16 Jan 2018 15:08:32 +0000 (16:08 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 16 Jan 2018 15:08:32 +0000 (16:08 +0100)
commit38943500babbfda935c1108a16ecbb03cb1a33e8
tree8c56b282c07c85b373c44f431ced983c5995758c
parent42b394ff00b100d2c968db6478c87a259333ccec
re PR c/83844 (ICE with warn_if_not_aligned attribute)

PR c/83844
* stor-layout.c (handle_warn_if_not_align): Use byte_position and
multiple_of_p instead of unchecked tree_to_uhwi and UHWI check.
If off is not INTEGER_CST, issue a may not be aligned warning
rather than isn't aligned.  Use isn%'t rather than isn't.
* fold-const.c (multiple_of_p) <case BIT_AND_EXPR>: Don't fall through
into MULT_EXPR.
<case MULT_EXPR>: Improve the case when bottom and one of the
MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that
operand, in that case check if the other operand is multiple of
bottom divided by the INTEGER_CST operand.

* gcc.dg/pr83844.c: New test.

From-SVN: r256745
gcc/ChangeLog
gcc/fold-const.c
gcc/stor-layout.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr83844.c [new file with mode: 0644]