[libc++] Revert 03dd205c15 "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.
This commit is contained in:
Louis Dionne 2020-02-25 11:42:08 -05:00
parent ab41129b1e
commit 7c2f4a8370
3 changed files with 12 additions and 12 deletions

View File

@ -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 <stddef.h> max_align_t where possible.
using ::max_align_t;
#else
typedef long double max_align_t;
#endif
template <class _Tp> struct __libcpp_is_integral { enum { value = 0 }; };

View File

@ -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<max_align_t>::value;
#endif

View File

@ -51,6 +51,12 @@ extern "C++" {
using std::nullptr_t;
}
// Re-use the compiler's <stddef.h> 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