|
Lines 108-113
Link Here
|
| 108 |
struct __cxa_exception { |
108 |
struct __cxa_exception { |
| 109 |
#if defined _LIBCPPABI_VERSION // detect libc++abi |
109 |
#if defined _LIBCPPABI_VERSION // detect libc++abi |
| 110 |
#if defined __LP64__ || LIBCXXABI_ARM_EHABI |
110 |
#if defined __LP64__ || LIBCXXABI_ARM_EHABI |
|
|
111 |
|
| 112 |
// This is a new field added with LLVM 10 |
| 113 |
// <https://github.com/llvm/llvm-project/commit/f2a436058fcbc11291e73badb44e243f61046183> |
| 114 |
// "[libcxxabi] Insert padding in __cxa_exception struct for compatibility". |
| 115 |
|
| 116 |
// Now _Unwind_Exception is marked with __attribute__((aligned)), |
| 117 |
// which implies __cxa_exception is also aligned. Insert padding |
| 118 |
// in the beginning of the struct, rather than before unwindHeader. |
| 119 |
void *reserve; |
| 120 |
|
| 111 |
std::size_t referenceCount; |
121 |
std::size_t referenceCount; |
| 112 |
#endif |
122 |
#endif |