[libcxxabi] [libunwind] [WebAssembly] __USING_WASM_EXCEPTIONS__ -> __WASM_EXCEPTIONS__ (PR #92840)

via cfe-commits cfe-commits at lists.llvm.org
Mon May 20 18:47:03 PDT 2024


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


More information about the cfe-commits mailing list