[clang] [NFC][Clang][Docs] Update Pointer Authentication documentation (PR #152596)
Oliver Hunt via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 13 12:57:59 PDT 2025
================
@@ -255,33 +260,160 @@ signing schema breaks down even more simply:
It is important that the signing schema be independently derived at all signing
and authentication sites. Preferably, the schema should be hard-coded
everywhere it is needed, but at the very least, it must not be derived by
-inspecting information stored along with the pointer.
+inspecting information stored along with the pointer. See the section on
+`Attacks on pointer authentication`_ for more information.
+
-Language Features
+Language features
-----------------
-There is currently one main pointer authentication language feature:
+There are three levels of the pointer authentication language feature:
+
+- The language implementation automatically signs and authenticates function
+ pointers (and certain data pointers) across a variety of standard situations,
+ including return addresses, function pointers, and C++ virtual functions. The
+ intent is for all pointers to code in program memory to be signed in some way
+ and for all branches to code in program text to authenticate those
+ signatures.
----------------
ojhunt wrote:
We already do sign v-table pointers, and a bunch of other data pointers (mostly objc and pending review block metadata, but also "data" pointers that are equivalent to code pointers like obj-c's SEL type). Longer term we want to implicitly sign a bunch of data pointers in things like lambdas, coroutines, etc but they don't have the same ABI constraints so have been lower priority.
https://github.com/llvm/llvm-project/pull/152596
More information about the cfe-commits
mailing list