diff options
Diffstat (limited to 'clang/test/CodeGen/address-safety-attr-flavors.cpp')
-rw-r--r-- | clang/test/CodeGen/address-safety-attr-flavors.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/CodeGen/address-safety-attr-flavors.cpp b/clang/test/CodeGen/address-safety-attr-flavors.cpp index fd05fb4112d..815cbae78a6 100644 --- a/clang/test/CodeGen/address-safety-attr-flavors.cpp +++ b/clang/test/CodeGen/address-safety-attr-flavors.cpp @@ -2,6 +2,8 @@ // HWASan. Either __attribute__((no_sanitize("address")) or // __attribute__((no_sanitize("kernel-address")) disables both ASan and KASan // instrumentation. +// Same for __attribute__((no_sanitize("hwaddress")) and +// __attribute__((no_sanitize("kernel-hwddress")) and HWASan and KHWASan. // RUN: %clang_cc1 -triple i386-unknown-linux -disable-O0-optnone \ // RUN: -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-NOASAN %s @@ -18,11 +20,16 @@ // RUN: -disable-O0-optnone -emit-llvm -o - %s | \ // RUN: FileCheck -check-prefix=CHECK-HWASAN %s +// RUN: %clang_cc1 -triple i386-unknown-linux -fsanitize=kernel-hwaddress \ +// RUN: -disable-O0-optnone -emit-llvm -o - %s | \ +// RUN: FileCheck -check-prefix=CHECK-KHWASAN %s + int HasSanitizeAddress() { return 1; } // CHECK-NOASAN: {{Function Attrs: noinline nounwind$}} // CHECK-ASAN: Function Attrs: noinline nounwind sanitize_address // CHECK-KASAN: Function Attrs: noinline nounwind sanitize_address // CHECK-HWASAN: Function Attrs: noinline nounwind sanitize_hwaddress +// CHECK-KHWASAN: Function Attrs: noinline nounwind sanitize_hwaddress __attribute__((no_sanitize("address"))) int NoSanitizeQuoteAddress() { return 0; @@ -31,12 +38,14 @@ __attribute__((no_sanitize("address"))) int NoSanitizeQuoteAddress() { // CHECK-ASAN: {{Function Attrs: noinline nounwind$}} // CHECK-KASAN: {{Function Attrs: noinline nounwind$}} // CHECK-HWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}} +// CHECK-KHWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}} __attribute__((no_sanitize_address)) int NoSanitizeAddress() { return 0; } // CHECK-NOASAN: {{Function Attrs: noinline nounwind$}} // CHECK-ASAN: {{Function Attrs: noinline nounwind$}} // CHECK-KASAN: {{Function Attrs: noinline nounwind$}} // CHECK-HWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}} +// CHECK-KHWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}} __attribute__((no_sanitize("kernel-address"))) int NoSanitizeKernelAddress() { return 0; @@ -45,6 +54,7 @@ __attribute__((no_sanitize("kernel-address"))) int NoSanitizeKernelAddress() { // CHECK-ASAN: {{Function Attrs: noinline nounwind$}} // CHECK-KASAN: {{Function Attrs: noinline nounwind$}} // CHECK-HWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}} +// CHECK-KHWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}} __attribute__((no_sanitize("hwaddress"))) int NoSanitizeHWAddress() { return 0; @@ -53,3 +63,13 @@ __attribute__((no_sanitize("hwaddress"))) int NoSanitizeHWAddress() { // CHECK-ASAN: {{Function Attrs: noinline nounwind sanitize_address$}} // CHECK-KASAN: {{Function Attrs: noinline nounwind sanitize_address$}} // CHECK-HWASAN: {{Function Attrs: noinline nounwind$}} +// CHECK-KHWASAN: {{Function Attrs: noinline nounwind$}} + +__attribute__((no_sanitize("kernel-hwaddress"))) int NoSanitizeKernelHWAddress() { + return 0; +} +// CHECK-NOASAN: {{Function Attrs: noinline nounwind$}} +// CHECK-ASAN: {{Function Attrs: noinline nounwind sanitize_address$}} +// CHECK-KASAN: {{Function Attrs: noinline nounwind sanitize_address$}} +// CHECK-HWASAN: {{Function Attrs: noinline nounwind$}} +// CHECK-KHWASAN: {{Function Attrs: noinline nounwind$}} |