]> granicus.if.org Git - clang/commitdiff
Headers: give _Unwind_Control_Block double-word alignment
authorSaleem Abdulrasool <compnerd@compnerd.org>
Wed, 23 Aug 2017 15:35:33 +0000 (15:35 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Wed, 23 Aug 2017 15:35:33 +0000 (15:35 +0000)
The C++ ABI requires that the exception object (which under AEABI is the
`_Unwind_Control_Block`) is double-word aligned.  The attribute was
applied to the `_Unwind_Exception` type, but not the
`_Unwind_Control_Block`.  This should fix the libunwind test for the
alignment of the exception type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311563 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Headers/unwind.h

index e94b00b57c268c782de29faaf350b5f7468c1c42..c5ad04863f48cc882fd775aade557b0aba2a12bc 100644 (file)
@@ -149,7 +149,7 @@ struct _Unwind_Control_Block {
     uint32_t reserved1;
   } pr_cache;
   long long int : 0; /* force alignment of next item to 8-byte boundary */
-};
+} __attribute__((__aligned__));
 #else
 struct _Unwind_Exception {
   _Unwind_Exception_Class exception_class;