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

--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Richard Sandiford <rsand...@gcc.gnu.org>:

https://gcc.gnu.org/g:66946624b96b762985de56444d726a0ebd4e0df5

commit r13-7167-g66946624b96b762985de56444d726a0ebd4e0df5
Author: Richard Sandiford <richard.sandif...@arm.com>
Date:   Thu Apr 13 16:57:57 2023 +0100

    aarch64: Don't trust TYPE_ALIGN for pointers [PR108910]

    The aarch64 PCS rules ignore user alignment for scalars and
    vectors and use the "natural" alignment of the type.  GCC tried
    to calculate that natural alignment using:

      TYPE_ALIGN (TYPE_MAIN_VARIANT (type))

    But as discussed in the PR, it's possible that the main variant
    of a pointer type is an overaligned type (although that's usually
    accidental).

    This isn't known to be a problem for other types, so this patch
    changes the bare minimum.  It might be that we need to ignore
    TYPE_ALIGN in other cases too.

    gcc/
            PR target/108910
            * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
            not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.

    gcc/testsuite/
            PR target/108910
            * gcc.dg/torture/pr108910.c: New test.

Reply via email to