re PR target/77728 (Miscompilation multiple vector iteration on ARM)
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
Tue, 25 Apr 2017 16:46:34 +0000 (16:46 +0000)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 25 Apr 2017 16:46:34 +0000 (18:46 +0200)
commit7629ae90d817ea1cb6928b1fe7036ef309ff094f
tree94d3e4a8dc12f918f503afccde68915c08a6e229
parent2ef42cf92408dadf44b5418b1c369bf0aa36d657
re PR target/77728 (Miscompilation multiple vector iteration on ARM)

PR target/77728
* config/arm/arm.c: Include gimple.h.
(aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
returns negative, increment ncrn only if it returned positive.
(arm_needs_doubleword_align): Return int instead of bool,
ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
members, but if there is any such non-FIELD_DECL
> PARM_BOUNDARY aligned decl, return -1 instead of false.
(arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
returns negative, increment nregs only if it returned positive.
(arm_setup_incoming_varargs): Likewise.
(arm_function_arg_boundary): Emit -Wpsabi note if
arm_needs_doubleword_align returns negative, return
DOUBLEWORD_ALIGNMENT only if it returned positive.
testsuite/
* g++.dg/abi/pr77728-1.C: New test.

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