Building on D90868, 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, which is enabled by default by the driver for darwin arm64e.
Note that this only includes the basic intrinsics (matching D90868), and notably excludes ptrauth_sign_constant, and ptrauth_type_discriminator/ptrauth_string_discriminator, which need extra logic to be fully supported. If it helps, I can bring the header/sema support here so that we can review all builtins together, and do full IRGen later.
These two error types are confusing.
In which situation would err_ptrauth_disabled be printed?
With this patch, it is only supported with arm64e triple, all other targets it is unsupported.