diff options
-rw-r--r-- | libcxx/include/__config | 3 | ||||
-rw-r--r-- | libcxx/include/memory | 2 | ||||
-rw-r--r-- | libcxx/src/exception.cpp | 1 |
3 files changed, 5 insertions, 1 deletions
diff --git a/libcxx/include/__config b/libcxx/include/__config index 0c46f76188e..ced9a95344a 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -146,6 +146,9 @@ typedef __char32_t char32_t; #if !(__has_feature(cxx_auto_type)) #define _LIBCPP_HAS_NO_AUTO_TYPE +#endif + +#if __clang_major__ < 3 #define _LIBCPP_HAS_NO_ADVANCED_SFINAE #endif diff --git a/libcxx/include/memory b/libcxx/include/memory index 1972d06f4d9..d272c08c91c 100644 --- a/libcxx/include/memory +++ b/libcxx/include/memory @@ -1294,7 +1294,7 @@ struct __has_allocate_hint #endif // _LIBCPP_HAS_NO_ADVANCED_SFINAE -#ifndef _LIBCPP_HAS_NO_ADVANCED_SFINAE +#if !defined(_LIBCPP_HAS_NO_ADVANCED_SFINAE) && !defined(_LIBCPP_HAS_NO_VARIADICS) template <class _Alloc, class _Tp, class ..._Args> decltype(_VSTD::declval<_Alloc>().construct(_VSTD::declval<_Tp*>(), diff --git a/libcxx/src/exception.cpp b/libcxx/src/exception.cpp index b0efda648e5..28d87b34050 100644 --- a/libcxx/src/exception.cpp +++ b/libcxx/src/exception.cpp @@ -56,6 +56,7 @@ std::get_terminate() _NOEXCEPT return __sync_fetch_and_add(&__terminate_handler, (std::terminate_handler)0); } +_ATTRIBUTE(noreturn) void std::terminate() _NOEXCEPT { |