85#if __has_feature(ptrauth_intrinsics)
96#define ptrauth_strip(__value, __key) __builtin_ptrauth_strip(__value, __key)
112#define ptrauth_blend_discriminator(__pointer, __integer) \
113 __builtin_ptrauth_blend_discriminator(__pointer, __integer)
126#define ptrauth_sign_constant(__value, __key, __data) \
127 __builtin_ptrauth_sign_constant(__value, __key, __data)
141#define ptrauth_sign_unauthenticated(__value, __key, __data) \
142 __builtin_ptrauth_sign_unauthenticated(__value, __key, __data)
163#define ptrauth_auth_and_resign(__value, __old_key, __old_data, __new_key, \
165 __builtin_ptrauth_auth_and_resign(__value, __old_key, __old_data, __new_key, \
185#define ptrauth_auth_function(__value, __old_key, __old_data) \
186 ptrauth_auth_and_resign(__value, __old_key, __old_data, \
187 ptrauth_key_function_pointer, 0)
198#define ptrauth_auth_data(__value, __old_key, __old_data) \
199 __builtin_ptrauth_auth(__value, __old_key, __old_data)
211#define ptrauth_string_discriminator(__string) \
212 __builtin_ptrauth_string_discriminator(__string)
228#define ptrauth_type_discriminator(__type) \
229 __builtin_ptrauth_type_discriminator(__type)
250#define ptrauth_sign_generic_data(__value, __data) \
251 __builtin_ptrauth_sign_generic_data(__value, __data)
254#define ptrauth_cxx_vtable_pointer(key, address_discrimination, \
255 extra_discrimination...) \
256 [[clang::ptrauth_vtable_pointer(key, address_discrimination, \
257 extra_discrimination)]]
260#define __ptrauth_init_fini_discriminator 0xd9d4
264#define ptrauth_strip(__value, __key) \
270#define ptrauth_blend_discriminator(__pointer, __integer) \
274 ((ptrauth_extra_data_t)0); \
277#define ptrauth_sign_constant(__value, __key, __data) \
284#define ptrauth_sign_unauthenticated(__value, __key, __data) \
291#define ptrauth_auth_and_resign(__value, __old_key, __old_data, __new_key, \
301#define ptrauth_auth_function(__value, __old_key, __old_data) \
308#define ptrauth_auth_data(__value, __old_key, __old_data) \
315#define ptrauth_string_discriminator(__string) \
318 ((ptrauth_extra_data_t)0); \
321#define ptrauth_type_discriminator(__type) ((ptrauth_extra_data_t)0)
323#define ptrauth_sign_generic_data(__value, __data) \
327 ((ptrauth_generic_signature_t)0); \
331#define ptrauth_cxx_vtable_pointer(key, address_discrimination, \
332 extra_discrimination...)
__UINTPTR_TYPE__ ptrauth_extra_data_t
__UINTPTR_TYPE__ ptrauth_generic_signature_t
@ ptrauth_key_return_address
@ ptrauth_key_process_independent_code
@ ptrauth_key_process_dependent_code
@ ptrauth_key_process_independent_data
@ ptrauth_key_cxx_vtable_pointer
@ ptrauth_key_init_fini_pointer
@ ptrauth_key_process_dependent_data
@ ptrauth_key_function_pointer