Make meta.trans.other/aligned_storage.pass.cpp pass on arm.
The maximum alignment on arm is 8, not 16 like on x86. Use alignof(max_align_t)
to make the test work in both cases.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@210195 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 8f62279382)
This commit is contained in:
@@ -159,12 +159,19 @@ int main()
|
|||||||
static_assert(std::alignment_of<T1>::value == 8, "");
|
static_assert(std::alignment_of<T1>::value == 8, "");
|
||||||
static_assert(sizeof(T1) == 16, "");
|
static_assert(sizeof(T1) == 16, "");
|
||||||
}
|
}
|
||||||
|
// 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 __cplusplus < 201103L
|
||||||
|
#define alignof __alignof__
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef std::aligned_storage<16>::type T1;
|
typedef std::aligned_storage<16>::type T1;
|
||||||
#if _LIBCPP_STD_VER > 11
|
#if _LIBCPP_STD_VER > 11
|
||||||
static_assert(std::is_same<std::aligned_storage_t<16>, T1>::value, "" );
|
static_assert(std::is_same<std::aligned_storage_t<16>, T1>::value, "" );
|
||||||
#endif
|
#endif
|
||||||
static_assert(std::alignment_of<T1>::value == 16, "");
|
static_assert(std::alignment_of<T1>::value == alignof(std::max_align_t),
|
||||||
|
"");
|
||||||
static_assert(sizeof(T1) == 16, "");
|
static_assert(sizeof(T1) == 16, "");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@@ -172,8 +179,9 @@ int main()
|
|||||||
#if _LIBCPP_STD_VER > 11
|
#if _LIBCPP_STD_VER > 11
|
||||||
static_assert(std::is_same<std::aligned_storage_t<17>, T1>::value, "" );
|
static_assert(std::is_same<std::aligned_storage_t<17>, T1>::value, "" );
|
||||||
#endif
|
#endif
|
||||||
static_assert(std::alignment_of<T1>::value == 16, "");
|
static_assert(std::alignment_of<T1>::value == alignof(std::max_align_t),
|
||||||
static_assert(sizeof(T1) == 32, "");
|
"");
|
||||||
|
static_assert(sizeof(T1) == 16 + alignof(std::max_align_t), "");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
typedef std::aligned_storage<10>::type T1;
|
typedef std::aligned_storage<10>::type T1;
|
||||||
|
|||||||
Reference in New Issue
Block a user