[libcxxabi] Align unwindHeader on a double-word boundary.
authorAkira Hatanaka <ahatanaka@apple.com>
Thu, 11 May 2017 05:58:52 +0000 (05:58 +0000)
committerAkira Hatanaka <ahatanaka@apple.com>
Thu, 11 May 2017 05:58:52 +0000 (05:58 +0000)
commita9bbdc507c1c63da960883a15bc2b5a788406e72
tree8e8663a5d767c714b44ab6e278744838d8605e8c
parent6c3eb5fe0eab4585ebf84d61de98da1d6b6cf754
[libcxxabi] Align unwindHeader on a double-word boundary.

r276215 made a change to annotate _Unwind_Exception with attribute
"aligned" so that an exception object following field __cxa_exception
is sufficiently aligned. This fix hasn't been incorporated to unwind.h
on Darwin since it is an ABI breaking change.

Instead of annotating struct _Unwind_Exception with the attribute, this
commit annotates field unwindHeader of __cxa_exception. This ensures the
exception object is sufficiently aligned without breaking the ABI.

rdar://problem/25364625

Differential Revision: https://reviews.llvm.org/D33030

llvm-svn: 302763
libcxxabi/src/cxa_exception.hpp
libcxxabi/test/exception_object_alignment.sh.cpp [new file with mode: 0644]