@@ -832,8 +832,9 @@ TEST(APFloatTest, IsSmallestNormalized) {
832832 EXPECT_FALSE (APFloat::getZero (Semantics, false ).isSmallestNormalized ());
833833 EXPECT_FALSE (APFloat::getZero (Semantics, true ).isSmallestNormalized ());
834834
835- if (APFloat::semanticsHasNanOrInf (Semantics)) {
835+ if (APFloat::semanticsHasNaN (Semantics)) {
836836 // Types that do not support Inf will return NaN when asked for Inf.
837+ // (But only if they support NaN.)
837838 EXPECT_FALSE (APFloat::getInf (Semantics, false ).isSmallestNormalized ());
838839 EXPECT_FALSE (APFloat::getInf (Semantics, true ).isSmallestNormalized ());
839840
@@ -2557,6 +2558,14 @@ TEST(APFloatTest, isInfinity) {
25572558 EXPECT_FALSE (APFloat::getNaN (APFloat::IEEEsingle (), false ).isInfinity ());
25582559 EXPECT_FALSE (APFloat::getSNaN (APFloat::IEEEsingle (), false ).isInfinity ());
25592560 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+ }
25602569}
25612570
25622571TEST (APFloatTest, isNaN) {
@@ -2567,6 +2576,14 @@ TEST(APFloatTest, isNaN) {
25672576 EXPECT_TRUE (APFloat::getNaN (APFloat::IEEEsingle (), false ).isNaN ());
25682577 EXPECT_TRUE (APFloat::getSNaN (APFloat::IEEEsingle (), false ).isNaN ());
25692578 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+ }
25702587}
25712588
25722589TEST (APFloatTest, isFiniteNonZero) {
@@ -7345,8 +7362,9 @@ TEST(APFloatTest, getExactLog2) {
73457362 EXPECT_EQ (INT_MIN, APFloat::getZero (Semantics, false ).getExactLog2Abs ());
73467363 EXPECT_EQ (INT_MIN, APFloat::getZero (Semantics, true ).getExactLog2Abs ());
73477364
7348- if (APFloat::semanticsHasNanOrInf (Semantics)) {
7365+ if (APFloat::semanticsHasNaN (Semantics)) {
73497366 // Types that do not support Inf will return NaN when asked for Inf.
7367+ // (But only if they support NaN.)
73507368 EXPECT_EQ (INT_MIN, APFloat::getInf (Semantics).getExactLog2 ());
73517369 EXPECT_EQ (INT_MIN, APFloat::getInf (Semantics, true ).getExactLog2 ());
73527370 EXPECT_EQ (INT_MIN, APFloat::getNaN (Semantics, false ).getExactLog2 ());
0 commit comments