summaryrefslogtreecommitdiffstats
path: root/libunwind/include
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2017-08-23 15:33:45 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2017-08-23 15:33:45 +0000
commit5b389f1cf769ce628e0df866cdda866de7c35631 (patch)
treec8dad6301761f3cc5d564c3677c618cf83013d81 /libunwind/include
parent699670e764ed4f76fc028180baa2aca979790f94 (diff)
downloadbcm5719-llvm-5b389f1cf769ce628e0df866cdda866de7c35631.tar.gz
bcm5719-llvm-5b389f1cf769ce628e0df866cdda866de7c35631.zip
unwind: explicitly align `_Unwind_Control_Block`
The C++ ABI requires that the exception object is double-word aligned. The alignment attribute was applied to the `_Unwind_Exception` type which is used on non-EHABI targets. On EHABI, the exception object type is `_Unwind_Control_Block`. Apply the explicit maximal alignment on the type to ensure that the allocation has the correct alignment. Resolves PR33858! llvm-svn: 311562
Diffstat (limited to 'libunwind/include')
-rw-r--r--libunwind/include/unwind.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/libunwind/include/unwind.h b/libunwind/include/unwind.h
index fc7d122ab12..a1a84e9e700 100644
--- a/libunwind/include/unwind.h
+++ b/libunwind/include/unwind.h
@@ -100,7 +100,7 @@ struct _Unwind_Control_Block {
} pr_cache;
long long int :0; /* Enforce the 8-byte alignment */
-};
+} __attribute__((__aligned__));
typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
(_Unwind_State state,
OpenPOWER on IntegriCloud