diff options
author | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2016-12-22 14:50:29 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2016-12-22 14:50:29 +0000 |
commit | 8db9d05e0f0642262300e89585da7c2667928993 (patch) | |
tree | b224567ef58decaaa51a7eba54c6eee97a6dd51a /gcc/tree-pretty-print.c | |
parent | cbbb9dabbb498b27ca4cf7337a7c8aa013498bb0 (diff) | |
download | gcc-8db9d05e0f0642262300e89585da7c2667928993.zip gcc-8db9d05e0f0642262300e89585da7c2667928993.tar.gz gcc-8db9d05e0f0642262300e89585da7c2667928993.tar.bz2 |
varasm: Propagate litpool decl alignment to generated RTX.
When pushing a value into the literal pool the resulting decl might
get a higher alignment than the original expression depending on how a
target defines CONSTANT_ALIGNMENT. Generating an RTX for the constant
pool access we currently use the alignment from the original
expression. Changed with the attached patch.
This fixes a GCC 6 regression for S/390. For arrays of string
constants as in the attached testcase encode_section_info is not able
to figure out that the constant pool slot is already properly aligned
since the mem_align field in the rtx is not set properly.
gcc/ChangeLog:
2016-12-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* varasm.c (build_constant_desc): Use the alignment of the var
decl instead of the original expression.
gcc/testsuite/ChangeLog:
2016-12-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/litpool-str-1.c: New test.
From-SVN: r243888
Diffstat (limited to 'gcc/tree-pretty-print.c')
0 files changed, 0 insertions, 0 deletions