diff options
author | Tom Stellard <tstellar@redhat.com> | 2018-10-22 16:29:48 +0000 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2018-10-22 16:29:48 +0000 |
commit | 0447cd66a07d649515953ce36caacd849a1d390c (patch) | |
tree | 07bbbd964486a7980472a0bd447ef5f2658ac472 | |
parent | cddf73ef269ca589993366e1f7d6662b8976d6ed (diff) | |
download | llvm-0447cd66a07d649515953ce36caacd849a1d390c.zip llvm-0447cd66a07d649515953ce36caacd849a1d390c.tar.gz llvm-0447cd66a07d649515953ce36caacd849a1d390c.tar.bz2 |
Merging r342815:
------------------------------------------------------------------------
r342815 | ericwf | 2018-09-22 12:22:36 -0700 (Sat, 22 Sep 2018) | 14 lines
Fix incorrectly aligned exceptions in 32 bit builds.
This patch fixes a bug where exceptions in 32 bit builds
would be incorrectly aligned because malloc only provides 8 byte aligned
memory where 16 byte alignment is needed.
This patch makes libc++abi correctly use posix_memalign when it's
available. This requires defining _LIBCPP_BUILDING_LIBRARY so that
libc++ only defines _LIBCPP_HAS_NO_ALIGNED_ALLOCATION when libc doesn't
support it and not when aligned new/delete are disable for other
reasons.
This bug somehow made it into the 7.0 release, making it a regression.
Therefore this patch should be included in the next dot release.
------------------------------------------------------------------------
llvm-svn: 344917
-rw-r--r-- | libcxxabi/src/fallback_malloc.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libcxxabi/src/fallback_malloc.cpp b/libcxxabi/src/fallback_malloc.cpp index 336ad31..bec9952 100644 --- a/libcxxabi/src/fallback_malloc.cpp +++ b/libcxxabi/src/fallback_malloc.cpp @@ -7,6 +7,9 @@ // //===----------------------------------------------------------------------===// +// Define _LIBCPP_BUILDING_LIBRARY to ensure _LIBCPP_HAS_NO_ALIGNED_ALLOCATION +// is only defined when libc aligned allocation is not available. +#define _LIBCPP_BUILDING_LIBRARY #include "fallback_malloc.h" #include <__threading_support> |