[llvm-branch-commits] [clang] [clang] Define ptrauth_sign_constant builtin. (PR #93904)

Daniil Kovalev via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Jun 10 07:52:55 PDT 2024


================
@@ -354,6 +354,23 @@ Given that ``signedPointer`` matches the layout for signed pointers signed with
 the given key, extract the raw pointer from it.  This operation does not trap
 and cannot fail, even if the pointer is not validly signed.
 
+``ptrauth_sign_constant``
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: c
+
+  ptrauth_sign_constant(pointer, key, discriminator)
+
+Return a signed pointer for a constant address in a manner which guarantees
+a non-attackable sequence.
+
+``pointer`` must be a constant expression of pointer type which evaluates to
+a non-null pointer.  The result will have the same type as ``discriminator``.
----------------
kovdan01 wrote:

> The result will have the same type as ``discriminator``

Will it? I suppose this should have the same type as `pointer`, shouldn't it? See also ptrauth.h:

> The result will have the same type as the original value.

And see also a comment https://github.com/llvm/llvm-project/pull/93903#discussion_r1633197979

https://github.com/llvm/llvm-project/pull/93904


More information about the llvm-branch-commits mailing list