github-actions[bot] wrote: <!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning: <details> <summary> You can test this locally with the following command: </summary> ``````````bash git-clang-format --diff HEAD~1 HEAD --extensions c,h,cpp,hpp -- compiler-rt/lib/builtins/gcc_personality_v0.c compiler-rt/lib/profile/InstrProfilingValue.c libcxxabi/include/__cxxabi_config.h libcxxabi/src/cxa_exception.h libcxxabi/src/cxa_personality.cpp libunwind/include/libunwind.h libunwind/src/AddressSpace.hpp libunwind/src/DwarfInstructions.hpp libunwind/src/DwarfParser.hpp libunwind/src/Registers.hpp libunwind/src/UnwindCursor.hpp libunwind/src/UnwindLevel1.c libunwind/src/libunwind.cpp `````````` </details> <details> <summary> View the diff from clang-format here. </summary> ``````````diff diff --git a/compiler-rt/lib/builtins/gcc_personality_v0.c b/compiler-rt/lib/builtins/gcc_personality_v0.c index 42b992949..8bc7cb3ea 100644 --- a/compiler-rt/lib/builtins/gcc_personality_v0.c +++ b/compiler-rt/lib/builtins/gcc_personality_v0.c @@ -38,13 +38,14 @@ EXCEPTION_DISPOSITION _GCC_specific_handler(PEXCEPTION_RECORD, void *, PCONTEXT, #if __has_feature(ptrauth_restricted_intptr_qualifier) #define PERSONALITY_PTRAUTH_RESTRICTED_INTPTR(key, addressDiscriminated, \ discriminatorString) \ - __ptrauth_restricted_intptr(key, addressDiscriminated, \ - ptrauth_string_discriminator(discriminatorString)) + __ptrauth_restricted_intptr( \ + key, addressDiscriminated, \ + ptrauth_string_discriminator(discriminatorString)) #else #define PERSONALITY_PTRAUTH_RESTRICTED_INTPTR(key, addressDiscriminated, \ discriminatorString) \ - __ptrauth(key, addressDiscriminated, \ - ptrauth_string_discriminator(discriminatorString)) + __ptrauth(key, addressDiscriminated, \ + ptrauth_string_discriminator(discriminatorString)) #endif #else #define PERSONALITY_PTRAUTH_RESTRICTED_INTPTR(key, addressDiscriminated, \ @@ -57,17 +58,17 @@ EXCEPTION_DISPOSITION _GCC_specific_handler(PEXCEPTION_RECORD, void *, PCONTEXT, // * RA : ptrauth_key_return_address // * FN : ptrauth_key_function_pointer #define PERSONALITY_PTRAUTH_RI_FN(__discriminator) \ - PERSONALITY_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_function_pointer, \ - /*__address_discriminated=*/1, \ - __discriminator) + PERSONALITY_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_function_pointer, \ + /*__address_discriminated=*/1, \ + __discriminator) #define PERSONALITY_PTRAUTH_RI_PDC(__discriminator) \ - PERSONALITY_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_dependent_code, \ - /*__address_discriminated=*/1, \ - __discriminator) + PERSONALITY_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_dependent_code, \ + /*__address_discriminated=*/1, \ + __discriminator) #define PERSONALITY_PTRAUTH_RI_RA(__discriminator) \ - PERSONALITY_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_return_address, \ - /*__address_discriminated=*/1, \ - __discriminator) + PERSONALITY_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_return_address, \ + /*__address_discriminated=*/1, \ + __discriminator) // Pointer encodings documented at: // http://refspecs.freestandards.org/LSB_1.3.0/gLSB/gLSB/ehframehdr.html @@ -264,10 +265,10 @@ COMPILER_RT_ABI _Unwind_Reason_Code __gcc_personality_v0( const uint8_t *callSiteTableEnd = callSiteTableStart + callSiteTableLength; const uint8_t *p = callSiteTableStart; while (p < callSiteTableEnd) { - uintptr_t PERSONALITY_PTRAUTH_RI_PDC("__gcc_personality_v0'start") - start = readEncodedPointer(&p, callSiteEncoding); - size_t PERSONALITY_PTRAUTH_RI_PDC("__gcc_personality_v0'length") - length = readEncodedPointer(&p, callSiteEncoding); + uintptr_t PERSONALITY_PTRAUTH_RI_PDC("__gcc_personality_v0'start") start = + readEncodedPointer(&p, callSiteEncoding); + size_t PERSONALITY_PTRAUTH_RI_PDC("__gcc_personality_v0'length") length = + readEncodedPointer(&p, callSiteEncoding); size_t PERSONALITY_PTRAUTH_RI_PDC("__gcc_personality_v0'landingPadOffset") landingPadOffset = readEncodedPointer(&p, callSiteEncoding); readULEB128(&p); // action value not used for C code @@ -282,13 +283,12 @@ COMPILER_RT_ABI _Unwind_Reason_Code __gcc_personality_v0( (uintptr_t)exceptionObject); _Unwind_SetGR(context, __builtin_eh_return_data_regno(1), 0); #define LANDING_PAD_DISCRIMINATOR "__gcc_personality_v0'landingPad" - size_t PERSONALITY_PTRAUTH_RI_RA(LANDING_PAD_DISCRIMINATOR) - landingPad = funcStart + landingPadOffset; + size_t PERSONALITY_PTRAUTH_RI_RA(LANDING_PAD_DISCRIMINATOR) landingPad = + funcStart + landingPadOffset; #if defined(__APPLE__) && __has_feature(ptrauth_qualifier) uintptr_t stack_pointer = _Unwind_GetGR(context, -2); const uintptr_t existingDiscriminator = ptrauth_blend_discriminator( - &landingPad, - ptrauth_string_discriminator(LANDING_PAD_DISCRIMINATOR)); + &landingPad, ptrauth_string_discriminator(LANDING_PAD_DISCRIMINATOR)); uintptr_t newIP = (uintptr_t)ptrauth_auth_and_resign( *(void **)&landingPad, ptrauth_key_function_pointer, existingDiscriminator, ptrauth_key_return_address, stack_pointer); diff --git a/compiler-rt/lib/profile/InstrProfilingValue.c b/compiler-rt/lib/profile/InstrProfilingValue.c index cd6ae3d7a..eea7b6ef4 100644 --- a/compiler-rt/lib/profile/InstrProfilingValue.c +++ b/compiler-rt/lib/profile/InstrProfilingValue.c @@ -89,7 +89,7 @@ __llvm_get_function_addr(const __llvm_profile_data *Data) { // signed pointers. FP = ptrauth_sign_unauthenticated(FP, VALID_CODE_KEY, 0); #endif - return FP; + return FP; } /* Allocate an array that holds the pointers to the linked lists of diff --git a/libcxxabi/include/__cxxabi_config.h b/libcxxabi/include/__cxxabi_config.h index e67d065fe..0a3c132e4 100644 --- a/libcxxabi/include/__cxxabi_config.h +++ b/libcxxabi/include/__cxxabi_config.h @@ -32,23 +32,23 @@ #endif #if defined(_WIN32) - #if defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS) || \ - (defined(__MINGW32__) && !defined(_LIBCXXABI_BUILDING_LIBRARY)) - #define _LIBCXXABI_HIDDEN - #define _LIBCXXABI_DATA_VIS - #define _LIBCXXABI_FUNC_VIS - #define _LIBCXXABI_TYPE_VIS - #elif defined(_LIBCXXABI_BUILDING_LIBRARY) - #define _LIBCXXABI_HIDDEN - #define _LIBCXXABI_DATA_VIS __declspec(dllexport) - #define _LIBCXXABI_FUNC_VIS __declspec(dllexport) - #define _LIBCXXABI_TYPE_VIS __declspec(dllexport) - #else - #define _LIBCXXABI_HIDDEN - #define _LIBCXXABI_DATA_VIS __declspec(dllimport) - #define _LIBCXXABI_FUNC_VIS __declspec(dllimport) - #define _LIBCXXABI_TYPE_VIS __declspec(dllimport) - #endif +# if defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS) || \ + (defined(__MINGW32__) && !defined(_LIBCXXABI_BUILDING_LIBRARY)) +# define _LIBCXXABI_HIDDEN +# define _LIBCXXABI_DATA_VIS +# define _LIBCXXABI_FUNC_VIS +# define _LIBCXXABI_TYPE_VIS +# elif defined(_LIBCXXABI_BUILDING_LIBRARY) +# define _LIBCXXABI_HIDDEN +# define _LIBCXXABI_DATA_VIS __declspec(dllexport) +# define _LIBCXXABI_FUNC_VIS __declspec(dllexport) +# define _LIBCXXABI_TYPE_VIS __declspec(dllexport) +# else +# define _LIBCXXABI_HIDDEN +# define _LIBCXXABI_DATA_VIS __declspec(dllimport) +# define _LIBCXXABI_FUNC_VIS __declspec(dllimport) +# define _LIBCXXABI_TYPE_VIS __declspec(dllimport) +# endif #else #if !defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS) #define _LIBCXXABI_HIDDEN __attribute__((__visibility__("hidden"))) @@ -111,30 +111,24 @@ #endif #if __has_include(<ptrauth.h>) -#include <ptrauth.h> +# include <ptrauth.h> #endif #if defined(__APPLE__) && __has_feature(ptrauth_qualifier) -# define _LIBCXXABI_PTRAUTH(__key, __address_discriminated, __discriminator) \ - __ptrauth(__key,__address_discriminated, \ - ptrauth_string_discriminator(__discriminator)) +# define _LIBCXXABI_PTRAUTH(__key, __address_discriminated, __discriminator) \ + __ptrauth(__key, __address_discriminated, ptrauth_string_discriminator(__discriminator)) // This work around is required to support divergence in spelling // during the ptrauth upstreaming process. # if __has_feature(ptrauth_restricted_intptr_qualifier) -# define _LIBCXXABI_PTRAUTH_RESTRICTED_INTPTR(__key, __address_discriminated, \ - __discriminator) \ - __ptrauth_restricted_intptr(__key,__address_discriminated, \ - ptrauth_string_discriminator(__discriminator)) +# define _LIBCXXABI_PTRAUTH_RESTRICTED_INTPTR(__key, __address_discriminated, __discriminator) \ + __ptrauth_restricted_intptr(__key, __address_discriminated, ptrauth_string_discriminator(__discriminator)) # else -# define _LIBCXXABI_PTRAUTH_RESTRICTED_INTPTR(__key, __address_discriminated, \ - __discriminator) \ - __ptrauth(__key,__address_discriminated, \ - ptrauth_string_discriminator(__discriminator)) +# define _LIBCXXABI_PTRAUTH_RESTRICTED_INTPTR(__key, __address_discriminated, __discriminator) \ + __ptrauth(__key, __address_discriminated, ptrauth_string_discriminator(__discriminator)) # endif #else # define _LIBCXXABI_PTRAUTH(__key, __address_discriminated, __discriminator) -# define _LIBCXXABI_PTRAUTH_RESTRICTED_INTPTR(__key, __address_discriminated, \ - __discriminator) +# define _LIBCXXABI_PTRAUTH_RESTRICTED_INTPTR(__key, __address_discriminated, __discriminator) #endif // Helper wrappers for pointer auth qualifiers because we use a lot of variants @@ -142,17 +136,12 @@ // * _RI : qualifier is __ptrauth_restricted_intptr // * PDD : key is ptrauth_key_process_dependent_data // * FN : key is ptrauth_key_function_pointer -#define _LIBCXXABI_PTRAUTH_PDD(__discriminator) \ - _LIBCXXABI_PTRAUTH(ptrauth_key_process_dependent_data, \ - /*__address_discriminated=*/1, \ - __discriminator) -#define _LIBCXXABI_PTRAUTH_FN(__discriminator) \ - _LIBCXXABI_PTRAUTH(ptrauth_key_function_pointer, \ - /*__address_discriminated=*/1, \ - __discriminator) -#define _LIBCXXABI_PTRAUTH_RI_PDD(__discriminator) \ - _LIBCXXABI_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_dependent_data, \ - /*__address_discriminated=*/1, \ - __discriminator) +#define _LIBCXXABI_PTRAUTH_PDD(__discriminator) \ + _LIBCXXABI_PTRAUTH(ptrauth_key_process_dependent_data, /*__address_discriminated=*/1, __discriminator) +#define _LIBCXXABI_PTRAUTH_FN(__discriminator) \ + _LIBCXXABI_PTRAUTH(ptrauth_key_function_pointer, /*__address_discriminated=*/1, __discriminator) +#define _LIBCXXABI_PTRAUTH_RI_PDD(__discriminator) \ + _LIBCXXABI_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_dependent_data, /*__address_discriminated=*/1, \ + __discriminator) #endif // ____CXXABI_CONFIG_H diff --git a/libcxxabi/src/cxa_exception.h b/libcxxabi/src/cxa_exception.h index 4c69d4804..6b0db16af 100644 --- a/libcxxabi/src/cxa_exception.h +++ b/libcxxabi/src/cxa_exception.h @@ -47,7 +47,8 @@ struct _LIBCXXABI_HIDDEN __cxa_exception { // In Wasm, a destructor returns its argument void *(_LIBCXXABI_DTOR_FUNC *exceptionDestructor)(void *); #else - void(_LIBCXXABI_DTOR_FUNC* _LIBCXXABI_PTRAUTH_FN("__cxa_exception::exceptionDestructor") exceptionDestructor)(void*); + void(_LIBCXXABI_DTOR_FUNC* _LIBCXXABI_PTRAUTH_FN("__cxa_exception::exceptionDestructor") + exceptionDestructor)(void*); #endif std::unexpected_handler _LIBCXXABI_PTRAUTH_FN("__cxa_exception::unexpectedHandler") unexpectedHandler; std::terminate_handler _LIBCXXABI_PTRAUTH_FN("__cxa_exception::terminateHandler") terminateHandler; @@ -88,7 +89,8 @@ struct _LIBCXXABI_HIDDEN __cxa_dependent_exception { #endif std::type_info *exceptionType; - void(_LIBCXXABI_DTOR_FUNC* _LIBCXXABI_PTRAUTH_FN("__cxa_exception::exceptionDestructor") exceptionDestructor)(void*); + void(_LIBCXXABI_DTOR_FUNC* _LIBCXXABI_PTRAUTH_FN("__cxa_exception::exceptionDestructor") + exceptionDestructor)(void*); std::unexpected_handler _LIBCXXABI_PTRAUTH_FN("__cxa_exception::unexpectedHandler") unexpectedHandler; std::terminate_handler _LIBCXXABI_PTRAUTH_FN("__cxa_exception::terminateHandler") terminateHandler; diff --git a/libcxxabi/src/cxa_personality.cpp b/libcxxabi/src/cxa_personality.cpp index cbb3f46e0..05737b376 100644 --- a/libcxxabi/src/cxa_personality.cpp +++ b/libcxxabi/src/cxa_personality.cpp @@ -23,7 +23,7 @@ #include "unwind.h" #if __has_include(<ptrauth.h>) -#include <ptrauth.h> +# include <ptrauth.h> #endif #include "libunwind.h" @@ -601,13 +601,10 @@ set_registers(_Unwind_Exception* unwind_exception, _Unwind_Context* context, // We manually re-sign the IP as the __ptrauth qualifiers cannot // express the required relationship with the destination address const auto existingDiscriminator = ptrauth_blend_discriminator( - &results.landingPad, - ptrauth_string_discriminator(_LIBCXXABI_PTRAUTH_SCANRESULT_LANDINGPAD_DISC)); - unw_word_t newIP = (unw_word_t)ptrauth_auth_and_resign(*(void**)&results.landingPad, - _LIBCXXABI_PTRAUTH_KEY, - existingDiscriminator, - ptrauth_key_return_address, - stack_pointer); + &results.landingPad, ptrauth_string_discriminator(_LIBCXXABI_PTRAUTH_SCANRESULT_LANDINGPAD_DISC)); + unw_word_t newIP = + (unw_word_t)ptrauth_auth_and_resign(*(void**)&results.landingPad, _LIBCXXABI_PTRAUTH_KEY, existingDiscriminator, + ptrauth_key_return_address, stack_pointer); _Unwind_SetIP(context, newIP); #else _Unwind_SetIP(context, results.landingPad); diff --git a/libunwind/include/libunwind.h b/libunwind/include/libunwind.h index e7375bbca..4c6b031d9 100644 --- a/libunwind/include/libunwind.h +++ b/libunwind/include/libunwind.h @@ -57,12 +57,12 @@ #define _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(__key, __address_discriminated, \ __discriminator) \ __ptrauth_restricted_intptr(__key, __address_discriminated, \ - ptrauth_string_discriminator(__discriminator)) + ptrauth_string_discriminator(__discriminator)) #else #define _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(__key, __address_discriminated, \ __discriminator) \ __ptrauth(__key, __address_discriminated, \ - ptrauth_string_discriminator(__discriminator)) + ptrauth_string_discriminator(__discriminator)) #endif #else #define _LIBUNWIND_PTRAUTH(__key, __address_discriminated, __discriminator) @@ -78,25 +78,24 @@ // * PDC : ptrauth_key_process_dependent_code // * FN : ptrauth_key_function_pointer #define __LIBUNWIND_PTRAUTH_RI_PDD(__discriminator) \ - _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_dependent_data, \ - /*__address_discriminated=*/1, \ - __discriminator) + _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_dependent_data, \ + /*__address_discriminated=*/1, \ + __discriminator) #define __LIBUNWIND_PTRAUTH_RI_PIC(__discriminator) \ - _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_independent_code, \ - /*__address_discriminated=*/1, \ - __discriminator) + _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_independent_code, \ + /*__address_discriminated=*/1, \ + __discriminator) #define __LIBUNWIND_PTRAUTH_RI_PDC(__discriminator) \ - _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_dependent_code, \ - /*__address_discriminated=*/1, \ - __discriminator) + _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_process_dependent_code, \ + /*__address_discriminated=*/1, \ + __discriminator) #define __LIBUNWIND_PTRAUTH_RI_FN(__discriminator) \ - _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_function_pointer, \ - /*__address_discriminated=*/1, \ - __discriminator) + _LIBUNWIND_PTRAUTH_RESTRICTED_INTPTR(ptrauth_key_function_pointer, \ + /*__address_discriminated=*/1, \ + __discriminator) #define __LIBUNWIND_PTRAUTH_FN(__discriminator) \ - _LIBUNWIND_PTRAUTH(ptrauth_key_function_pointer, \ - /*__address_discriminated=*/1, \ - __discriminator) + _LIBUNWIND_PTRAUTH(ptrauth_key_function_pointer, \ + /*__address_discriminated=*/1, __discriminator) #if defined(_WIN32) && defined(__SEH__) #define LIBUNWIND_CURSOR_ALIGNMENT_ATTR __attribute__((__aligned__(16))) @@ -143,24 +142,24 @@ typedef double unw_fpreg_t; #endif struct unw_proc_info_t { - unw_word_t __LIBUNWIND_PTRAUTH_RI_PIC("unw_proc_info_t::start_ip") - start_ip; /* start address of function */ - unw_word_t __LIBUNWIND_PTRAUTH_RI_PIC("unw_proc_info_t::end_ip") - end_ip; /* address after end of function */ + unw_word_t __LIBUNWIND_PTRAUTH_RI_PIC( + "unw_proc_info_t::start_ip") start_ip; /* start address of function */ + unw_word_t __LIBUNWIND_PTRAUTH_RI_PIC( + "unw_proc_info_t::end_ip") end_ip; /* address after end of function */ unw_word_t __LIBUNWIND_PTRAUTH_RI_PDD("unw_proc_info_t::lsda") - lsda; /* address of language specific data area, */ - /* or zero if not used */ + lsda; /* address of language specific data area, */ + /* or zero if not used */ unw_word_t __LIBUNWIND_PTRAUTH_RI_FN("unw_proc_info_t::handler") - handler; /* personality routine, or zero if not used */ + handler; /* personality routine, or zero if not used */ unw_word_t gp; /* not used */ - unw_word_t __LIBUNWIND_PTRAUTH_RI_PDD("unw_proc_info_t::flags") \ - flags; /* not used */ + unw_word_t + __LIBUNWIND_PTRAUTH_RI_PDD("unw_proc_info_t::flags") flags; /* not used */ uint32_t format; /* compact unwind encoding, or zero if none */ uint32_t unwind_info_size; /* size of DWARF unwind info, or zero if none */ unw_word_t __LIBUNWIND_PTRAUTH_RI_PDD("unw_proc_info_t::unwind_info") - unwind_info; /* address of DWARF unwind info, or zero */ + unwind_info; /* address of DWARF unwind info, or zero */ unw_word_t __LIBUNWIND_PTRAUTH_RI_PDD("unw_proc_info_t::extra") - extra; /* mach_header of mach-o image containing func */ + extra; /* mach_header of mach-o image containing func */ }; typedef struct unw_proc_info_t unw_proc_info_t; diff --git a/libunwind/src/AddressSpace.hpp b/libunwind/src/AddressSpace.hpp index 1b89d5c03..b4bca4612 100644 --- a/libunwind/src/AddressSpace.hpp +++ b/libunwind/src/AddressSpace.hpp @@ -129,8 +129,8 @@ struct UnwindInfoSections { defined(_LIBUNWIND_SUPPORT_COMPACT_UNWIND) || \ defined(_LIBUNWIND_USE_DL_ITERATE_PHDR) // No dso_base for SEH. - uintptr_t __LIBUNWIND_PTRAUTH_RI_PDD("UnwindInfoSections::dso_base") - dso_base = 0; + uintptr_t + __LIBUNWIND_PTRAUTH_RI_PDD("UnwindInfoSections::dso_base") dso_base = 0; #endif #if defined(_LIBUNWIND_USE_DL_ITERATE_PHDR) size_t __LIBUNWIND_PTRAUTH_RI_PDD("UnwindInfoSections::text_segment_length") @@ -143,15 +143,17 @@ struct UnwindInfoSections { dwarf_section_length = 0; #endif #if defined(_LIBUNWIND_SUPPORT_DWARF_INDEX) - uintptr_t __LIBUNWIND_PTRAUTH_RI_PDD("UnwindInfoSections::dwarf_index_section") - dwarf_index_section = 0; - size_t __LIBUNWIND_PTRAUTH_RI_PDD("UnwindInfoSections::dwarf_index_section_length") + uintptr_t __LIBUNWIND_PTRAUTH_RI_PDD( + "UnwindInfoSections::dwarf_index_section") dwarf_index_section = 0; + size_t __LIBUNWIND_PTRAUTH_RI_PDD( + "UnwindInfoSections::dwarf_index_section_length") dwarf_index_section_length = 0; #endif #if defined(_LIBUNWIND_SUPPORT_COMPACT_UNWIND) - uintptr_t __LIBUNWIND_PTRAUTH_RI_PDD("UnwindInfoSections::compact_unwind_section") - compact_unwind_section = 0; - size_t __LIBUNWIND_PTRAUTH_RI_PDD("UnwindInfoSections::compact_unwind_section_length") + uintptr_t __LIBUNWIND_PTRAUTH_RI_PDD( + "UnwindInfoSections::compact_unwind_section") compact_unwind_section = 0; + size_t __LIBUNWIND_PTRAUTH_RI_PDD( + "UnwindInfoSections::compact_unwind_section_length") compact_unwind_section_length = 0; #endif #if defined(_LIBUNWIND_ARM_EHABI) @@ -366,7 +368,7 @@ LocalAddressSpace::getEncodedP(pint_t &addr, pint_t end, uint8_t encoding, if (encoding & DW_EH_PE_indirect) { if (resultAddr) *resultAddr = result; - result = getP(result); + result = getP(result); } else { if (resultAddr) *resultAddr = startAddr; diff --git a/libunwind/src/DwarfParser.hpp b/libunwind/src/DwarfParser.hpp index 8cde9cfe0..bd12734fd 100644 --- a/libunwind/src/DwarfParser.hpp +++ b/libunwind/src/DwarfParser.hpp @@ -37,7 +37,8 @@ template <typename A> class CFI_Parser { public: typedef typename A::pint_t pint_t; - typedef pint_t __LIBUNWIND_PTRAUTH_RI_FN("CIE_Info::personality") personality_t; + typedef pint_t + __LIBUNWIND_PTRAUTH_RI_FN("CIE_Info::personality") personality_t; /// Information encoded in a CIE (Common Information Entry) struct CIE_Info { @@ -328,7 +329,7 @@ void set_cie_info_personality(CIE_Info *info, T signed_personality) { memmove((void *)&info->personality, (void *)&signed_personality, sizeof(signed_personality)); } -} +} // namespace /// Extract info from a CIE template <typename A> diff --git a/libunwind/src/Registers.hpp b/libunwind/src/Registers.hpp index 8d4345332..cc1f96a34 100644 --- a/libunwind/src/Registers.hpp +++ b/libunwind/src/Registers.hpp @@ -17,8 +17,8 @@ #include "config.h" #include "libunwind.h" -#include "shadow_stack_unwind.h" #include "libunwind_ext.h" +#include "shadow_stack_unwind.h" #if __has_include(<ptrauth.h>) #include <ptrauth.h> @@ -100,7 +100,7 @@ public: typedef uint32_t reg_t; typedef uint32_t link_reg_t; - void loadAndAuthenticateLinkRegister(reg_t srcLinkRegister, + void loadAndAuthenticateLinkRegister(reg_t srcLinkRegister, link_reg_t *dstLinkRegister) { *dstLinkRegister = srcLinkRegister; } @@ -325,7 +325,7 @@ public: typedef uint64_t reg_t; typedef uint64_t link_reg_t; - void loadAndAuthenticateLinkRegister(reg_t srcLinkRegister, + void loadAndAuthenticateLinkRegister(reg_t srcLinkRegister, link_reg_t *dstLinkRegister) { *dstLinkRegister = srcLinkRegister; } @@ -643,7 +643,7 @@ public: typedef uint32_t reg_t; typedef uint32_t link_reg_t; - void loadAndAuthenticateLinkRegister(reg_t srcLinkRegister, + void loadAndAuthenticateLinkRegister(reg_t srcLinkRegister, link_reg_t *dstLinkRegister) { *dstLinkRegister = srcLinkRegister; } @@ -1871,57 +1871,51 @@ public: uint64_t getSP() const { return _registers.__sp; } void setSP(uint64_t value) { _registers.__sp = value; } - uint64_t getIP() const { + uint64_t getIP() const { uint64_t value = _registers.__pc; #if __has_feature(ptrauth_calls) // Note the value of the PC was signed to its address in the register state // but everyone else expects it to be sign by the SP, so convert on return. - value = (uint64_t)ptrauth_auth_and_resign((void *)_registers.__pc, - ptrauth_key_return_address, - &_registers.__pc, - ptrauth_key_return_address, - getSP()); + value = (uint64_t)ptrauth_auth_and_resign( + (void *)_registers.__pc, ptrauth_key_return_address, &_registers.__pc, + ptrauth_key_return_address, getSP()); #endif return value; } - void setIP(uint64_t value) { + void setIP(uint64_t value) { #if __has_feature(ptrauth_calls) // Note the value which was set should have been signed with the SP. // We then resign with the slot we are being stored in to so that both SP // and LR can't be spoofed at the same time. - value = (uint64_t)ptrauth_auth_and_resign((void *)value, - ptrauth_key_return_address, - getSP(), - ptrauth_key_return_address, - &_registers.__pc); + value = (uint64_t)ptrauth_auth_and_resign( + (void *)value, ptrauth_key_return_address, getSP(), + ptrauth_key_return_address, &_registers.__pc); #endif _registers.__pc = value; } - uint64_t getFP() const { - return _registers.__fp; - } - void setFP(uint64_t value) { - _registers.__fp = value; - } + uint64_t getFP() const { return _registers.__fp; } + void setFP(uint64_t value) { _registers.__fp = value; } typedef uint64_t reg_t; - typedef uint64_t __LIBUNWIND_PTRAUTH_RI_PDC("Registers_arm64::link_reg_t") link_reg_t; + typedef uint64_t + __LIBUNWIND_PTRAUTH_RI_PDC("Registers_arm64::link_reg_t") link_reg_t; void loadAndAuthenticateLinkRegister(reg_t inplaceAuthedLinkRegister, link_reg_t *referenceAuthedLinkRegister) { #if __has_feature(ptrauth_calls) // If we are in an arm64e frame, then the PC should have been signed // with the SP - *referenceAuthedLinkRegister = - (uint64_t)ptrauth_auth_data((void *)inplaceAuthedLinkRegister, ptrauth_key_return_address, _registers.__sp); + *referenceAuthedLinkRegister = (uint64_t)ptrauth_auth_data( + (void *)inplaceAuthedLinkRegister, ptrauth_key_return_address, + _registers.__sp); #else *referenceAuthedLinkRegister = inplaceAuthedLinkRegister; #endif } // arm64_32 and i386 simulator hack - void loadAndAuthenticateLinkRegister(uint32_t srcLinkRegister, - uint32_t *dstLinkRegister) { + void loadAndAuthenticateLinkRegister(uint32_t srcLinkRegister, + uint32_t *dstLinkRegister) { *dstLinkRegister = srcLinkRegister; } @@ -1954,19 +1948,22 @@ inline Registers_arm64::Registers_arm64(const void *registers) { sizeof(_vectorHalfRegisters)); #if __has_feature(ptrauth_calls) uint64_t pcRegister = 0; - memcpy(&pcRegister, ((uint8_t*)&_registers) + offsetof(GPRs, __pc), sizeof(pcRegister)); + memcpy(&pcRegister, ((uint8_t *)&_registers) + offsetof(GPRs, __pc), + sizeof(pcRegister)); setIP(pcRegister); uint64_t fpRegister = 0; - memcpy(&fpRegister, ((uint8_t*)&_registers) + offsetof(GPRs, __fp), sizeof(fpRegister)); + memcpy(&fpRegister, ((uint8_t *)&_registers) + offsetof(GPRs, __fp), + sizeof(fpRegister)); setFP(fpRegister); #endif } -inline Registers_arm64::Registers_arm64(const Registers_arm64& other) { +inline Registers_arm64::Registers_arm64(const Registers_arm64 &other) { *this = other; } -inline Registers_arm64& Registers_arm64::operator=(const Registers_arm64& other) { +inline Registers_arm64 & +Registers_arm64::operator=(const Registers_arm64 &other) { memcpy(&_registers, &other._registers, sizeof(_registers)); memcpy(_vectorHalfRegisters, &other._vectorHalfRegisters, sizeof(_vectorHalfRegisters)); @@ -2240,7 +2237,7 @@ public: typedef uint32_t reg_t; typedef uint32_t link_reg_t; - void loadAndAuthenticateLinkRegister(reg_t srcLinkRegister, + void loadAndAuthenticateLinkRegister(reg_t srcLinkRegister, link_reg_t *dstLinkRegister) { *dstLinkRegister = srcLinkRegister; } diff --git a/libunwind/src/UnwindLevel1.c b/libunwind/src/UnwindLevel1.c index 7068e42c3..205265d18 100644 --- a/libunwind/src/UnwindLevel1.c +++ b/libunwind/src/UnwindLevel1.c @@ -613,12 +613,14 @@ _LIBUNWIND_EXPORT uintptr_t _Unwind_GetIP(struct _Unwind_Context *context) { __unw_get_reg(cursor, UNW_REG_IP, &result); #if __has_feature(ptrauth_calls) - // If we are in an arm64e frame, then the PC should have been signed with the sp - { - unw_word_t sp; - __unw_get_reg(cursor, UNW_REG_SP, &sp); - result = (unw_word_t)ptrauth_auth_data((void*)result, ptrauth_key_return_address, sp); - } + // If we are in an arm64e frame, then the PC should have been signed with the + // sp + { + unw_word_t sp; + __unw_get_reg(cursor, UNW_REG_SP, &sp); + result = (unw_word_t)ptrauth_auth_data((void *)result, + ptrauth_key_return_address, sp); + } #endif _LIBUNWIND_TRACE_API("_Unwind_GetIP(context=%p) => 0x%" PRIxPTR, `````````` </details> 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