xref: /llvm-project/clang/test/Lexer/has_feature_memtag.cpp (revision fa34951fbc9bde7592897b0e81e99abd84c0bfd7)
1 // RUN: %clang_cc1 -E -fsanitize=memtag-stack %s -o - | FileCheck --check-prefix=CHECK-MEMTAG-STACK %s
2 // RUN: %clang_cc1 -E -fsanitize=memtag-heap %s -o -  | FileCheck --check-prefix=CHECK-MEMTAG-HEAP %s
3 // RUN: %clang -E -fsanitize=memtag --target=aarch64-unknown-linux -march=armv8a+memtag %s -o - \
4 // RUN:     | FileCheck --check-prefixes=CHECK-MEMTAG-STACK,CHECK-MEMTAG-HEAP %s
5 // RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-NO-MEMTAG %s
6 
7 #if __has_feature(memtag_stack)
8 int MemTagSanitizerStack();
9 #else
10 int MemTagSanitizerNoStack();
11 #endif
12 
13 #if __has_feature(memtag_heap)
14 int MemTagSanitizerHeap();
15 #else
16 int MemTagSanitizerNoHeap();
17 #endif
18 
19 // CHECK-MEMTAG-STACK: MemTagSanitizerStack
20 // CHECK-MEMTAG-HEAP: MemTagSanitizerHeap
21 
22 // CHECK-NO-MEMTAG: MemTagSanitizerNoStack
23 // CHECK-NO-MEMTAG: MemTagSanitizerNoHeap
24