aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSam Tebbs <sam.tebbs@arm.com>2019-08-09 14:11:54 +0000
committerSam Tebbs <samtebbs@gcc.gnu.org>2019-08-09 14:11:54 +0000
commit9c4cb8615fc71a117c00844fd608ae6788acfd92 (patch)
treef75cceaf4fac899843aadd92b29a32da7e4527ff /gcc
parent33e8e0ee4cd185f5073546fed2199c6ec76933ca (diff)
downloadgcc-9c4cb8615fc71a117c00844fd608ae6788acfd92.zip
gcc-9c4cb8615fc71a117c00844fd608ae6788acfd92.tar.gz
gcc-9c4cb8615fc71a117c00844fd608ae6788acfd92.tar.bz2
[PATCH][GCC][AARCH64] Add effective-target check to b key execution tests
gcc/testsuite 2019-08-09 Sam Tebbs<sam.tebbs@arm.com> * lib/target-supports.exp (check_effective_target_arm_v8_4a_bkey_directive): New proc. * g++.target/aarch64/return_address_sign_b_exception.C, return_address_sign_ab_exception.C: Add dg-require-effective-target checks. From-SVN: r274236
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/g++.target/aarch64/return_address_sign_ab_exception.C1
-rw-r--r--gcc/testsuite/g++.target/aarch64/return_address_sign_b_exception.C1
-rw-r--r--gcc/testsuite/lib/target-supports.exp10
4 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7ab92df..51d0a87 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-09 Sam Tebbs <sam.tebbs@arm.com>
+
+ * lib/target-supports.exp
+ (check_effective_target_arm_v8_4a_bkey_directive): New proc.
+ * g++.target/aarch64/return_address_sign_b_exception.C,
+ return_address_sign_ab_exception.C: Add dg-require-effective-target
+ checks.
+
2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
PR middle-end/90313
diff --git a/gcc/testsuite/g++.target/aarch64/return_address_sign_ab_exception.C b/gcc/testsuite/g++.target/aarch64/return_address_sign_ab_exception.C
index 520cd18..ead11de 100644
--- a/gcc/testsuite/g++.target/aarch64/return_address_sign_ab_exception.C
+++ b/gcc/testsuite/g++.target/aarch64/return_address_sign_ab_exception.C
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "--save-temps" } */
+/* { dg-require-effective-target arm_v8_3a_bkey_directive } */
__attribute__((target("branch-protection=pac-ret+leaf")))
int foo_a () {
diff --git a/gcc/testsuite/g++.target/aarch64/return_address_sign_b_exception.C b/gcc/testsuite/g++.target/aarch64/return_address_sign_b_exception.C
index eab2869..2f82731 100644
--- a/gcc/testsuite/g++.target/aarch64/return_address_sign_b_exception.C
+++ b/gcc/testsuite/g++.target/aarch64/return_address_sign_b_exception.C
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-mbranch-protection=pac-ret+leaf+b-key --save-temps" } */
+/* { dg-require-effective-target arm_v8_3a_bkey_directive } */
int foo () {
throw 22;
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 815e837..3c50b89 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -9463,6 +9463,16 @@ proc check_effective_target_arm_v8_3a_complex_neon_hw { } {
} [add_options_for_arm_v8_3a_complex_neon ""]]
}
+# Return 1 if the assembler supports assembling the Armv8.3 pointer authentication B key directive
+proc check_effective_target_arm_v8_3a_bkey_directive { } {
+ return [check_no_compiler_messages cet object {
+ int main(void) {
+ asm (".cfi_b_key_frame");
+ return 0;
+ }
+ }]
+}
+
# Returns 1 if the target is using glibc, 0 otherwise.
proc check_effective_target_glibc { } {