forked from boostorg/config
avoid relational operations with NaNs, they may signal
[SVN r9784]
This commit is contained in:
@@ -96,13 +96,18 @@ void test_float_limits(const T &, const char * msg)
|
||||
BOOST_TEST(lim::min() < 0.001);
|
||||
BOOST_TEST(lim::min() > 0);
|
||||
|
||||
// NaNs shall always compare "false"
|
||||
// NaNs shall always compare "false" when compared for equality
|
||||
// If one of these fail, your compiler may be optimizing incorrectly
|
||||
BOOST_TEST(! (qnan < 42));
|
||||
BOOST_TEST(! (qnan > 42));
|
||||
BOOST_TEST(! (qnan <= 42));
|
||||
BOOST_TEST(! (qnan >= 42));
|
||||
BOOST_TEST(! (qnan == 42));
|
||||
BOOST_TEST(! (qnan == qnan));
|
||||
BOOST_TEST(qnan != 42);
|
||||
BOOST_TEST(qnan != qnan);
|
||||
|
||||
// The following tests may cause arithmetic traps etc. Avoid for now.
|
||||
// BOOST_TEST(! (qnan < 42));
|
||||
// BOOST_TEST(! (qnan > 42));
|
||||
// BOOST_TEST(! (qnan <= 42));
|
||||
// BOOST_TEST(! (qnan >= 42));
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user