[compiler-rt] r311425 - builtins: erase `struct` modifier for EH personality

Saleem Abdulrasool via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 21 21:05:50 PDT 2017


Author: compnerd
Date: Mon Aug 21 21:05:50 2017
New Revision: 311425

URL: http://llvm.org/viewvc/llvm-project?rev=311425&view=rev
Log:
builtins: erase `struct` modifier for EH personality

On ARM, the `_Unwind_Exception` is an alias for
`struct _Unwind_Control_Block`.  The extra `struct` modifier causes a
warning due to the locally scoped type.  Special case this to avoid the
warning.  NFC.

Modified:
    compiler-rt/trunk/lib/builtins/gcc_personality_v0.c

Modified: compiler-rt/trunk/lib/builtins/gcc_personality_v0.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/gcc_personality_v0.c?rev=311425&r1=311424&r2=311425&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/gcc_personality_v0.c (original)
+++ compiler-rt/trunk/lib/builtins/gcc_personality_v0.c Mon Aug 21 21:05:50 2017
@@ -145,23 +145,29 @@ static uintptr_t readEncodedPointer(cons
 #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) &&                 \
     !defined(__ARM_DWARF_EH__)
 #define USING_ARM_EHABI 1
-_Unwind_Reason_Code __gnu_unwind_frame(struct _Unwind_Exception *,
+_Unwind_Reason_Code __gnu_unwind_frame(_Unwind_Exception *,
                                        struct _Unwind_Context *);
 #endif
 
+#if USING_ARM_EHABI
+static inline _Unwind_Reason_Code
+continueUnwind(_Unwind_Exception *exceptionObject,
+               struct _Unwind_Context *context) {
+  /*
+   * On ARM EHABI the personality routine is responsible for actually
+   * unwinding a single stack frame before returning (ARM EHABI Sec. 6.1).
+   */
+  if (__gnu_unwind_frame(exceptionObject, context) != _URC_OK)
+    return _URC_FAILURE;
+  return _URC_CONTINUE_UNWIND;
+}
+#else
 static inline _Unwind_Reason_Code
 continueUnwind(struct _Unwind_Exception *exceptionObject,
                struct _Unwind_Context *context) {
-#if USING_ARM_EHABI
-    /*
-     * On ARM EHABI the personality routine is responsible for actually
-     * unwinding a single stack frame before returning (ARM EHABI Sec. 6.1).
-     */
-    if (__gnu_unwind_frame(exceptionObject, context) != _URC_OK)
-        return _URC_FAILURE;
-#endif
-    return _URC_CONTINUE_UNWIND;
+  return _URC_CONTINUE_UNWIND;
 }
+#endif
 
 /*
  * The C compiler makes references to __gcc_personality_v0 in
@@ -176,18 +182,20 @@ continueUnwind(struct _Unwind_Exception
  * different name */
 COMPILER_RT_ABI _Unwind_Reason_Code
 __gcc_personality_sj0(int version, _Unwind_Action actions,
-         uint64_t exceptionClass, struct _Unwind_Exception* exceptionObject,
-         struct _Unwind_Context *context)
+                      uint64_t exceptionClass,
+                      struct _Unwind_Exception *exceptionObject,
+                      struct _Unwind_Context *context)
 #elif USING_ARM_EHABI
 /* The ARM EHABI personality routine has a different signature. */
-COMPILER_RT_ABI _Unwind_Reason_Code __gcc_personality_v0(
-         _Unwind_State state, struct _Unwind_Exception *exceptionObject,
-         struct _Unwind_Context *context)
+COMPILER_RT_ABI _Unwind_Reason_Code
+__gcc_personality_v0(_Unwind_State state, _Unwind_Exception *exceptionObject,
+                     struct _Unwind_Context *context)
 #else
 COMPILER_RT_ABI _Unwind_Reason_Code
 __gcc_personality_v0(int version, _Unwind_Action actions,
-         uint64_t exceptionClass, struct _Unwind_Exception* exceptionObject,
-         struct _Unwind_Context *context)
+                     uint64_t exceptionClass,
+                     struct _Unwind_Exception *exceptionObject,
+                     struct _Unwind_Context *context)
 #endif
 {
     /* Since C does not have catch clauses, there is nothing to do during */




More information about the llvm-commits mailing list