aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@gcc.gnu.org>2018-09-20 19:34:44 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2018-09-20 19:34:44 +0000
commit468e1ef4be47810052687c8193d106e591c74bc4 (patch)
tree420d98d2ccab135a9a94d7371b6f9f0f1ae6acd6 /gcc/gcc.c
parent894f597f8fb8693a5d0f5834e98a8ccebbbb9106 (diff)
downloadgcc-468e1ef4be47810052687c8193d106e591c74bc4.zip
gcc-468e1ef4be47810052687c8193d106e591c74bc4.tar.gz
gcc-468e1ef4be47810052687c8193d106e591c74bc4.tar.bz2
[PR87054] fix unaligned access
Building an ADDR_EXPR uses the canonical type to build the pointer type, but then, as we dereference it, we lose track of lax alignment known to apply to the dereferenced object. This might not be a problem in general, but it is when the compiler implicitly introduces address taking and dereferencing, as it does for asm statements, and as it may do in some loop optimizations. From: Richard Biener <rguenther@suse.de> for gcc/ChangeLog PR middle-end/87054 * gimplify.c (gimplify_expr): Retain alignment of addressable lvalue in dereference. From: Alexandre Oliva <oliva@adacore.com> for gcc/testsuite/ChangeLog PR middle-end/87054 * gcc.dg/pr87054.c: New. From-SVN: r264450
Diffstat (limited to 'gcc/gcc.c')
0 files changed, 0 insertions, 0 deletions