re PR target/77728 (Miscompilation multiple vector iteration on ARM)
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
Tue, 25 Apr 2017 13:52:33 +0000 (13:52 +0000)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 25 Apr 2017 13:52:33 +0000 (15:52 +0200)
commit2ec07fa616d283c60844031818c239f1714d31c9
tree24afe4272202c063d39b0f4338594a15bc0177b6
parenteb2d5ccc332fa3b9eabd5de8e6ac8a3406a5e40e
re PR target/77728 (Miscompilation multiple vector iteration on ARM)

PR target/77728
* config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
type.
(aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
the alignment computation, but return their maximum in warn_alignment.
(aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
is smaller.
(aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
(aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
caller.
testsuite/
* g++.dg/abi/pr77728-2.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r247239
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/pr77728-2.C [new file with mode: 0644]