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 00179e92c147e16de1f7c653f88c8805aef820c1 e04e685a8fbf3e7915a9eaff3798fe77d15aab0c -- libcxxabi/include/cxxabi.h libcxxabi/src/cxa_exception.cpp libcxxabi/src/cxa_exception.h libcxxabi/src/cxa_personality.cpp libunwind/src/Unwind-wasm.c libunwind/src/libunwind.cpp `````````` </details> <details> <summary> View the diff from clang-format here. </summary> ``````````diff diff --git a/libcxxabi/include/cxxabi.h b/libcxxabi/include/cxxabi.h index 9d9beecf75..58e240cdf3 100644 --- a/libcxxabi/include/cxxabi.h +++ b/libcxxabi/include/cxxabi.h @@ -51,14 +51,13 @@ extern _LIBCXXABI_FUNC_VIS __cxa_exception* __cxa_init_primary_exception(void* object, std::type_info* tinfo, void(_LIBCXXABI_DTOR_FUNC* dest)(void*)) throw(); // 2.4.3 Throwing the Exception Object -extern _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN void -__cxa_throw(void *thrown_exception, std::type_info *tinfo, -#ifdef __WASM_EXCEPTIONS__ - // In Wasm, a destructor returns its argument - void *(_LIBCXXABI_DTOR_FUNC *dest)(void *)); -#else +extern _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN void __cxa_throw(void* thrown_exception, std::type_info* tinfo, +# ifdef __WASM_EXCEPTIONS__ + // In Wasm, a destructor returns its argument + void*(_LIBCXXABI_DTOR_FUNC* dest)(void*)); +# else void (_LIBCXXABI_DTOR_FUNC *dest)(void *)); -#endif +# endif // 2.5.3 Exception Handlers extern _LIBCXXABI_FUNC_VIS void * diff --git a/libcxxabi/src/cxa_exception.cpp b/libcxxabi/src/cxa_exception.cpp index 3141d50a6b..3889fef1d6 100644 --- a/libcxxabi/src/cxa_exception.cpp +++ b/libcxxabi/src/cxa_exception.cpp @@ -269,7 +269,7 @@ exception. void #ifdef __WASM_EXCEPTIONS__ // In Wasm, a destructor returns its argument -__cxa_throw(void *thrown_object, std::type_info *tinfo, void *(_LIBCXXABI_DTOR_FUNC *dest)(void *)) { +__cxa_throw(void* thrown_object, std::type_info* tinfo, void*(_LIBCXXABI_DTOR_FUNC* dest)(void*)) { #else __cxa_throw(void *thrown_object, std::type_info *tinfo, void (_LIBCXXABI_DTOR_FUNC *dest)(void *)) { #endif diff --git a/libcxxabi/src/cxa_personality.cpp b/libcxxabi/src/cxa_personality.cpp index 843a18a4cb..eb18932ef0 100644 --- a/libcxxabi/src/cxa_personality.cpp +++ b/libcxxabi/src/cxa_personality.cpp @@ -548,7 +548,7 @@ set_registers(_Unwind_Exception* unwind_exception, _Unwind_Context* context, const scan_results& results) { #if defined(__USING_SJLJ_EXCEPTIONS__) || defined(__WASM_EXCEPTIONS__) -#define __builtin_eh_return_data_regno(regno) regno +# define __builtin_eh_return_data_regno(regno) regno #elif defined(__ibmxl__) // IBM xlclang++ compiler does not support __builtin_eh_return_data_regno. #define __builtin_eh_return_data_regno(regno) regno + 3 @@ -694,157 +694,133 @@ static void scan_eh_tab(scan_results &results, _Unwind_Action actions, uintptr_t landingPad = readEncodedPointer(&callSitePtr, callSiteEncoding); uintptr_t actionEntry = readULEB128(&callSitePtr); if ((start <= ipOffset) && (ipOffset < (start + length))) -#else // __USING_SJLJ_EXCEPTIONS__ || __WASM_EXCEPTIONS__ - // ip is 1-based index into this table +#else // __USING_SJLJ_EXCEPTIONS__ || __WASM_EXCEPTIONS__ \ + // ip is 1-based index into this table uintptr_t landingPad = readULEB128(&callSitePtr); uintptr_t actionEntry = readULEB128(&callSitePtr); if (--ip == 0) #endif // __USING_SJLJ_EXCEPTIONS__ || __WASM_EXCEPTIONS__ { - // Found the call site containing ip. + // Found the call site containing ip. #if !defined(__USING_SJLJ_EXCEPTIONS__) && !defined(__WASM_EXCEPTIONS__) - if (landingPad == 0) - { - // No handler here - results.reason = _URC_CONTINUE_UNWIND; - return; - } - landingPad = (uintptr_t)lpStart + landingPad; + if (landingPad == 0) { + // No handler here + results.reason = _URC_CONTINUE_UNWIND; + return; + } + landingPad = (uintptr_t)lpStart + landingPad; #else // __USING_SJLJ_EXCEPTIONS__ || __WASM_EXCEPTIONS__ - ++landingPad; + ++landingPad; #endif // __USING_SJLJ_EXCEPTIONS__ || __WASM_EXCEPTIONS__ - results.landingPad = landingPad; - if (actionEntry == 0) - { - // Found a cleanup - results.reason = (actions & _UA_SEARCH_PHASE) ? _URC_CONTINUE_UNWIND : _URC_HANDLER_FOUND; + results.landingPad = landingPad; + if (actionEntry == 0) { + // Found a cleanup + results.reason = (actions & _UA_SEARCH_PHASE) ? _URC_CONTINUE_UNWIND : _URC_HANDLER_FOUND; + return; + } + // Convert 1-based byte offset into + const uint8_t* action = actionTableStart + (actionEntry - 1); + bool hasCleanup = false; + // Scan action entries until you find a matching handler, cleanup, or the end of action list + while (true) { + const uint8_t* actionRecord = action; + int64_t ttypeIndex = readSLEB128(&action); + if (ttypeIndex > 0) { + // Found a catch, does it actually catch? + // First check for catch (...) + const __shim_type_info* catchType = + get_shim_type_info(static_cast<uint64_t>(ttypeIndex), classInfo, ttypeEncoding, native_exception, + unwind_exception, base); + if (catchType == 0) { + // Found catch (...) catches everything, including + // foreign exceptions. This is search phase, cleanup + // phase with foreign exception, or forced unwinding. + assert(actions & (_UA_SEARCH_PHASE | _UA_HANDLER_FRAME | _UA_FORCE_UNWIND)); + results.ttypeIndex = ttypeIndex; + results.actionRecord = actionRecord; + results.adjustedPtr = get_thrown_object_ptr(unwind_exception); + results.reason = _URC_HANDLER_FOUND; return; - } - // Convert 1-based byte offset into - const uint8_t* action = actionTableStart + (actionEntry - 1); - bool hasCleanup = false; - // Scan action entries until you find a matching handler, cleanup, or the end of action list - while (true) - { - const uint8_t* actionRecord = action; - int64_t ttypeIndex = readSLEB128(&action); - if (ttypeIndex > 0) - { - // Found a catch, does it actually catch? - // First check for catch (...) - const __shim_type_info* catchType = - get_shim_type_info(static_cast<uint64_t>(ttypeIndex), - classInfo, ttypeEncoding, - native_exception, unwind_exception, - base); - if (catchType == 0) - { - // Found catch (...) catches everything, including - // foreign exceptions. This is search phase, cleanup - // phase with foreign exception, or forced unwinding. - assert(actions & (_UA_SEARCH_PHASE | _UA_HANDLER_FRAME | - _UA_FORCE_UNWIND)); - results.ttypeIndex = ttypeIndex; - results.actionRecord = actionRecord; - results.adjustedPtr = - get_thrown_object_ptr(unwind_exception); - results.reason = _URC_HANDLER_FOUND; - return; - } - // Else this is a catch (T) clause and will never - // catch a foreign exception - else if (native_exception) - { - __cxa_exception* exception_header = (__cxa_exception*)(unwind_exception+1) - 1; - void* adjustedPtr = get_thrown_object_ptr(unwind_exception); - const __shim_type_info* excpType = - static_cast<const __shim_type_info*>(exception_header->exceptionType); - if (adjustedPtr == 0 || excpType == 0) - { - // Something very bad happened - call_terminate(native_exception, unwind_exception); - } - if (catchType->can_catch(excpType, adjustedPtr)) - { - // Found a matching handler. This is either search - // phase or forced unwinding. - assert(actions & - (_UA_SEARCH_PHASE | _UA_FORCE_UNWIND)); - results.ttypeIndex = ttypeIndex; - results.actionRecord = actionRecord; - results.adjustedPtr = adjustedPtr; - results.reason = _URC_HANDLER_FOUND; - return; - } - } - // Scan next action ... + } + // Else this is a catch (T) clause and will never + // catch a foreign exception + else if (native_exception) { + __cxa_exception* exception_header = (__cxa_exception*)(unwind_exception + 1) - 1; + void* adjustedPtr = get_thrown_object_ptr(unwind_exception); + const __shim_type_info* excpType = + static_cast<const __shim_type_info*>(exception_header->exceptionType); + if (adjustedPtr == 0 || excpType == 0) { + // Something very bad happened + call_terminate(native_exception, unwind_exception); } - else if (ttypeIndex < 0) - { - // Found an exception specification. - if (actions & _UA_FORCE_UNWIND) { - // Skip if forced unwinding. - } else if (native_exception) { - // Does the exception spec catch this native exception? - __cxa_exception* exception_header = (__cxa_exception*)(unwind_exception+1) - 1; - void* adjustedPtr = get_thrown_object_ptr(unwind_exception); - const __shim_type_info* excpType = - static_cast<const __shim_type_info*>(exception_header->exceptionType); - if (adjustedPtr == 0 || excpType == 0) - { - // Something very bad happened - call_terminate(native_exception, unwind_exception); - } - if (exception_spec_can_catch(ttypeIndex, classInfo, - ttypeEncoding, excpType, - adjustedPtr, - unwind_exception, base)) - { - // Native exception caught by exception - // specification. - assert(actions & _UA_SEARCH_PHASE); - results.ttypeIndex = ttypeIndex; - results.actionRecord = actionRecord; - results.adjustedPtr = adjustedPtr; - results.reason = _URC_HANDLER_FOUND; - return; - } - } else { - // foreign exception caught by exception spec - results.ttypeIndex = ttypeIndex; - results.actionRecord = actionRecord; - results.adjustedPtr = - get_thrown_object_ptr(unwind_exception); - results.reason = _URC_HANDLER_FOUND; - return; - } - // Scan next action ... - } else { - hasCleanup = true; + if (catchType->can_catch(excpType, adjustedPtr)) { + // Found a matching handler. This is either search + // phase or forced unwinding. + assert(actions & (_UA_SEARCH_PHASE | _UA_FORCE_UNWIND)); + results.ttypeIndex = ttypeIndex; + results.actionRecord = actionRecord; + results.adjustedPtr = adjustedPtr; + results.reason = _URC_HANDLER_FOUND; + return; } - const uint8_t* temp = action; - int64_t actionOffset = readSLEB128(&temp); - if (actionOffset == 0) - { - // End of action list. If this is phase 2 and we have found - // a cleanup (ttypeIndex=0), return _URC_HANDLER_FOUND; - // otherwise return _URC_CONTINUE_UNWIND. - results.reason = hasCleanup && actions & _UA_CLEANUP_PHASE - ? _URC_HANDLER_FOUND - : _URC_CONTINUE_UNWIND; - return; + } + // Scan next action ... + } else if (ttypeIndex < 0) { + // Found an exception specification. + if (actions & _UA_FORCE_UNWIND) { + // Skip if forced unwinding. + } else if (native_exception) { + // Does the exception spec catch this native exception? + __cxa_exception* exception_header = (__cxa_exception*)(unwind_exception + 1) - 1; + void* adjustedPtr = get_thrown_object_ptr(unwind_exception); + const __shim_type_info* excpType = + static_cast<const __shim_type_info*>(exception_header->exceptionType); + if (adjustedPtr == 0 || excpType == 0) { + // Something very bad happened + call_terminate(native_exception, unwind_exception); + } + if (exception_spec_can_catch(ttypeIndex, classInfo, ttypeEncoding, excpType, adjustedPtr, + unwind_exception, base)) { + // Native exception caught by exception + // specification. + assert(actions & _UA_SEARCH_PHASE); + results.ttypeIndex = ttypeIndex; + results.actionRecord = actionRecord; + results.adjustedPtr = adjustedPtr; + results.reason = _URC_HANDLER_FOUND; + return; } - // Go to next action - action += actionOffset; - } // there is no break out of this loop, only return + } else { + // foreign exception caught by exception spec + results.ttypeIndex = ttypeIndex; + results.actionRecord = actionRecord; + results.adjustedPtr = get_thrown_object_ptr(unwind_exception); + results.reason = _URC_HANDLER_FOUND; + return; + } + // Scan next action ... + } else { + hasCleanup = true; + } + const uint8_t* temp = action; + int64_t actionOffset = readSLEB128(&temp); + if (actionOffset == 0) { + // End of action list. If this is phase 2 and we have found + // a cleanup (ttypeIndex=0), return _URC_HANDLER_FOUND; + // otherwise return _URC_CONTINUE_UNWIND. + results.reason = hasCleanup && actions & _UA_CLEANUP_PHASE ? _URC_HANDLER_FOUND : _URC_CONTINUE_UNWIND; + return; + } + // Go to next action + action += actionOffset; + } // there is no break out of this loop, only return } #if !defined(__USING_SJLJ_EXCEPTIONS__) && !defined(__WASM_EXCEPTIONS__) - else if (ipOffset < start) - { - // There is no call site for this ip - // Something bad has happened. We should never get here. - // Possible stack corruption. - call_terminate(native_exception, unwind_exception); + else if (ipOffset < start) { + // There is no call site for this ip + // Something bad has happened. We should never get here. + // Possible stack corruption. + call_terminate(native_exception, unwind_exception); } #endif // !__USING_SJLJ_EXCEPTIONS__ && !__WASM_EXCEPTIONS__ } // there might be some tricky cases which break out of this loop @@ -903,7 +879,7 @@ _UA_CLEANUP_PHASE */ #if !defined(_LIBCXXABI_ARM_EHABI) -#ifdef __WASM_EXCEPTIONS__ +# ifdef __WASM_EXCEPTIONS__ _Unwind_Reason_Code __gxx_personality_wasm0 #elif defined(__SEH__) && !defined(__USING_SJLJ_EXCEPTIONS__) static _Unwind_Reason_Code __gxx_personality_imp @@ -972,7 +948,7 @@ __gxx_personality_v0 exc->languageSpecificData = results.languageSpecificData; exc->catchTemp = reinterpret_cast<void*>(results.landingPad); exc->adjustedPtr = results.adjustedPtr; -#ifdef __WASM_EXCEPTIONS__ +# ifdef __WASM_EXCEPTIONS__ // Wasm only uses a single phase (_UA_SEARCH_PHASE), so save the // results here. set_registers(unwind_exception, context, results); `````````` </details> https://github.com/llvm/llvm-project/pull/92840 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits