[compiler-rt] [libcxxabi] [libunwind] [runtimes][PAC] Harden unwinding when possible (#138571) (PR #143230)

Anatoly Trosinenko via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 18 13:35:22 PDT 2025


================
@@ -47,10 +47,11 @@ struct _LIBCXXABI_HIDDEN __cxa_exception {
     // In Wasm, a destructor returns its argument
     void *(_LIBCXXABI_DTOR_FUNC *exceptionDestructor)(void *);
 #else
-    void (_LIBCXXABI_DTOR_FUNC *exceptionDestructor)(void *);
+    void(_LIBCXXABI_DTOR_FUNC* _LIBCXXABI_PTRAUTH_FN("__cxa_exception::exceptionDestructor")
+             exceptionDestructor)(void*);
 #endif
-    std::unexpected_handler unexpectedHandler;
-    std::terminate_handler  terminateHandler;
+    std::unexpected_handler _LIBCXXABI_PTRAUTH_FN("__cxa_exception::unexpectedHandler") unexpectedHandler;
+    std::terminate_handler _LIBCXXABI_PTRAUTH_FN("__cxa_exception::terminateHandler") terminateHandler;
----------------
atrosinenko wrote:

Are these strings (or, strictly speaking, their hashes) part of public ABI? If so, it may be handy to put them into `ptrauth.h`, like it is already done for [`__ptrauth_init_fini_discriminator`](https://github.com/llvm/llvm-project/blob/8c3fbaf0ee7322e948403d2234a7230bd6137c98/clang/lib/Headers/ptrauth.h#L260).

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


More information about the llvm-commits mailing list