[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