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)