summaryrefslogtreecommitdiff
path: root/libcxxabi
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanak@gmail.com>2025-04-15 12:54:25 -0700
committerGitHub <noreply@github.com>2025-04-15 12:54:25 -0700
commita3283a92aea147e89d9d404fa7c8500223c7c22a (patch)
tree1de7347a2d5ec4ae98600d104dc05fb48626b884 /libcxxabi
parente6e56f5b6a80c6ce55630d6075475cb363afb149 (diff)
[PAC] Add support for __ptrauth type qualifier (#100830)
The qualifier allows programmer to directly control how pointers are signed when they are stored in a particular variable. The qualifier takes three arguments: the signing key, a flag specifying whether address discrimination should be used, and a non-negative integer that is used for additional discrimination. ``` typedef void (*my_callback)(const void*); my_callback __ptrauth(ptrauth_key_process_dependent_code, 1, 0xe27a) callback; ``` Co-Authored-By: John McCall rjmccall@apple.com
Diffstat (limited to 'libcxxabi')
-rw-r--r--libcxxabi/test/test_demangle.pass.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/libcxxabi/test/test_demangle.pass.cpp b/libcxxabi/test/test_demangle.pass.cpp
index abaa787f5432..53da1bf6765e 100644
--- a/libcxxabi/test/test_demangle.pass.cpp
+++ b/libcxxabi/test/test_demangle.pass.cpp
@@ -30243,6 +30243,9 @@ const char* cases[][2] = {
{"_Z1fDSDRm", "f(_Sat unsigned long _Fract)"},
{"_Z11bfloat16addDF16bDF16b", "bfloat16add(std::bfloat16_t, std::bfloat16_t)"},
+
+ {"_Z3fooPU9__ptrauthILj3ELb1ELj234EEPi", "foo(int* __ptrauth<3u, true, 234u>*)"},
+ {"_Z3fooIPU9__ptrauthILj1ELb0ELj64EEPiEvT_", "void foo<int* __ptrauth<1u, false, 64u>*>(int* __ptrauth<1u, false, 64u>*)"},
// clang-format on
};