Skip to content

Commit 9733879

Browse files
committed
Add more test cases
1 parent fe34b28 commit 9733879

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

clang/include/clang/Basic/Features.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ FEATURE(is_trivially_assignable, LangOpts.CPlusPlus)
303303
FEATURE(is_trivially_constructible, LangOpts.CPlusPlus)
304304
FEATURE(is_trivially_copyable, LangOpts.CPlusPlus)
305305
FEATURE(is_union, LangOpts.CPlusPlus)
306-
FEATURE(cfi, LangOpts.Sanitize.hasOneOf(SanitizerKind::CFI))
306+
FEATURE(cfi, LangOpts.Sanitize.hasOneOf(SanitizerKind::CFI | SanitizerKind::KCFI))
307307
FEATURE(kcfi, LangOpts.Sanitize.has(SanitizerKind::KCFI))
308308
FEATURE(kcfi_arity, LangOpts.Sanitize.has(SanitizerKind::KCFI))
309309
FEATURE(modules, LangOpts.Modules)

clang/test/Lexer/has_feature_cfi.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,20 @@
55
// RUN: %clang_cc1 -E -fsanitize=cfi-unrelated-cast -o - %s | FileCheck --check-prefix=CHECK-CFISAN %s
66
// RUN: %clang_cc1 -E -fsanitize=cfi-nvcall -o - %s | FileCheck --check-prefix=CHECK-CFISAN %s
77
// RUN: %clang_cc1 -E -fsanitize=cfi-vcall -o - %s | FileCheck --check-prefix=CHECK-CFISAN %s
8-
// RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-NO-CFISAN %s
8+
9+
// RUN: %clang_cc1 -E -fsanitize=kcfi -o - %s | FileCheck --check-prefix=CHECK-CFISAN %s
10+
11+
// RUN: %clang -E --target=x86_64-linux-gnu -fvisibility=hidden -fsanitize=cfi -flto -c %s -o - | FileCheck %s --check-prefix=CHECK-CFISAN
12+
// RUN: %clang -E --target=x86_64-linux-gnu -fvisibility=hidden -fsanitize=cfi -fsanitize-cfi-cross-dso -flto -c %s -o - | FileCheck %s --check-prefix=CHECK-CFISAN
13+
14+
// Disable CFI sanitizers.
15+
// RUN: %clang -E --target=x86_64-linux-gnu -fvisibility=hidden -fno-sanitize=cfi -flto -c %s -o - | FileCheck %s --check-prefix=CHECK-NO-CFISAN
16+
17+
// Disable some but not all CFI schemes.
18+
// RUN: %clang -E --target=x86_64-linux-gnu -fvisibility=hidden -fsanitize=cfi -fno-sanitize-cfi-cross-dso -fno-sanitize=cfi-nvcall,cfi-vcall,cfi-mfcall,cfi-icall -flto -c %s -o - | FileCheck %s --check-prefix=CHECK-CFISAN
19+
20+
// Disable all CFI schemes. This essentially disables CFI sanitizers.
21+
// RUN: %clang -E --target=x86_64-linux-gnu -fvisibility=hidden -fsanitize=cfi -fno-sanitize-cfi-cross-dso -fno-sanitize=cfi-nvcall,cfi-vcall,cfi-mfcall,cfi-icall,cfi-cast-strict,cfi-derived-cast,cfi-unrelated-cast -flto -c %s -o - | FileCheck %s --check-prefix=CHECK-NO-CFISAN
922

1023
#if __has_feature(cfi)
1124
int CFISanitizerEnabled();

0 commit comments

Comments
 (0)