@@ -832,8 +832,9 @@ TEST(APFloatTest, IsSmallestNormalized) {
832
832
EXPECT_FALSE(APFloat::getZero(Semantics, false).isSmallestNormalized());
833
833
EXPECT_FALSE(APFloat::getZero(Semantics, true).isSmallestNormalized());
834
834
835
- if (APFloat::semanticsHasNanOrInf (Semantics)) {
835
+ if (APFloat::semanticsHasNaN (Semantics)) {
836
836
// Types that do not support Inf will return NaN when asked for Inf.
837
+ // (But only if they support NaN.)
837
838
EXPECT_FALSE(APFloat::getInf(Semantics, false).isSmallestNormalized());
838
839
EXPECT_FALSE(APFloat::getInf(Semantics, true).isSmallestNormalized());
839
840
@@ -2557,6 +2558,14 @@ TEST(APFloatTest, isInfinity) {
2557
2558
EXPECT_FALSE(APFloat::getNaN(APFloat::IEEEsingle(), false).isInfinity());
2558
2559
EXPECT_FALSE(APFloat::getSNaN(APFloat::IEEEsingle(), false).isInfinity());
2559
2560
EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), "0x1p-149").isInfinity());
2561
+
2562
+ for (unsigned I = 0; I != APFloat::S_MaxSemantics + 1; ++I) {
2563
+ const fltSemantics &Semantics =
2564
+ APFloat::EnumToSemantics(static_cast<APFloat::Semantics>(I));
2565
+ if (APFloat::semanticsHasInf(Semantics)) {
2566
+ EXPECT_TRUE(APFloat::getInf(Semantics).isInfinity());
2567
+ }
2568
+ }
2560
2569
}
2561
2570
2562
2571
TEST(APFloatTest, isNaN) {
@@ -2567,6 +2576,14 @@ TEST(APFloatTest, isNaN) {
2567
2576
EXPECT_TRUE(APFloat::getNaN(APFloat::IEEEsingle(), false).isNaN());
2568
2577
EXPECT_TRUE(APFloat::getSNaN(APFloat::IEEEsingle(), false).isNaN());
2569
2578
EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), "0x1p-149").isNaN());
2579
+
2580
+ for (unsigned I = 0; I != APFloat::S_MaxSemantics + 1; ++I) {
2581
+ const fltSemantics &Semantics =
2582
+ APFloat::EnumToSemantics(static_cast<APFloat::Semantics>(I));
2583
+ if (APFloat::semanticsHasNaN(Semantics)) {
2584
+ EXPECT_TRUE(APFloat::getNaN(Semantics).isNaN());
2585
+ }
2586
+ }
2570
2587
}
2571
2588
2572
2589
TEST(APFloatTest, isFiniteNonZero) {
@@ -7345,8 +7362,9 @@ TEST(APFloatTest, getExactLog2) {
7345
7362
EXPECT_EQ(INT_MIN, APFloat::getZero(Semantics, false).getExactLog2Abs());
7346
7363
EXPECT_EQ(INT_MIN, APFloat::getZero(Semantics, true).getExactLog2Abs());
7347
7364
7348
- if (APFloat::semanticsHasNanOrInf (Semantics)) {
7365
+ if (APFloat::semanticsHasNaN (Semantics)) {
7349
7366
// Types that do not support Inf will return NaN when asked for Inf.
7367
+ // (But only if they support NaN.)
7350
7368
EXPECT_EQ(INT_MIN, APFloat::getInf(Semantics).getExactLog2());
7351
7369
EXPECT_EQ(INT_MIN, APFloat::getInf(Semantics, true).getExactLog2());
7352
7370
EXPECT_EQ(INT_MIN, APFloat::getNaN(Semantics, false).getExactLog2());
0 commit comments