Skip to content

Commit 8781969

Browse files
committed
Add a test that nopauth can disable pauth in v8.3+ extensions
1 parent c2ab29b commit 8781969

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

clang/test/Preprocessor/aarch64-target-features.c

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -497,22 +497,29 @@
497497
// CHECK-MEMTAG: __ARM_FEATURE_MEMORY_TAGGING 1
498498

499499
// ================== Check Pointer Authentication Extension (PAuth).
500-
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-OFF %s
501-
// RUN: %clang -target arm64-none-linux-gnu -march=armv8.5-a -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-OFF %s
502-
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a+pauth -mbranch-protection=none -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-ON %s
500+
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -x c -E -dM %s -o - | FileCheck -check-prefixes=CHECK-PAUTH-OFF,CHECK-CPU-NOPAUTH %s
501+
// RUN: %clang -target arm64-none-linux-gnu -march=armv8.5-a+nopauth -x c -E -dM %s -o - | FileCheck -check-prefixes=CHECK-PAUTH-OFF,CHECK-CPU-NOPAUTH %s
502+
// RUN: %clang -target arm64-none-linux-gnu -march=armv8.5-a -x c -E -dM %s -o - | FileCheck -check-prefixes=CHECK-PAUTH-OFF,CHECK-CPU-PAUTH %s
503+
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a+pauth -mbranch-protection=none -x c -E -dM %s -o - | FileCheck -check-prefixes=CHECK-PAUTH-OFF,CHECK-CPU-PAUTH %s
503504
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=none -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-OFF %s
504505
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=bti -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-OFF %s
505506
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=standard -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH %s
506507
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=pac-ret -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH %s
507508
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=pac-ret+b-key -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-BKEY %s
508509
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=pac-ret+leaf -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-ALL %s
509510
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=pac-ret+leaf+b-key -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-BKEY-ALL %s
510-
// CHECK-PAUTH-OFF-NOT: __ARM_FEATURE_PAC_DEFAULT
511-
// CHECK-PAUTH: #define __ARM_FEATURE_PAC_DEFAULT 1
512-
// CHECK-PAUTH-BKEY: #define __ARM_FEATURE_PAC_DEFAULT 2
513-
// CHECK-PAUTH-ALL: #define __ARM_FEATURE_PAC_DEFAULT 5
514-
// CHECK-PAUTH-BKEY-ALL: #define __ARM_FEATURE_PAC_DEFAULT 6
515-
// CHECK-PAUTH-ON: #define __ARM_FEATURE_PAUTH 1
511+
//
512+
// Note: PAUTH-OFF - pac-ret is disabled
513+
// CPU-NOPAUTH - FEAT_PAUTH support is disabled (but pac-ret can still use HINT-encoded instructions)
514+
//
515+
// CHECK-CPU-NOPAUTH-NOT: __ARM_FEATURE_PAUTH
516+
// CHECK-PAUTH-OFF-NOT: __ARM_FEATURE_PAC_DEFAULT
517+
// CHECK-PAUTH: #define __ARM_FEATURE_PAC_DEFAULT 1
518+
// CHECK-PAUTH-BKEY: #define __ARM_FEATURE_PAC_DEFAULT 2
519+
// CHECK-PAUTH-ALL: #define __ARM_FEATURE_PAC_DEFAULT 5
520+
// CHECK-PAUTH-BKEY-ALL: #define __ARM_FEATURE_PAC_DEFAULT 6
521+
// CHECK-CPU-PAUTH: #define __ARM_FEATURE_PAUTH 1
522+
// CHECK-CPU-NOPAUTH-NOT: __ARM_FEATURE_PAUTH
516523

517524
// ================== Check Branch Target Identification (BTI).
518525
// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-BTI-OFF %s

0 commit comments

Comments
 (0)