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

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

https://gcc.gnu.org/g:66700dde0dfb2c2b07d771f90df1fe16d1d61ce9

commit r12-9416-g66700dde0dfb2c2b07d771f90df1fe16d1d61ce9
Author: Richard Sandiford <richard.sandif...@arm.com>
Date:   Mon Apr 17 14:41:00 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.

    (cherry picked from commit 66946624b96b762985de56444d726a0ebd4e0df5)

Reply via email to