================ @@ -21,6 +21,44 @@ #include "cxa_handlers.h" #include "private_typeinfo.h" #include "unwind.h" +#include "libunwind.h" + +#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. +// 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("scan_results::languageSpecificData") == 0xE50D) +#define __ptrauth_scan_results_lsd \ + __ptrauth(ptrauth_key_process_dependent_code, 1, 0xE50D) + +// ptrauth_string_discriminator("scan_results::actionRecord") == 0x9823 +#define __ptrauth_scan_results_action_record \ + __ptrauth(ptrauth_key_process_dependent_code, 1, 0x9823) + +// scan result is broken up as we have a manual re-sign that requires each component +#define __ptrauth_scan_results_landingpad_key ptrauth_key_process_dependent_code +// ptrauth_string_discriminator("scan_results::landingPad") == 0xD27C +#define __ptrauth_scan_results_landingpad_disc 0xD27C +#define __ptrauth_scan_results_landingpad \ + __ptrauth(__ptrauth_scan_results_landingpad_key, 1, __ptrauth_scan_results_landingpad_disc) +#define __ptrauth_scan_results_landingpad_intptr \ + __ptrauth_restricted_intptr(__ptrauth_scan_results_landingpad_key, 1, \ ---------------- kovdan01 wrote:
I think that this should go under `#if __has_extension(ptrauth_restricted_intptr_qualifier)` (just like in other places touched by this PR, see libunwind.h for example). As far as I can see, `__ptrauth_restricted_intptr` is not yet supported by mainline, and using that causes compile errors on my side. https://github.com/llvm/llvm-project/pull/143230 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits