| // REQUIRES: target={{x86_64.*-linux.*}} |
| |
| // RUN: %clang -E -fvisibility=hidden -flto -fno-sanitize-ignorelist -fsanitize=cfi -c %s -o - | FileCheck %s --check-prefix=CHECK-CFI |
| // RUN: %clang -E -fvisibility=hidden -flto -fno-sanitize-ignorelist -fsanitize=cfi -fsanitize-cfi-cross-dso -c %s -o - | FileCheck %s --check-prefix=CHECK-CFI |
| // RUN: %clang -E -fvisibility=hidden -flto -fno-sanitize-ignorelist -fsanitize=cfi -fno-sanitize=cfi-nvcall,cfi-vcall,cfi-mfcall,cfi-icall -c %s -o - | FileCheck %s --check-prefix=CHECK-CFI |
| // CHECK-CFI: CFISanitizerEnabled |
| |
| // RUN: %clang -E -c %s -o - | FileCheck %s --check-prefix=CHECK-NO-CFI |
| // CHECK-NO-CFI: CFISanitizerDisabled |
| |
| // RUN: %clang -E -fsanitize=kcfi -c %s -o - | FileCheck %s --check-prefixes=CHECK-KCFI,CHECK-NO-CFI |
| // CHECK-KCFI: KCFISanitizerEnabled |
| |
| // RUN: %clang -E -fsanitize=cfi-cast-strict -c %s -o - | FileCheck %s --check-prefix=CHECK-CFI-CAST-STRICT |
| // CHECK-CFI-CAST-STRICT: CFICastStrictSanitizerEnabled |
| |
| // RUN: %clang -E -fvisibility=hidden -flto -fno-sanitize-ignorelist -fsanitize=cfi-derived-cast -c %s -o - | FileCheck %s --check-prefixes=CHECK-CFI,CHECK-CFI-DERIVED-CAST |
| // CHECK-CFI-DERIVED-CAST: CFIDerivedCastSanitizerEnabled |
| |
| // RUN: %clang -E -fvisibility=hidden -flto -fno-sanitize-ignorelist -fsanitize=cfi-icall -c %s -o - | FileCheck %s --check-prefixes=CHECK-CFI,CHECK-CFI-ICALL |
| // CHECK-CFI-ICALL: CFIICallSanitizerEnabled |
| |
| // RUN: %clang -E -fvisibility=hidden -flto -fno-sanitize-ignorelist -fsanitize=cfi-mfcall -c %s -o - | FileCheck %s --check-prefixes=CHECK-CFI,CHECK-CFI-MFCALL |
| // CHECK-CFI-MFCALL: CFIMFCallSanitizerEnabled |
| |
| // RUN: %clang -E -fvisibility=hidden -flto -fno-sanitize-ignorelist -fsanitize=cfi-unrelated-cast -c %s -o - | FileCheck %s --check-prefixes=CHECK-CFI,CHECK-CFI-UNRELATED-CAST |
| // CHECK-CFI-UNRELATED-CAST: CFIUnrelatedCastSanitizerEnabled |
| |
| // RUN: %clang -E -fvisibility=hidden -flto -fno-sanitize-ignorelist -fsanitize=cfi-nvcall -c %s -o - | FileCheck %s --check-prefixes=CHECK-CFI,CHECK-CFI-NVCALL |
| // CHECK-CFI-NVCALL: CFINVCallSanitizerEnabled |
| |
| // RUN: %clang -E -fvisibility=hidden -flto -fno-sanitize-ignorelist -fsanitize=cfi-vcall -c %s -o - | FileCheck %s --check-prefixes=CHECK-CFI,CHECK-CFI-VCALL |
| // CHECK-CFI-VCALL: CFIVCallSanitizerEnabled |
| |
| #if __has_feature(cfi_sanitizer) |
| int CFISanitizerEnabled(); |
| #else |
| int CFISanitizerDisabled(); |
| #endif |
| |
| #if __has_feature(kcfi) |
| int KCFISanitizerEnabled(); |
| #else |
| int KCFISanitizerDisabled(); |
| #endif |
| |
| #if __has_feature(cfi_cast_strict_sanitizer) |
| int CFICastStrictSanitizerEnabled(); |
| #else |
| int CFICastStrictSanitizerDisabled(); |
| #endif |
| |
| #if __has_feature(cfi_derived_cast_sanitizer) |
| int CFIDerivedCastSanitizerEnabled(); |
| #else |
| int CFIDerivedCastSanitizerDisabled(); |
| #endif |
| |
| #if __has_feature(cfi_icall_sanitizer) |
| int CFIICallSanitizerEnabled(); |
| #else |
| int CFIICallSanitizerDisabled(); |
| #endif |
| |
| #if __has_feature(cfi_mfcall_sanitizer) |
| int CFIMFCallSanitizerEnabled(); |
| #else |
| int CFIMFCallSanitizerDisabled(); |
| #endif |
| |
| #if __has_feature(cfi_unrelated_cast_sanitizer) |
| int CFIUnrelatedCastSanitizerEnabled(); |
| #else |
| int CFIUnrelatedCastSanitizerDisabled(); |
| #endif |
| |
| #if __has_feature(cfi_nvcall_sanitizer) |
| int CFINVCallSanitizerEnabled(); |
| #else |
| int CFINVCallSanitizerDisabled(); |
| #endif |
| |
| #if __has_feature(cfi_vcall_sanitizer) |
| int CFIVCallSanitizerEnabled(); |
| #else |
| int CFIVCallSanitizerDisabled(); |
| #endif |