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

--- Comment #4 from Alexandre Oliva <aoliva at gcc dot gnu.org> ---
Author: aoliva
Date: Thu Sep 20 19:34:44 2018
New Revision: 264450

URL: https://gcc.gnu.org/viewcvs?rev=264450&root=gcc&view=rev
Log:
[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 <rguent...@suse.de>
for  gcc/ChangeLog

        PR middle-end/87054
        * gimplify.c (gimplify_expr): Retain alignment of
        addressable lvalue in dereference.

From: Alexandre Oliva <ol...@adacore.com>
for  gcc/testsuite/ChangeLog

        PR middle-end/87054
        * gcc.dg/pr87054.c: New.

Added:
    trunk/gcc/testsuite/gcc.dg/pr87054.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/gimplify.c
    trunk/gcc/testsuite/ChangeLog

Reply via email to