From 3edd3aa9826cc794b7c4457d81c186a8a9e34dd5 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Wed, 25 Jan 2023 19:38:20 +0200 Subject: [PATCH] Define and use BOOST_CORE_HAS_FLOAT128 --- include/boost/core/max_align.hpp | 20 +++++++++++++++++++- test/max_align_test.cpp | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/include/boost/core/max_align.hpp b/include/boost/core/max_align.hpp index 35d61d5..12c2692 100644 --- a/include/boost/core/max_align.hpp +++ b/include/boost/core/max_align.hpp @@ -14,6 +14,24 @@ #include #include +// BOOST_CORE_HAS_FLOAT128 + +#if defined(BOOST_HAS_FLOAT128) + +# define BOOST_CORE_HAS_FLOAT128 + +#elif defined(__SIZEOF_FLOAT128__) + +# define BOOST_CORE_HAS_FLOAT128 + +#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 404) && defined(__i386__) + +# define BOOST_CORE_HAS_FLOAT128 + +#endif + +// max_align_t, max_align + namespace boost { namespace core @@ -42,7 +60,7 @@ union max_align_t double d; long double ld; -#if defined(BOOST_HAS_FLOAT128) || defined(__SIZEOF_FLOAT128__) +#if defined(BOOST_CORE_HAS_FLOAT128) __float128 f128; diff --git a/test/max_align_test.cpp b/test/max_align_test.cpp index 113e27e..4b4a97d 100644 --- a/test/max_align_test.cpp +++ b/test/max_align_test.cpp @@ -41,7 +41,7 @@ int main() BOOST_TEST_GE( boost::core::max_align, boost::alignment_of::value ); BOOST_TEST_GE( boost::core::max_align, boost::alignment_of::value ); -#if defined(BOOST_HAS_FLOAT128) || defined(__SIZEOF_FLOAT128__) +#if defined(BOOST_CORE_HAS_FLOAT128) BOOST_TEST_GE( boost::core::max_align, boost::alignment_of<__float128>::value );