The 04/22/2020 15:22, Christophe Lyon wrote: > The new test fails with ilp32, not sure if that's supposed to work? > > FAIL: gcc.target/aarch64/pr94514.c (test for excess errors) > Excess errors: > /gcc/testsuite/gcc.target/aarch64/pr94514.c:27:4: warning: cast to > pointer from integer of different size [-Wint-to-pointer-cast] > > spawn > /aci-gcc-fsf/builds/gcc-fsf-gccsrc/tools/aarch64-none-elf/invoke-foundation-v8-bare-metal.sh > ./pr94514.exe > force_unwind_stop: CFA: 0xefffff80 PC: 0x80001304 actions: 10 > force_unwind_stop: CFA: 0xefffff90 PC: 0x8000133c actions: 10 > Terminated by exception. > > *** EXIT code 126 > gcc.target/aarch64/pr94514.c execution test (reason: TCL LOOKUP CHANNEL exp7) > FAIL: gcc.target/aarch64/pr94514.c execution test > > (executed using the Foundation Model) > > > The C++ test compiles without warnings, but fails at execution too ... > Maybe you just want to skip the test for ilp32?
i didn't test ilp32, i would expect a compile time error for __attribute__((target("branch-protection=pac-ret"))) on ilp32, or just ignoring it (which would have worked), runtime error for this on a pac-enabled system is nasty. i disabled the test on ilp32 as an obvious fix (attached), and raised PR94729 for the attribute handling in ilp32. thanks for catching this.
>From 744b3e4478df83f54543964b8eb7250eb9bb6d40 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy <szabolcs.n...@arm.com> Date: Thu, 23 Apr 2020 11:26:10 +0100 Subject: [PATCH] aarch64: disable tests on ilp32 [PR94514] branch-protection=pac-ret is only supported with lp64 abi. gcc/testsuite/ChangeLog: PR target/94514 * g++.target/aarch64/pr94514.C: Require lp64. * gcc.target/aarch64/pr94514.c: Likewise. --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/g++.target/aarch64/pr94514.C | 1 + gcc/testsuite/gcc.target/aarch64/pr94514.c | 1 + 3 files changed, 8 insertions(+) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 245c1512c76..7e676f053a5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2020-04-23 Szabolcs Nagy <szabolcs.n...@arm.com> + + PR target/94514 + * g++.target/aarch64/pr94514.C: Require lp64. + * gcc.target/aarch64/pr94514.c: Likewise. + 2020-04-23 Jakub Jelinek <ja...@redhat.com> PR target/94707 diff --git a/gcc/testsuite/g++.target/aarch64/pr94514.C b/gcc/testsuite/g++.target/aarch64/pr94514.C index 2a8c949ba30..ae925cafeb6 100644 --- a/gcc/testsuite/g++.target/aarch64/pr94514.C +++ b/gcc/testsuite/g++.target/aarch64/pr94514.C @@ -1,5 +1,6 @@ /* PR target/94514. Unwind across mixed pac-ret and non-pac-ret frames. */ /* { dg-do run } */ +/* { dg-require-effective-target lp64 } */ __attribute__((noinline, target("branch-protection=pac-ret"))) static void do_throw (void) diff --git a/gcc/testsuite/gcc.target/aarch64/pr94514.c b/gcc/testsuite/gcc.target/aarch64/pr94514.c index bbbf5a6b0b3..cbc940421d2 100644 --- a/gcc/testsuite/gcc.target/aarch64/pr94514.c +++ b/gcc/testsuite/gcc.target/aarch64/pr94514.c @@ -1,5 +1,6 @@ /* PR target/94514. Unwind across mixed pac-ret and non-pac-ret frames. */ /* { dg-do run } */ +/* { dg-require-effective-target lp64 } */ /* { dg-options "-fexceptions -O2" } */ #include <unwind.h> -- 2.17.1