[libcxx-commits] [compiler-rt] [libcxxabi] [libunwind] [runtimes][PAC] Harden unwinding when possible (#138571) (PR #143230)
Anatoly Trosinenko via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Jul 30 06:40:42 PDT 2025
================
@@ -103,10 +104,68 @@
#define _LIBCXXABI_DTOR_FUNC
#endif
-#if __cplusplus < 201103L
-# define _LIBCXXABI_NOEXCEPT throw()
-#else
-# define _LIBCXXABI_NOEXCEPT noexcept
+#if __has_include(<ptrauth.h>)
+# include <ptrauth.h>
#endif
+#if __has_extension(ptrauth_qualifier)
+
+// The actual value of the discriminators listed below is not important
+// beyond their impact on ABI. The derivation of the constants is only
+// being included for the purpose of maintaining a record of how they
+// were originally produced.
+
+// ptrauth_string_discriminator("__cxa_exception::actionRecord") == 0xFC91
----------------
atrosinenko wrote:
[nit] I'm not sure whether this is that important, but we can easily make these documentation lines stricter by turning them from human-readable comments into machine-readable `static_assert`s :) On one hand, the specific constants being used are not important, on the other their derivations may help the developer make sure these constants are reasonably unique (since they are produced by hashing some sensible strings) without re-computing these hashes by custom code.
https://github.com/llvm/llvm-project/pull/143230
More information about the libcxx-commits
mailing list