diff options
| author | Akira Hatanaka <ahatanak@gmail.com> | 2025-04-15 12:54:25 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-15 12:54:25 -0700 |
| commit | a3283a92aea147e89d9d404fa7c8500223c7c22a (patch) | |
| tree | 1de7347a2d5ec4ae98600d104dc05fb48626b884 /libcxxabi | |
| parent | e6e56f5b6a80c6ce55630d6075475cb363afb149 (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.cpp | 3 |
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 }; |
