[clang] [NFC][Clang][Docs] Update Pointer Authentication documentation (PR #152596)

Kristof Beyls via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 14 04:58:01 PDT 2025


================
@@ -327,6 +464,54 @@ a discriminator determined as follows:
   is ``ptrauth_blend_discriminator(&x, discriminator)``; see
   `ptrauth_blend_discriminator`_.
 
+Non-triviality from address diversity
++++++++++++++++++++++++++++++++++++++
+
+Address diversity must impose additional restrictions in order to allow the
+implementation to correctly copy values.  In C++, a type qualified with address
+diversity is treated like a class type with non-trivial copy/move constructors
+and assignment operators, with the usual effect on containing classes and
+unions.  C does not have a standard concept of non-triviality, and so we must
+describe the basic rules here, with the intention of imitating the emergent
+rules of C++:
+
+- A type may be **non-trivial to copy**.
+
+- A type may also be **illegal to copy**.  Types that are illegal to copy are
+  always non-trivial to copy.
+
+- A type may also be **address-sensitive**.
----------------
kbeyls wrote:

Thanks for explaining!

I could not easily find a good source for a definition of what "address-sensitive" means here (no wikipedia page, etc). chatgpt gave a reasonable explanation though. Anyway, I think that indicates it would be useful to add a definition of what "address-sensitive" means in this context. I don't think it's really needed for "non-trivial to copy" and "illegal to copy".

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


More information about the cfe-commits mailing list