| // RUN: %clang_cc1 -E %s -triple=aarch64 -fptrauth-intrinsics | \ |
| // RUN: FileCheck %s --check-prefixes=INTRIN |
| |
| // RUN: %clang_cc1 -E %s -triple=aarch64 -fptrauth-calls | \ |
| // RUN: FileCheck %s --check-prefixes=NOINTRIN |
| |
| // RUN: %clang_cc1 -E %s -DIS_DARWIN -triple=arm64e-apple-darwin -fptrauth-intrinsics | \ |
| // RUN: FileCheck %s --check-prefixes=INTRIN,INTRIN_MAC |
| |
| // RUN: %clang_cc1 -E %s -DIS_DARWIN -triple=arm64e-apple-darwin -fptrauth-calls | \ |
| // RUN: FileCheck %s --check-prefixes=NOINTRIN |
| |
| #if defined(IS_DARWIN) && __has_extension(ptrauth_qualifier) |
| // INTRIN_MAC: has_ptrauth_qualifier1 |
| void has_ptrauth_qualifier1() {} |
| #ifndef __PTRAUTH__ |
| #error ptrauth_qualifier extension present without predefined test macro |
| #endif |
| #endif |
| #if defined(IS_DARWIN) && __has_feature(ptrauth_qualifier) |
| // INTRIN_MAC: has_ptrauth_qualifier2 |
| void has_ptrauth_qualifier2() {} |
| #ifndef __PTRAUTH__ |
| #error ptrauth_qualifier extension present without predefined test macro |
| #endif |
| #endif |
| #if defined(__PTRAUTH__) |
| // INTRIN: has_ptrauth_qualifier3 |
| void has_ptrauth_qualifier3() {} |
| #endif |
| |
| #if !defined(__PTRAUTH__) && !__has_feature(ptrauth_qualifier) && !__has_extension(ptrauth_qualifier) |
| // NOINTRIN: no_ptrauth_qualifier |
| void no_ptrauth_qualifier() {} |
| #endif |