mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-24 06:10:12 +00:00
Revert "Move internal usages of alignof
/__alignof
to use _LIBCPP_ALIGNOF
. "
This reverts commit 087f065cb0c7463f521a62599884493aaee2ea12. The tests were failing on 32 bit builds, and I don't have time to clean them up right now. I'll recommit tomorrow with fixed tests. llvm-svn: 347816
This commit is contained in:
parent
bc5679eaff
commit
9d25ada420
@ -1281,16 +1281,6 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_contiguous_container(
|
||||
#define _LIBCPP_HAS_NO_COROUTINES
|
||||
#endif
|
||||
|
||||
#ifndef _LIBCPP_CXX03_LANG
|
||||
# define _LIBCPP_ALIGNOF(_Tp) alignof(_Tp)
|
||||
#elif defined(_LIBCPP_COMPILER_CLANG)
|
||||
# define _LIBCPP_ALIGNOF(_Tp) _Alignof(_Tp)
|
||||
#else
|
||||
// This definition is potentially buggy, but it's only taken with GCC in C++03,
|
||||
// which we barely support anyway. See llvm.org/PR39713
|
||||
# define _LIBCPP_ALIGNOF(_Tp) __alignof(_Tp)
|
||||
#endif
|
||||
|
||||
// FIXME: Correct this macro when either (A) a feature test macro for the
|
||||
// spaceship operator is provided, or (B) a compiler provides a complete
|
||||
// implementation.
|
||||
|
@ -55,14 +55,14 @@ public:
|
||||
__allocated_ = true;
|
||||
return (pointer)&buf_;
|
||||
}
|
||||
return static_cast<pointer>(_VSTD::__libcpp_allocate(__n * sizeof(_Tp), _LIBCPP_ALIGNOF(_Tp)));
|
||||
return static_cast<pointer>(_VSTD::__libcpp_allocate(__n * sizeof(_Tp), __alignof(_Tp)));
|
||||
}
|
||||
_LIBCPP_INLINE_VISIBILITY void deallocate(pointer __p, size_type __n)
|
||||
{
|
||||
if (__p == (pointer)&buf_)
|
||||
__allocated_ = false;
|
||||
else
|
||||
_VSTD::__libcpp_deallocate(__p, __n * sizeof(_Tp), _LIBCPP_ALIGNOF(_Tp));
|
||||
_VSTD::__libcpp_deallocate(__p, __n * sizeof(_Tp), __alignof(_Tp));
|
||||
}
|
||||
_LIBCPP_INLINE_VISIBILITY size_type max_size() const throw() {return size_type(~0) / sizeof(_Tp);}
|
||||
|
||||
|
@ -214,7 +214,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_Promise& promise() const {
|
||||
return *static_cast<_Promise*>(
|
||||
__builtin_coro_promise(this->__handle_, _LIBCPP_ALIGNOF(_Promise), false));
|
||||
__builtin_coro_promise(this->__handle_, __alignof(_Promise), false));
|
||||
}
|
||||
|
||||
public:
|
||||
@ -254,7 +254,7 @@ public:
|
||||
coroutine_handle __tmp;
|
||||
__tmp.__handle_ = __builtin_coro_promise(
|
||||
_VSTD::addressof(const_cast<_RawPromise&>(__promise)),
|
||||
_LIBCPP_ALIGNOF(_Promise), true);
|
||||
__alignof(_Promise), true);
|
||||
return __tmp;
|
||||
}
|
||||
};
|
||||
@ -272,7 +272,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_Promise& promise() const {
|
||||
return *static_cast<_Promise*>(
|
||||
__builtin_coro_promise(this->__handle_, _LIBCPP_ALIGNOF(_Promise), false));
|
||||
__builtin_coro_promise(this->__handle_, __alignof(_Promise), false));
|
||||
}
|
||||
|
||||
_LIBCPP_CONSTEXPR explicit operator bool() const _NOEXCEPT { return true; }
|
||||
|
@ -1797,10 +1797,10 @@ public:
|
||||
if (__n > max_size())
|
||||
__throw_length_error("allocator<T>::allocate(size_t n)"
|
||||
" 'n' exceeds maximum supported size");
|
||||
return static_cast<pointer>(_VSTD::__libcpp_allocate(__n * sizeof(_Tp), _LIBCPP_ALIGNOF(_Tp)));
|
||||
return static_cast<pointer>(_VSTD::__libcpp_allocate(__n * sizeof(_Tp), __alignof(_Tp)));
|
||||
}
|
||||
_LIBCPP_INLINE_VISIBILITY void deallocate(pointer __p, size_type __n) _NOEXCEPT
|
||||
{_VSTD::__libcpp_deallocate((void*)__p, __n * sizeof(_Tp), _LIBCPP_ALIGNOF(_Tp));}
|
||||
{_VSTD::__libcpp_deallocate((void*)__p, __n * sizeof(_Tp), __alignof(_Tp));}
|
||||
_LIBCPP_INLINE_VISIBILITY size_type max_size() const _NOEXCEPT
|
||||
{return size_type(~0) / sizeof(_Tp);}
|
||||
#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
|
||||
@ -1898,10 +1898,10 @@ public:
|
||||
if (__n > max_size())
|
||||
__throw_length_error("allocator<const T>::allocate(size_t n)"
|
||||
" 'n' exceeds maximum supported size");
|
||||
return static_cast<pointer>(_VSTD::__libcpp_allocate(__n * sizeof(_Tp), _LIBCPP_ALIGNOF(_Tp)));
|
||||
return static_cast<pointer>(_VSTD::__libcpp_allocate(__n * sizeof(_Tp), __alignof(_Tp)));
|
||||
}
|
||||
_LIBCPP_INLINE_VISIBILITY void deallocate(pointer __p, size_type __n) _NOEXCEPT
|
||||
{_VSTD::__libcpp_deallocate((void*) const_cast<_Tp *>(__p), __n * sizeof(_Tp), _LIBCPP_ALIGNOF(_Tp));}
|
||||
{_VSTD::__libcpp_deallocate((void*) const_cast<_Tp *>(__p), __n * sizeof(_Tp), __alignof(_Tp));}
|
||||
_LIBCPP_INLINE_VISIBILITY size_type max_size() const _NOEXCEPT
|
||||
{return size_type(~0) / sizeof(_Tp);}
|
||||
#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
|
||||
@ -2017,7 +2017,7 @@ get_temporary_buffer(ptrdiff_t __n) _NOEXCEPT
|
||||
while (__n > 0)
|
||||
{
|
||||
#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION)
|
||||
if (__is_overaligned_for_new(_LIBCPP_ALIGNOF(_Tp)))
|
||||
if (__is_overaligned_for_new(__alignof(_Tp)))
|
||||
{
|
||||
std::align_val_t __al =
|
||||
std::align_val_t(std::alignment_of<_Tp>::value);
|
||||
@ -2028,7 +2028,7 @@ get_temporary_buffer(ptrdiff_t __n) _NOEXCEPT
|
||||
__n * sizeof(_Tp), nothrow));
|
||||
}
|
||||
#else
|
||||
if (__is_overaligned_for_new(_LIBCPP_ALIGNOF(_Tp)))
|
||||
if (__is_overaligned_for_new(__alignof(_Tp)))
|
||||
{
|
||||
// Since aligned operator new is unavailable, return an empty
|
||||
// buffer rather than one with invalid alignment.
|
||||
@ -2052,7 +2052,7 @@ template <class _Tp>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
void return_temporary_buffer(_Tp* __p) _NOEXCEPT
|
||||
{
|
||||
_VSTD::__libcpp_deallocate_unsized((void*)__p, _LIBCPP_ALIGNOF(_Tp));
|
||||
_VSTD::__libcpp_deallocate_unsized((void*)__p, __alignof(_Tp));
|
||||
}
|
||||
|
||||
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||
|
@ -1649,7 +1649,7 @@ _LIBCPP_INLINE_VAR _LIBCPP_CONSTEXPR bool has_unique_object_representations_v
|
||||
// alignment_of
|
||||
|
||||
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS alignment_of
|
||||
: public integral_constant<size_t, _LIBCPP_ALIGNOF(_Tp)> {};
|
||||
: public integral_constant<size_t, __alignof__(_Tp)> {};
|
||||
|
||||
#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)
|
||||
template <class _Tp>
|
||||
@ -1812,8 +1812,8 @@ struct __static_max<_I0, _I1, _In...>
|
||||
template <size_t _Len, class _Type0, class ..._Types>
|
||||
struct aligned_union
|
||||
{
|
||||
static const size_t alignment_value = __static_max<_LIBCPP_ALIGNOF(_Type0),
|
||||
_LIBCPP_ALIGNOF(_Types)...>::value;
|
||||
static const size_t alignment_value = __static_max<__alignof__(_Type0),
|
||||
__alignof__(_Types)...>::value;
|
||||
static const size_t __len = __static_max<_Len, sizeof(_Type0),
|
||||
sizeof(_Types)...>::value;
|
||||
typedef typename aligned_storage<__len, alignment_value>::type type;
|
||||
|
@ -2740,7 +2740,7 @@ __val_expr<_ValExpr>::operator valarray<__val_expr::result_type>() const
|
||||
__r.__begin_ =
|
||||
__r.__end_ =
|
||||
static_cast<result_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(result_type), _LIBCPP_ALIGNOF(result_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(result_type), __alignof(result_type)));
|
||||
for (size_t __i = 0; __i != __n; ++__r.__end_, ++__i)
|
||||
::new (__r.__end_) result_type(__expr_[__i]);
|
||||
}
|
||||
@ -2758,7 +2758,7 @@ valarray<_Tp>::valarray(size_t __n)
|
||||
if (__n)
|
||||
{
|
||||
__begin_ = __end_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
@ -2793,7 +2793,7 @@ valarray<_Tp>::valarray(const value_type* __p, size_t __n)
|
||||
if (__n)
|
||||
{
|
||||
__begin_ = __end_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
@ -2819,7 +2819,7 @@ valarray<_Tp>::valarray(const valarray& __v)
|
||||
if (__v.size())
|
||||
{
|
||||
__begin_ = __end_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__v.size() * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__v.size() * sizeof(value_type), __alignof(value_type)));
|
||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
@ -2857,7 +2857,7 @@ valarray<_Tp>::valarray(initializer_list<value_type> __il)
|
||||
if (__n)
|
||||
{
|
||||
__begin_ = __end_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
@ -2887,7 +2887,7 @@ valarray<_Tp>::valarray(const slice_array<value_type>& __sa)
|
||||
if (__n)
|
||||
{
|
||||
__begin_ = __end_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
@ -2915,7 +2915,7 @@ valarray<_Tp>::valarray(const gslice_array<value_type>& __ga)
|
||||
if (__n)
|
||||
{
|
||||
__begin_ = __end_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
@ -2945,7 +2945,7 @@ valarray<_Tp>::valarray(const mask_array<value_type>& __ma)
|
||||
if (__n)
|
||||
{
|
||||
__begin_ = __end_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
@ -2975,7 +2975,7 @@ valarray<_Tp>::valarray(const indirect_array<value_type>& __ia)
|
||||
if (__n)
|
||||
{
|
||||
__begin_ = __end_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
@ -3012,7 +3012,7 @@ valarray<_Tp>::__assign_range(const value_type* __f, const value_type* __l)
|
||||
{
|
||||
__clear(size());
|
||||
__begin_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
__end_ = __begin_ + __n;
|
||||
_VSTD::uninitialized_copy(__f, __l, __begin_);
|
||||
} else {
|
||||
@ -3268,7 +3268,7 @@ valarray<_Tp>::operator+() const
|
||||
__r.__begin_ =
|
||||
__r.__end_ =
|
||||
static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)
|
||||
::new (__r.__end_) value_type(+*__p);
|
||||
}
|
||||
@ -3286,7 +3286,7 @@ valarray<_Tp>::operator-() const
|
||||
__r.__begin_ =
|
||||
__r.__end_ =
|
||||
static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)
|
||||
::new (__r.__end_) value_type(-*__p);
|
||||
}
|
||||
@ -3304,7 +3304,7 @@ valarray<_Tp>::operator~() const
|
||||
__r.__begin_ =
|
||||
__r.__end_ =
|
||||
static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)
|
||||
::new (__r.__end_) value_type(~*__p);
|
||||
}
|
||||
@ -3321,7 +3321,7 @@ valarray<_Tp>::operator!() const
|
||||
{
|
||||
__r.__begin_ =
|
||||
__r.__end_ =
|
||||
static_cast<bool*>(_VSTD::__libcpp_allocate(__n * sizeof(bool), _LIBCPP_ALIGNOF(bool)));
|
||||
static_cast<bool*>(_VSTD::__libcpp_allocate(__n * sizeof(bool), __alignof(bool)));
|
||||
for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)
|
||||
::new (__r.__end_) bool(!*__p);
|
||||
}
|
||||
@ -3642,7 +3642,7 @@ valarray<_Tp>::shift(int __i) const
|
||||
__r.__begin_ =
|
||||
__r.__end_ =
|
||||
static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
const value_type* __sb;
|
||||
value_type* __tb;
|
||||
value_type* __te;
|
||||
@ -3681,7 +3681,7 @@ valarray<_Tp>::cshift(int __i) const
|
||||
__r.__begin_ =
|
||||
__r.__end_ =
|
||||
static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
__i %= static_cast<int>(__n);
|
||||
const value_type* __m = __i >= 0 ? __begin_ + __i : __end_ + __i;
|
||||
for (const value_type* __s = __m; __s != __end_; ++__r.__end_, ++__s)
|
||||
@ -3703,7 +3703,7 @@ valarray<_Tp>::apply(value_type __f(value_type)) const
|
||||
__r.__begin_ =
|
||||
__r.__end_ =
|
||||
static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)
|
||||
::new (__r.__end_) value_type(__f(*__p));
|
||||
}
|
||||
@ -3721,7 +3721,7 @@ valarray<_Tp>::apply(value_type __f(const value_type&)) const
|
||||
__r.__begin_ =
|
||||
__r.__end_ =
|
||||
static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)
|
||||
::new (__r.__end_) value_type(__f(*__p));
|
||||
}
|
||||
@ -3736,7 +3736,7 @@ void valarray<_Tp>::__clear(size_t __capacity)
|
||||
{
|
||||
while (__end_ != __begin_)
|
||||
(--__end_)->~value_type();
|
||||
_VSTD::__libcpp_deallocate(__begin_, __capacity * sizeof(value_type), _LIBCPP_ALIGNOF(value_type));
|
||||
_VSTD::__libcpp_deallocate(__begin_, __capacity * sizeof(value_type), __alignof(value_type));
|
||||
__begin_ = __end_ = nullptr;
|
||||
}
|
||||
}
|
||||
@ -3749,7 +3749,7 @@ valarray<_Tp>::resize(size_t __n, value_type __x)
|
||||
if (__n)
|
||||
{
|
||||
__begin_ = __end_ = static_cast<value_type*>(
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), _LIBCPP_ALIGNOF(value_type)));
|
||||
_VSTD::__libcpp_allocate(__n * sizeof(value_type), __alignof(value_type)));
|
||||
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
|
@ -1,37 +0,0 @@
|
||||
// -*- C++ -*-
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// Test that _LIBCPP_ALIGNOF acts the same as the C++11 keyword `alignof`, and
|
||||
// not as the GNU extension `__alignof`. The former returns the minimal required
|
||||
// alignment for a type, whereas the latter returns the preferred alignment.
|
||||
//
|
||||
// See llvm.org/PR39713
|
||||
|
||||
#include <type_traits>
|
||||
#include "test_macros.h"
|
||||
|
||||
template <class T>
|
||||
void test() {
|
||||
static_assert(_LIBCPP_ALIGNOF(T) == std::alignment_of<T>::value, "");
|
||||
static_assert(_LIBCPP_ALIGNOF(T) == TEST_ALIGNOF(T), "");
|
||||
#if TEST_STD_VER >= 11
|
||||
static_assert(_LIBCPP_ALIGNOF(T) == alignof(T), "");
|
||||
#endif
|
||||
#ifdef TEST_COMPILER_CLANG
|
||||
static_assert(_LIBCPP_ALIGNOF(T) == _Alignof(T), "");
|
||||
#endif
|
||||
}
|
||||
|
||||
int main() {
|
||||
test<int>();
|
||||
test<long long>();
|
||||
test<double>();
|
||||
test<long double>();
|
||||
}
|
@ -58,6 +58,8 @@ struct TEST_ALIGNAS(TEST_ALIGNOF(std::max_align_t) * 2) TestType2 {
|
||||
char data[1000];
|
||||
};
|
||||
|
||||
//static_assert(sizeof(void*) == 4, "");
|
||||
|
||||
int main() {
|
||||
test_type<char>();
|
||||
test_type<int>();
|
||||
|
@ -254,6 +254,9 @@ int main()
|
||||
// Use alignof(std::max_align_t) below to find the max alignment instead of
|
||||
// hardcoding it, because it's different on different platforms.
|
||||
// (For example 8 on arm and 16 on x86.)
|
||||
#if TEST_STD_VER < 11
|
||||
#define alignof __alignof__
|
||||
#endif
|
||||
{
|
||||
typedef std::aligned_storage<16>::type T1;
|
||||
#if TEST_STD_VER > 11
|
||||
@ -261,7 +264,7 @@ int main()
|
||||
#endif
|
||||
static_assert(std::is_trivial<T1>::value, "");
|
||||
static_assert(std::is_standard_layout<T1>::value, "");
|
||||
static_assert(std::alignment_of<T1>::value == TEST_ALIGNOF(std::max_align_t),
|
||||
static_assert(std::alignment_of<T1>::value == alignof(std::max_align_t),
|
||||
"");
|
||||
static_assert(sizeof(T1) == 16, "");
|
||||
}
|
||||
@ -272,9 +275,9 @@ int main()
|
||||
#endif
|
||||
static_assert(std::is_trivial<T1>::value, "");
|
||||
static_assert(std::is_standard_layout<T1>::value, "");
|
||||
static_assert(std::alignment_of<T1>::value == TEST_ALIGNOF(std::max_align_t),
|
||||
static_assert(std::alignment_of<T1>::value == alignof(std::max_align_t),
|
||||
"");
|
||||
static_assert(sizeof(T1) == 16 + TEST_ALIGNOF(std::max_align_t), "");
|
||||
static_assert(sizeof(T1) == 16 + alignof(std::max_align_t), "");
|
||||
}
|
||||
{
|
||||
typedef std::aligned_storage<10>::type T1;
|
||||
|
@ -115,11 +115,7 @@
|
||||
# define TEST_THROW_SPEC(...) throw(__VA_ARGS__)
|
||||
# endif
|
||||
#else
|
||||
#if defined(TEST_COMPILER_CLANG)
|
||||
# define TEST_ALIGNOF(...) _Alignof(__VA_ARGS__)
|
||||
#else
|
||||
# define TEST_ALIGNOF(...) __alignof(__VA_ARGS__)
|
||||
#endif
|
||||
#define TEST_ALIGNOF(...) __alignof(__VA_ARGS__)
|
||||
#define TEST_ALIGNAS(...) __attribute__((__aligned__(__VA_ARGS__)))
|
||||
#define TEST_CONSTEXPR
|
||||
#define TEST_CONSTEXPR_CXX14
|
||||
|
Loading…
Reference in New Issue
Block a user