This defines the basic set of pointer authentication clang builtins (provided in a new header, ptrauth.h), with diagnostics and IRGen support. The availability of the builtins is gated on a new flag, `-fptrauth-intrinsics`. Note that this only includes the basic intrinsics, and notably excludes `ptrauth_sign_constant`, `ptrauth_type_discriminator`, and `ptrauth_string_discriminator`, which need extra logic to be fully supported. This also introduces clang/docs/PointerAuthentication.rst, which describes the ptrauth model in general, in addition to these builtins. Co-Authored-By: Akira Hatanaka <ahatanaka@apple.com> Co-Authored-By: John McCall <rjmccall@apple.com>
11 lines
369 B
C
11 lines
369 B
C
// RUN: %clang_cc1 %s -E -triple=arm64-- | FileCheck %s --check-prefixes=NOINTRIN
|
|
// RUN: %clang_cc1 %s -E -triple=arm64-- -fptrauth-intrinsics | FileCheck %s --check-prefixes=INTRIN
|
|
|
|
#if __has_feature(ptrauth_intrinsics)
|
|
// INTRIN: has_ptrauth_intrinsics
|
|
void has_ptrauth_intrinsics() {}
|
|
#else
|
|
// NOINTRIN: no_ptrauth_intrinsics
|
|
void no_ptrauth_intrinsics() {}
|
|
#endif
|