[clang] [llvm] [CodeGen][AArch64] ptrauth intrinsic to safely construct relative ptr (PR #142047)
John McCall via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 12 06:29:17 PDT 2025
================
@@ -259,78 +284,6 @@ typedef __UINTPTR_TYPE__ ptrauth_generic_signature_t;
/* The value is ptrauth_string_discriminator("init_fini") */
#define __ptrauth_init_fini_discriminator 0xd9d4
-#else
-
-#define ptrauth_strip(__value, __key) \
- ({ \
- (void)__key; \
- __value; \
- })
-
-#define ptrauth_blend_discriminator(__pointer, __integer) \
- ({ \
- (void)__pointer; \
- (void)__integer; \
- ((ptrauth_extra_data_t)0); \
- })
-
-#define ptrauth_sign_constant(__value, __key, __data) \
- ({ \
- (void)__key; \
- (void)__data; \
- __value; \
- })
-
-#define ptrauth_sign_unauthenticated(__value, __key, __data) \
- ({ \
- (void)__key; \
- (void)__data; \
- __value; \
- })
-
-#define ptrauth_auth_and_resign(__value, __old_key, __old_data, __new_key, \
- __new_data) \
- ({ \
- (void)__old_key; \
- (void)__old_data; \
- (void)__new_key; \
- (void)__new_data; \
- __value; \
- })
-
-#define ptrauth_auth_function(__value, __old_key, __old_data) \
- ({ \
- (void)__old_key; \
- (void)__old_data; \
- __value; \
- })
-
-#define ptrauth_auth_data(__value, __old_key, __old_data) \
- ({ \
- (void)__old_key; \
- (void)__old_data; \
- __value; \
- })
-
-#define ptrauth_string_discriminator(__string) \
- ({ \
- (void)__string; \
- ((ptrauth_extra_data_t)0); \
- })
-
-#define ptrauth_type_discriminator(__type) ((ptrauth_extra_data_t)0)
-
-#define ptrauth_sign_generic_data(__value, __data) \
- ({ \
- (void)__value; \
- (void)__data; \
- ((ptrauth_generic_signature_t)0); \
- })
-
-
-#define ptrauth_cxx_vtable_pointer(key, address_discrimination, \
- extra_discrimination...)
-
----------------
rjmccall wrote:
These no-op forms were intentionally added so that clients who are willing to accept the non-portability of the existence of the header can simply call the intrinsic without extra `#if` checks at each use site. If there's a good reason to remove them, we can talk about it, but it should be done as a separate PR.
https://github.com/llvm/llvm-project/pull/142047
More information about the llvm-commits
mailing list