Update max_align_test.cpp

This commit is contained in:
Peter Dimov 2023-01-25 01:52:18 +02:00
parent 5632ee0367
commit ece7a9ad9c
2 changed files with 22 additions and 6 deletions

View File

@ -26,12 +26,16 @@ union max_align_t
int i; int i;
long l; long l;
#ifndef BOOST_NO_LONG_LONG #if !defined(BOOST_NO_LONG_LONG)
boost::long_long_type ll; boost::long_long_type ll;
#endif #endif
#ifdef BOOST_HAS_INT128 #if defined(BOOST_HAS_INT128)
boost::int128_type i128; boost::int128_type i128;
#endif #endif
float f; float f;
@ -39,7 +43,9 @@ union max_align_t
long double ld; long double ld;
#if defined(BOOST_HAS_FLOAT128) || defined(__SIZEOF_FLOAT128__) #if defined(BOOST_HAS_FLOAT128) || defined(__SIZEOF_FLOAT128__)
__float128 f128; __float128 f128;
#endif #endif
void* p; void* p;

View File

@ -8,6 +8,10 @@
#include <boost/config.hpp> #include <boost/config.hpp>
#include <cstddef> #include <cstddef>
#if defined(BOOST_LIBSTDCXX_VERSION) && BOOST_LIBSTDCXX_VERSION < 40900
# define BOOST_NO_STD_MAX_ALIGN_T
#endif
struct X struct X
{ {
}; };
@ -21,20 +25,26 @@ int main()
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<int>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<int>::value );
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<long>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<long>::value );
#ifndef BOOST_NO_LONG_LONG #if !defined(BOOST_NO_LONG_LONG)
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<boost::long_long_type>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<boost::long_long_type>::value );
#endif #endif
#ifdef BOOST_HAS_INT128 #if defined(BOOST_HAS_INT128)
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<boost::int128_type>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<boost::int128_type>::value );
#endif #endif
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<float>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<float>::value );
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<double>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<double>::value );
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<long double>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<long double>::value );
#ifdef BOOST_HAS_FLOAT128 #if defined(BOOST_HAS_FLOAT128) || defined(__SIZEOF_FLOAT128__)
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<__float128>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<__float128>::value );
#endif #endif
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<void*>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<void*>::value );
@ -43,7 +53,7 @@ int main()
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<int X::*>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<int X::*>::value );
BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<void (X::*)()>::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<void (X::*)()>::value );
#if !defined(BOOST_NO_CXX11_ALIGNOF) #if !defined(BOOST_NO_CXX11_ALIGNOF) && !defined(BOOST_NO_STD_MAX_ALIGN_T)
BOOST_TEST_EQ( boost::core::max_align, alignof( std::max_align_t ) ); BOOST_TEST_EQ( boost::core::max_align, alignof( std::max_align_t ) );