libcxxrt: Insert padding in __cxa_dependent_exception
Padding was added to __cxa_exception in 45ca8b19 and __cxa_dependent_exception needs the same layout. Add some static_asserts to detect this in the future. Merge of libcxxrt commit b00c6c564357
This commit is contained in:
parent
b40c0db6f6
commit
c40e434988
@ -197,6 +197,7 @@ struct __cxa_thread_info
|
|||||||
struct __cxa_dependent_exception
|
struct __cxa_dependent_exception
|
||||||
{
|
{
|
||||||
#if __LP64__
|
#if __LP64__
|
||||||
|
void *reserve;
|
||||||
void *primaryException;
|
void *primaryException;
|
||||||
#endif
|
#endif
|
||||||
std::type_info *exceptionType;
|
std::type_info *exceptionType;
|
||||||
@ -219,6 +220,17 @@ struct __cxa_dependent_exception
|
|||||||
#endif
|
#endif
|
||||||
_Unwind_Exception unwindHeader;
|
_Unwind_Exception unwindHeader;
|
||||||
};
|
};
|
||||||
|
static_assert(sizeof(__cxa_exception) == sizeof(__cxa_dependent_exception),
|
||||||
|
"__cxa_exception and __cxa_dependent_exception should have the same size");
|
||||||
|
static_assert(offsetof(__cxa_exception, referenceCount) ==
|
||||||
|
offsetof(__cxa_dependent_exception, primaryException),
|
||||||
|
"referenceCount and primaryException should have the same offset");
|
||||||
|
static_assert(offsetof(__cxa_exception, unwindHeader) ==
|
||||||
|
offsetof(__cxa_dependent_exception, unwindHeader),
|
||||||
|
"unwindHeader fields should have the same offset");
|
||||||
|
static_assert(offsetof(__cxa_dependent_exception, unwindHeader) ==
|
||||||
|
offsetof(__cxa_dependent_exception, adjustedPtr) + 8,
|
||||||
|
"there should be no padding before unwindHeader");
|
||||||
|
|
||||||
|
|
||||||
namespace std
|
namespace std
|
||||||
|
Loading…
Reference in New Issue
Block a user