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
+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
/* { 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 () {
/* { 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;
} [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 { } {