Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11756: boost.Test: non standards compliant use of FE_* macros (unable to compile boost test library on FPU-less arches)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-08-30 12:23:38
#11756: boost.Test: non standards compliant use of FE_* macros (unable to compile
boost test library on FPU-less arches)
----------------------------------+---------------------
Reporter: bartosz.krasinski@⦠| Owner: rogeeff
Type: Patches | Status: new
Milestone: To Be Determined | Component: test
Version: Boost 1.59.0 | Severity: Problem
Resolution: | Keywords:
----------------------------------+---------------------
Comment (by johnmaddock):
That doesn't quite get it: if fenv.h is available, but FE_DIVBYZERO is
unset then BOOST_FPE_DIVBYZERO is also left unset (for example), where as
it should be set to a stub value I guess (1 or 0).... except a quick grep
of the source suggests these are unused anyway? Which just leaves
BOOST_FPE_ALL which definitely needs to be in #if...#else block, so I
suggest something more like:
{{{
#ifdef FE_DIVBYZERO
BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
#else
BOOST_FPE_DIVBYZERO = 0,
#endif
#ifdef FE_INEXACT
BOOST_FPE_INEXACT = FE_INEXACT,
#else
BOOST_FPE_INEXACT = 0,
#endif
#ifdef FE_INVALID
BOOST_FPE_INVALID = FE_INVALID,
#else
BOOST_FPE_INVALID = 0,
#endif
#ifdef FE_OVERFLOW
BOOST_FPE_OVERFLOW = FE_OVERFLOW,
#else
BOOST_FPE_OVERFLOW = 0,
#endif
#ifdef FE_UNDERFLOW
BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
#else
BOOST_FPE_UNDERFLOW = 0,
#endif
#ifdef FE_ALL_EXCEPT
BOOST_FPE_ALL = FE_ALL_EXCEPT,
#else
BOOST_FPE_ALL = 1,
#endif
}}}
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/11756#comment:14> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:20 UTC