summaryrefslogtreecommitdiffstats
path: root/libcxx/src
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2018-10-11 00:17:24 +0000
committerEric Fiselier <eric@efcs.ca>2018-10-11 00:17:24 +0000
commit42f9868cd80d2e09c75f4642e0a66c7ecd38cf18 (patch)
tree848b536158c20f7d3a43b96c833fb3e16b2a4d71 /libcxx/src
parentf953ea5fb6edbaee6c5bf051212e775dbabea8ff (diff)
downloadbcm5719-llvm-42f9868cd80d2e09c75f4642e0a66c7ecd38cf18.tar.gz
bcm5719-llvm-42f9868cd80d2e09c75f4642e0a66c7ecd38cf18.zip
Distinguish between library and language support for aligned allocation.
There are two cases: 1. The library has all it needs to provide align_val_t and the new/delete overloads needed to support aligned allocation. 2. The compiler has actually turned the language feature on. There are times where libc++ needs to distinguish between the two. This patch adds the additional macro _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION which denotes when case (1) does not hold. _LIBCPP_HAS_NO_ALIGNED_ALLOCATION is defined whenever _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION is defined, or when the compiler has not enabled the language feature. Additionally this patch cleans up a number of other macros related to detection of aligned allocation machinery. llvm-svn: 344207
Diffstat (limited to 'libcxx/src')
-rw-r--r--libcxx/src/new.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/libcxx/src/new.cpp b/libcxx/src/new.cpp
index 35f481db08a..cc8383d4f14 100644
--- a/libcxx/src/new.cpp
+++ b/libcxx/src/new.cpp
@@ -55,7 +55,7 @@ __throw_bad_alloc()
} // std
#if !defined(__GLIBCXX__) && \
- (!defined(_LIBCPP_ABI_MICROSOFT) || defined(_LIBCPP_NO_VCRUNTIME)) && \
+ !defined(_LIBCPP_DEFER_NEW_TO_VCRUNTIME) && \
!defined(_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS)
// Implement all new and delete operators as weak definitions
@@ -173,7 +173,7 @@ operator delete[] (void* ptr, size_t) _NOEXCEPT
::operator delete[](ptr);
}
-#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION)
+#if !defined(_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION)
_LIBCPP_WEAK
void *
@@ -298,5 +298,5 @@ operator delete[] (void* ptr, size_t, std::align_val_t alignment) _NOEXCEPT
::operator delete[](ptr, alignment);
}
-#endif // !_LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#endif // !_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION
#endif // !__GLIBCXX__ && (!_LIBCPP_ABI_MICROSOFT || _LIBCPP_NO_VCRUNTIME) && !_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS
OpenPOWER on IntegriCloud