From: Louis Dionne Date: Tue, 25 Feb 2020 16:42:08 +0000 (-0500) Subject: [libc++] Revert 03dd205c151 "Adjust max_align_t handling" X-Git-Tag: llvmorg-12-init~13687 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7c2f4a8370829aae5a96b7353fb0727d4e47e8fd;p=platform%2Fupstream%2Fllvm.git [libc++] Revert 03dd205c151 "Adjust max_align_t handling" That commit was made without approval from a libc++ reviewer, and it also broke the build in C++03 mode. --- diff --git a/libcxx/include/cstddef b/libcxx/include/cstddef index 2a0bfeb..87eee4b 100644 --- a/libcxx/include/cstddef +++ b/libcxx/include/cstddef @@ -25,7 +25,7 @@ Types: ptrdiff_t size_t - max_align_t // C++11 + max_align_t nullptr_t byte // C++17 @@ -49,8 +49,12 @@ _LIBCPP_BEGIN_NAMESPACE_STD using ::ptrdiff_t; using ::size_t; -#if !defined(_LIBCPP_CXX03_LANG) +#if defined(__CLANG_MAX_ALIGN_T_DEFINED) || defined(_GCC_MAX_ALIGN_T) || \ + defined(__DEFINED_max_align_t) || defined(__NetBSD__) +// Re-use the compiler's max_align_t where possible. using ::max_align_t; +#else +typedef long double max_align_t; #endif template struct __libcpp_is_integral { enum { value = 0 }; }; diff --git a/libcxx/include/new b/libcxx/include/new index b64057a..40d351e 100644 --- a/libcxx/include/new +++ b/libcxx/include/new @@ -226,19 +226,9 @@ inline _LIBCPP_INLINE_VISIBILITY void operator delete[](void*, void*) _NOEXCEPT _LIBCPP_BEGIN_NAMESPACE_STD -#if defined(_LIBCPP_CXX03_LANG) -union __libcpp_max_align_t { - void * __f1; - long long int __f2; - long double __f3; -}; -#endif - _LIBCPP_CONSTEXPR inline _LIBCPP_INLINE_VISIBILITY bool __is_overaligned_for_new(size_t __align) _NOEXCEPT { #ifdef __STDCPP_DEFAULT_NEW_ALIGNMENT__ return __align > __STDCPP_DEFAULT_NEW_ALIGNMENT__; -#elif defined(_LIBCPP_CXX03_LANG) - return __align > alignment_of<__libcpp_max_align_t>::value; #else return __align > alignment_of::value; #endif diff --git a/libcxx/include/stddef.h b/libcxx/include/stddef.h index ba28b29..6497dcd 100644 --- a/libcxx/include/stddef.h +++ b/libcxx/include/stddef.h @@ -51,6 +51,12 @@ extern "C++" { using std::nullptr_t; } +// Re-use the compiler's max_align_t where possible. +#if !defined(__CLANG_MAX_ALIGN_T_DEFINED) && !defined(_GCC_MAX_ALIGN_T) && \ + !defined(__DEFINED_max_align_t) && !defined(__NetBSD__) +typedef long double max_align_t; +#endif + #endif #endif // _LIBCPP_STDDEF_H