Skip to content

Commit 88f0dc4

Browse files
authored
[libc] Fix warnings emitted by GCC (#98751)
Fixes #98709.
1 parent 94efdff commit 88f0dc4

20 files changed

+241
-212
lines changed

libc/test/src/__support/CPP/type_traits_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ TEST(LlvmLibcTypeTraitsTest, aligned_storage) {
119119
int a, b;
120120
};
121121
aligned_storage_t<sizeof(S), alignof(S)> buf;
122-
EXPECT_EQ(alignof(buf), alignof(S));
122+
EXPECT_EQ(alignof(decltype(buf)), alignof(S));
123123
EXPECT_EQ(sizeof(buf), sizeof(S));
124124
}
125125

libc/test/src/__support/FPUtil/fpbits_test.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ template <typename T> constexpr auto make(Sign sign, FP fp) {
238238
case FP::QUIET_NAN:
239239
return T::quiet_nan(sign);
240240
}
241+
__builtin_unreachable();
241242
}
242243

243244
// Tests all properties for all types of float.

libc/test/src/__support/big_int_test.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ template <typename T> auto create(Value value) {
3232
case MAX:
3333
return T::max();
3434
}
35+
__builtin_unreachable();
3536
}
3637

3738
using Types = testing::TypeList< //
@@ -264,7 +265,11 @@ TEST(LlvmLibcUIntClassTest, BitCastToFromNativeFloat128) {
264265
TEST(LlvmLibcUIntClassTest, BitCastToFromNativeFloat16) {
265266
static_assert(cpp::is_trivially_copyable<LL_UInt16>::value);
266267
static_assert(sizeof(LL_UInt16) == sizeof(float16));
267-
const float16 array[] = {0, 0.1, 1};
268+
const float16 array[] = {
269+
static_cast<float16>(0.0),
270+
static_cast<float16>(0.1),
271+
static_cast<float16>(1.0),
272+
};
268273
for (float16 value : array) {
269274
LL_UInt16 back = cpp::bit_cast<LL_UInt16>(value);
270275
float16 forth = cpp::bit_cast<float16>(back);

libc/test/src/math/RoundToIntegerTest.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,9 @@ class RoundToIntegerTestTemplate
167167
}
168168

169169
void do_fractions_test(RoundToIntegerFunc func, int mode) {
170-
constexpr F FRACTIONS[] = {0.5, -0.5, 0.115, -0.115, 0.715, -0.715};
170+
constexpr F FRACTIONS[] = {
171+
F(0.5), F(-0.5), F(0.115), F(-0.115), F(0.715), F(-0.715),
172+
};
171173
for (F x : FRACTIONS) {
172174
long mpfr_long_result;
173175
bool erangeflag;

libc/test/src/math/smoke/FMaxTest.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,34 +25,34 @@ class FMaxTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
2525
void testNaN(FMaxFunc func) {
2626
EXPECT_FP_EQ(inf, func(aNaN, inf));
2727
EXPECT_FP_EQ(neg_inf, func(neg_inf, aNaN));
28-
EXPECT_FP_EQ(0.0, func(aNaN, 0.0));
29-
EXPECT_FP_EQ(-0.0, func(-0.0, aNaN));
28+
EXPECT_FP_EQ(zero, func(aNaN, zero));
29+
EXPECT_FP_EQ(neg_zero, func(neg_zero, aNaN));
3030
EXPECT_FP_EQ(T(-1.2345), func(aNaN, T(-1.2345)));
3131
EXPECT_FP_EQ(T(1.2345), func(T(1.2345), aNaN));
3232
EXPECT_FP_EQ(aNaN, func(aNaN, aNaN));
3333
}
3434

3535
void testInfArg(FMaxFunc func) {
3636
EXPECT_FP_EQ(inf, func(neg_inf, inf));
37-
EXPECT_FP_EQ(inf, func(inf, 0.0));
38-
EXPECT_FP_EQ(inf, func(-0.0, inf));
37+
EXPECT_FP_EQ(inf, func(inf, zero));
38+
EXPECT_FP_EQ(inf, func(neg_zero, inf));
3939
EXPECT_FP_EQ(inf, func(inf, T(1.2345)));
4040
EXPECT_FP_EQ(inf, func(T(-1.2345), inf));
4141
}
4242

4343
void testNegInfArg(FMaxFunc func) {
4444
EXPECT_FP_EQ(inf, func(inf, neg_inf));
45-
EXPECT_FP_EQ(0.0, func(neg_inf, 0.0));
46-
EXPECT_FP_EQ(-0.0, func(-0.0, neg_inf));
45+
EXPECT_FP_EQ(zero, func(neg_inf, zero));
46+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_inf));
4747
EXPECT_FP_EQ(T(-1.2345), func(neg_inf, T(-1.2345)));
4848
EXPECT_FP_EQ(T(1.2345), func(T(1.2345), neg_inf));
4949
}
5050

5151
void testBothZero(FMaxFunc func) {
52-
EXPECT_FP_EQ(0.0, func(0.0, 0.0));
53-
EXPECT_FP_EQ(0.0, func(-0.0, 0.0));
54-
EXPECT_FP_EQ(0.0, func(0.0, -0.0));
55-
EXPECT_FP_EQ(-0.0, func(-0.0, -0.0));
52+
EXPECT_FP_EQ(zero, func(zero, zero));
53+
EXPECT_FP_EQ(zero, func(neg_zero, zero));
54+
EXPECT_FP_EQ(zero, func(zero, neg_zero));
55+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_zero));
5656
}
5757

5858
void testRange(FMaxFunc func) {

libc/test/src/math/smoke/FMaximumMagNumTest.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ class FMaximumMagNumTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
3030
EXPECT_FP_EQ(neg_inf, func(neg_inf, aNaN));
3131
EXPECT_FP_EQ_WITH_EXCEPTION(neg_inf, func(neg_inf, sNaN), FE_INVALID);
3232
EXPECT_EQ(FPBits(aNaN).uintval(), FPBits(func(aNaN, aNaN)).uintval());
33-
EXPECT_FP_EQ(0.0, func(aNaN, 0.0));
34-
EXPECT_FP_EQ(-0.0, func(-0.0, aNaN));
35-
EXPECT_FP_EQ_WITH_EXCEPTION(0.0, func(sNaN, 0.0), FE_INVALID);
36-
EXPECT_FP_EQ_WITH_EXCEPTION(-0.0, func(-0.0, sNaN), FE_INVALID);
33+
EXPECT_FP_EQ(zero, func(aNaN, zero));
34+
EXPECT_FP_EQ(neg_zero, func(neg_zero, aNaN));
35+
EXPECT_FP_EQ_WITH_EXCEPTION(zero, func(sNaN, zero), FE_INVALID);
36+
EXPECT_FP_EQ_WITH_EXCEPTION(neg_zero, func(neg_zero, sNaN), FE_INVALID);
3737
EXPECT_FP_EQ(T(-1.2345), func(aNaN, T(-1.2345)));
3838
EXPECT_FP_EQ(T(1.2345), func(T(1.2345), aNaN));
3939
EXPECT_FP_EQ_WITH_EXCEPTION(T(-1.2345), func(sNaN, T(-1.2345)), FE_INVALID);
@@ -47,25 +47,25 @@ class FMaximumMagNumTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
4747

4848
void testInfArg(FMaximumMagNumFunc func) {
4949
EXPECT_FP_EQ(inf, func(neg_inf, inf));
50-
EXPECT_FP_EQ(inf, func(inf, 0.0));
51-
EXPECT_FP_EQ(inf, func(-0.0, inf));
50+
EXPECT_FP_EQ(inf, func(inf, zero));
51+
EXPECT_FP_EQ(inf, func(neg_zero, inf));
5252
EXPECT_FP_EQ(inf, func(inf, T(1.2345)));
5353
EXPECT_FP_EQ(inf, func(T(-1.2345), inf));
5454
}
5555

5656
void testNegInfArg(FMaximumMagNumFunc func) {
5757
EXPECT_FP_EQ(inf, func(inf, neg_inf));
58-
EXPECT_FP_EQ(neg_inf, func(neg_inf, 0.0));
59-
EXPECT_FP_EQ(neg_inf, func(-0.0, neg_inf));
58+
EXPECT_FP_EQ(neg_inf, func(neg_inf, zero));
59+
EXPECT_FP_EQ(neg_inf, func(neg_zero, neg_inf));
6060
EXPECT_FP_EQ(neg_inf, func(neg_inf, T(-1.2345)));
6161
EXPECT_FP_EQ(neg_inf, func(T(1.2345), neg_inf));
6262
}
6363

6464
void testBothZero(FMaximumMagNumFunc func) {
65-
EXPECT_FP_EQ(0.0, func(0.0, 0.0));
66-
EXPECT_FP_EQ(0.0, func(-0.0, 0.0));
67-
EXPECT_FP_EQ(0.0, func(0.0, -0.0));
68-
EXPECT_FP_EQ(-0.0, func(-0.0, -0.0));
65+
EXPECT_FP_EQ(zero, func(zero, zero));
66+
EXPECT_FP_EQ(zero, func(neg_zero, zero));
67+
EXPECT_FP_EQ(zero, func(zero, neg_zero));
68+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_zero));
6969
}
7070

7171
void testRange(FMaximumMagNumFunc func) {

libc/test/src/math/smoke/FMaximumMagTest.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,34 +26,34 @@ class FMaximumMagTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
2626
void testNaN(FMaximumMagFunc func) {
2727
EXPECT_FP_EQ(aNaN, func(aNaN, inf));
2828
EXPECT_FP_EQ(aNaN, func(neg_inf, aNaN));
29-
EXPECT_FP_EQ(aNaN, func(aNaN, 0.0));
30-
EXPECT_FP_EQ(aNaN, func(-0.0, aNaN));
29+
EXPECT_FP_EQ(aNaN, func(aNaN, zero));
30+
EXPECT_FP_EQ(aNaN, func(neg_zero, aNaN));
3131
EXPECT_FP_EQ(aNaN, func(aNaN, T(-1.2345)));
3232
EXPECT_FP_EQ(aNaN, func(T(1.2345), aNaN));
3333
EXPECT_FP_EQ(aNaN, func(aNaN, aNaN));
3434
}
3535

3636
void testInfArg(FMaximumMagFunc func) {
3737
EXPECT_FP_EQ(inf, func(neg_inf, inf));
38-
EXPECT_FP_EQ(inf, func(inf, 0.0));
39-
EXPECT_FP_EQ(inf, func(-0.0, inf));
38+
EXPECT_FP_EQ(inf, func(inf, zero));
39+
EXPECT_FP_EQ(inf, func(neg_zero, inf));
4040
EXPECT_FP_EQ(inf, func(inf, T(1.2345)));
4141
EXPECT_FP_EQ(inf, func(T(-1.2345), inf));
4242
}
4343

4444
void testNegInfArg(FMaximumMagFunc func) {
4545
EXPECT_FP_EQ(inf, func(inf, neg_inf));
46-
EXPECT_FP_EQ(neg_inf, func(neg_inf, 0.0));
47-
EXPECT_FP_EQ(neg_inf, func(-0.0, neg_inf));
46+
EXPECT_FP_EQ(neg_inf, func(neg_inf, zero));
47+
EXPECT_FP_EQ(neg_inf, func(neg_zero, neg_inf));
4848
EXPECT_FP_EQ(neg_inf, func(neg_inf, T(-1.2345)));
4949
EXPECT_FP_EQ(neg_inf, func(T(1.2345), neg_inf));
5050
}
5151

5252
void testBothZero(FMaximumMagFunc func) {
53-
EXPECT_FP_EQ(0.0, func(0.0, 0.0));
54-
EXPECT_FP_EQ(0.0, func(-0.0, 0.0));
55-
EXPECT_FP_EQ(0.0, func(0.0, -0.0));
56-
EXPECT_FP_EQ(-0.0, func(-0.0, -0.0));
53+
EXPECT_FP_EQ(zero, func(zero, zero));
54+
EXPECT_FP_EQ(zero, func(neg_zero, zero));
55+
EXPECT_FP_EQ(zero, func(zero, neg_zero));
56+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_zero));
5757
}
5858

5959
void testRange(FMaximumMagFunc func) {

libc/test/src/math/smoke/FMaximumNumTest.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ class FMaximumNumTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
2929
EXPECT_FP_EQ(neg_inf, func(neg_inf, aNaN));
3030
EXPECT_FP_EQ_WITH_EXCEPTION(neg_inf, func(neg_inf, sNaN), FE_INVALID);
3131
EXPECT_EQ(FPBits(aNaN).uintval(), FPBits(func(aNaN, aNaN)).uintval());
32-
EXPECT_FP_EQ(0.0, func(aNaN, 0.0));
33-
EXPECT_FP_EQ(-0.0, func(-0.0, aNaN));
34-
EXPECT_FP_EQ_WITH_EXCEPTION(0.0, func(sNaN, 0.0), FE_INVALID);
35-
EXPECT_FP_EQ_WITH_EXCEPTION(-0.0, func(-0.0, sNaN), FE_INVALID);
32+
EXPECT_FP_EQ(zero, func(aNaN, zero));
33+
EXPECT_FP_EQ(neg_zero, func(neg_zero, aNaN));
34+
EXPECT_FP_EQ_WITH_EXCEPTION(zero, func(sNaN, zero), FE_INVALID);
35+
EXPECT_FP_EQ_WITH_EXCEPTION(neg_zero, func(neg_zero, sNaN), FE_INVALID);
3636
EXPECT_FP_EQ(T(-1.2345), func(aNaN, T(-1.2345)));
3737
EXPECT_FP_EQ(T(1.2345), func(T(1.2345), aNaN));
3838
EXPECT_FP_EQ_WITH_EXCEPTION(T(-1.2345), func(sNaN, T(-1.2345)), FE_INVALID);
@@ -46,25 +46,25 @@ class FMaximumNumTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
4646

4747
void testInfArg(FMaximumNumFunc func) {
4848
EXPECT_FP_EQ(inf, func(neg_inf, inf));
49-
EXPECT_FP_EQ(inf, func(inf, 0.0));
50-
EXPECT_FP_EQ(inf, func(-0.0, inf));
49+
EXPECT_FP_EQ(inf, func(inf, zero));
50+
EXPECT_FP_EQ(inf, func(neg_zero, inf));
5151
EXPECT_FP_EQ(inf, func(inf, T(1.2345)));
5252
EXPECT_FP_EQ(inf, func(T(-1.2345), inf));
5353
}
5454

5555
void testNegInfArg(FMaximumNumFunc func) {
5656
EXPECT_FP_EQ(inf, func(inf, neg_inf));
57-
EXPECT_FP_EQ(0.0, func(neg_inf, 0.0));
58-
EXPECT_FP_EQ(-0.0, func(-0.0, neg_inf));
57+
EXPECT_FP_EQ(zero, func(neg_inf, zero));
58+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_inf));
5959
EXPECT_FP_EQ(T(-1.2345), func(neg_inf, T(-1.2345)));
6060
EXPECT_FP_EQ(T(1.2345), func(T(1.2345), neg_inf));
6161
}
6262

6363
void testBothZero(FMaximumNumFunc func) {
64-
EXPECT_FP_EQ(0.0, func(0.0, 0.0));
65-
EXPECT_FP_EQ(0.0, func(-0.0, 0.0));
66-
EXPECT_FP_EQ(0.0, func(0.0, -0.0));
67-
EXPECT_FP_EQ(-0.0, func(-0.0, -0.0));
64+
EXPECT_FP_EQ(zero, func(zero, zero));
65+
EXPECT_FP_EQ(zero, func(neg_zero, zero));
66+
EXPECT_FP_EQ(zero, func(zero, neg_zero));
67+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_zero));
6868
}
6969

7070
void testRange(FMaximumNumFunc func) {

libc/test/src/math/smoke/FMaximumTest.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,34 +25,34 @@ class FMaximumTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
2525
void testNaN(FMaximumFunc func) {
2626
EXPECT_FP_EQ(aNaN, func(aNaN, inf));
2727
EXPECT_FP_EQ(aNaN, func(neg_inf, aNaN));
28-
EXPECT_FP_EQ(aNaN, func(aNaN, 0.0));
29-
EXPECT_FP_EQ(aNaN, func(-0.0, aNaN));
28+
EXPECT_FP_EQ(aNaN, func(aNaN, zero));
29+
EXPECT_FP_EQ(aNaN, func(neg_zero, aNaN));
3030
EXPECT_FP_EQ(aNaN, func(aNaN, T(-1.2345)));
3131
EXPECT_FP_EQ(aNaN, func(T(1.2345), aNaN));
3232
EXPECT_FP_EQ(aNaN, func(aNaN, aNaN));
3333
}
3434

3535
void testInfArg(FMaximumFunc func) {
3636
EXPECT_FP_EQ(inf, func(neg_inf, inf));
37-
EXPECT_FP_EQ(inf, func(inf, 0.0));
38-
EXPECT_FP_EQ(inf, func(-0.0, inf));
37+
EXPECT_FP_EQ(inf, func(inf, zero));
38+
EXPECT_FP_EQ(inf, func(neg_zero, inf));
3939
EXPECT_FP_EQ(inf, func(inf, T(1.2345)));
4040
EXPECT_FP_EQ(inf, func(T(-1.2345), inf));
4141
}
4242

4343
void testNegInfArg(FMaximumFunc func) {
4444
EXPECT_FP_EQ(inf, func(inf, neg_inf));
45-
EXPECT_FP_EQ(0.0, func(neg_inf, 0.0));
46-
EXPECT_FP_EQ(-0.0, func(-0.0, neg_inf));
45+
EXPECT_FP_EQ(zero, func(neg_inf, zero));
46+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_inf));
4747
EXPECT_FP_EQ(T(-1.2345), func(neg_inf, T(-1.2345)));
4848
EXPECT_FP_EQ(T(1.2345), func(T(1.2345), neg_inf));
4949
}
5050

5151
void testBothZero(FMaximumFunc func) {
52-
EXPECT_FP_EQ(0.0, func(0.0, 0.0));
53-
EXPECT_FP_EQ(0.0, func(-0.0, 0.0));
54-
EXPECT_FP_EQ(0.0, func(0.0, -0.0));
55-
EXPECT_FP_EQ(-0.0, func(-0.0, -0.0));
52+
EXPECT_FP_EQ(zero, func(zero, zero));
53+
EXPECT_FP_EQ(zero, func(neg_zero, zero));
54+
EXPECT_FP_EQ(zero, func(zero, neg_zero));
55+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_zero));
5656
}
5757

5858
void testRange(FMaximumFunc func) {

libc/test/src/math/smoke/FMinTest.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,34 +25,34 @@ class FMinTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
2525
void testNaN(FMinFunc func) {
2626
EXPECT_FP_EQ(inf, func(aNaN, inf));
2727
EXPECT_FP_EQ(neg_inf, func(neg_inf, aNaN));
28-
EXPECT_FP_EQ(0.0, func(aNaN, 0.0));
29-
EXPECT_FP_EQ(-0.0, func(-0.0, aNaN));
28+
EXPECT_FP_EQ(zero, func(aNaN, zero));
29+
EXPECT_FP_EQ(neg_zero, func(neg_zero, aNaN));
3030
EXPECT_FP_EQ(T(-1.2345), func(aNaN, T(-1.2345)));
3131
EXPECT_FP_EQ(T(1.2345), func(T(1.2345), aNaN));
3232
EXPECT_FP_EQ(aNaN, func(aNaN, aNaN));
3333
}
3434

3535
void testInfArg(FMinFunc func) {
3636
EXPECT_FP_EQ(neg_inf, func(neg_inf, inf));
37-
EXPECT_FP_EQ(0.0, func(inf, 0.0));
38-
EXPECT_FP_EQ(-0.0, func(-0.0, inf));
37+
EXPECT_FP_EQ(zero, func(inf, zero));
38+
EXPECT_FP_EQ(neg_zero, func(neg_zero, inf));
3939
EXPECT_FP_EQ(T(1.2345), func(inf, T(1.2345)));
4040
EXPECT_FP_EQ(T(-1.2345), func(T(-1.2345), inf));
4141
}
4242

4343
void testNegInfArg(FMinFunc func) {
4444
EXPECT_FP_EQ(neg_inf, func(inf, neg_inf));
45-
EXPECT_FP_EQ(neg_inf, func(neg_inf, 0.0));
46-
EXPECT_FP_EQ(neg_inf, func(-0.0, neg_inf));
45+
EXPECT_FP_EQ(neg_inf, func(neg_inf, zero));
46+
EXPECT_FP_EQ(neg_inf, func(neg_zero, neg_inf));
4747
EXPECT_FP_EQ(neg_inf, func(neg_inf, T(-1.2345)));
4848
EXPECT_FP_EQ(neg_inf, func(T(1.2345), neg_inf));
4949
}
5050

5151
void testBothZero(FMinFunc func) {
52-
EXPECT_FP_EQ(0.0, func(0.0, 0.0));
53-
EXPECT_FP_EQ(-0.0, func(-0.0, 0.0));
54-
EXPECT_FP_EQ(-0.0, func(0.0, -0.0));
55-
EXPECT_FP_EQ(-0.0, func(-0.0, -0.0));
52+
EXPECT_FP_EQ(zero, func(zero, zero));
53+
EXPECT_FP_EQ(neg_zero, func(neg_zero, zero));
54+
EXPECT_FP_EQ(neg_zero, func(zero, neg_zero));
55+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_zero));
5656
}
5757

5858
void testRange(FMinFunc func) {

libc/test/src/math/smoke/FMinimumMagNumTest.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ class FMinimumMagNumTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
3030
EXPECT_FP_EQ(neg_inf, func(neg_inf, aNaN));
3131
EXPECT_FP_EQ_WITH_EXCEPTION(neg_inf, func(neg_inf, sNaN), FE_INVALID);
3232
EXPECT_EQ(FPBits(aNaN).uintval(), FPBits(func(aNaN, aNaN)).uintval());
33-
EXPECT_FP_EQ(0.0, func(aNaN, 0.0));
34-
EXPECT_FP_EQ(-0.0, func(-0.0, aNaN));
35-
EXPECT_FP_EQ_WITH_EXCEPTION(0.0, func(sNaN, 0.0), FE_INVALID);
36-
EXPECT_FP_EQ_WITH_EXCEPTION(-0.0, func(-0.0, sNaN), FE_INVALID);
33+
EXPECT_FP_EQ(zero, func(aNaN, zero));
34+
EXPECT_FP_EQ(neg_zero, func(neg_zero, aNaN));
35+
EXPECT_FP_EQ_WITH_EXCEPTION(zero, func(sNaN, zero), FE_INVALID);
36+
EXPECT_FP_EQ_WITH_EXCEPTION(neg_zero, func(neg_zero, sNaN), FE_INVALID);
3737
EXPECT_FP_EQ(T(-1.2345), func(aNaN, T(-1.2345)));
3838
EXPECT_FP_EQ(T(1.2345), func(T(1.2345), aNaN));
3939
EXPECT_FP_EQ_WITH_EXCEPTION(T(-1.2345), func(sNaN, T(-1.2345)), FE_INVALID);
@@ -47,25 +47,25 @@ class FMinimumMagNumTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
4747

4848
void testInfArg(FMinimumMagNumFunc func) {
4949
EXPECT_FP_EQ(neg_inf, func(neg_inf, inf));
50-
EXPECT_FP_EQ(0.0, func(inf, 0.0));
51-
EXPECT_FP_EQ(-0.0, func(-0.0, inf));
50+
EXPECT_FP_EQ(zero, func(inf, zero));
51+
EXPECT_FP_EQ(neg_zero, func(neg_zero, inf));
5252
EXPECT_FP_EQ(T(1.2345), func(inf, T(1.2345)));
5353
EXPECT_FP_EQ(T(-1.2345), func(T(-1.2345), inf));
5454
}
5555

5656
void testNegInfArg(FMinimumMagNumFunc func) {
5757
EXPECT_FP_EQ(neg_inf, func(inf, neg_inf));
58-
EXPECT_FP_EQ(0.0, func(neg_inf, 0.0));
59-
EXPECT_FP_EQ(-0.0, func(-0.0, neg_inf));
58+
EXPECT_FP_EQ(zero, func(neg_inf, zero));
59+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_inf));
6060
EXPECT_FP_EQ(T(-1.2345), func(neg_inf, T(-1.2345)));
6161
EXPECT_FP_EQ(T(1.2345), func(T(1.2345), neg_inf));
6262
}
6363

6464
void testBothZero(FMinimumMagNumFunc func) {
65-
EXPECT_FP_EQ(0.0, func(0.0, 0.0));
66-
EXPECT_FP_EQ(-0.0, func(-0.0, 0.0));
67-
EXPECT_FP_EQ(-0.0, func(0.0, -0.0));
68-
EXPECT_FP_EQ(-0.0, func(-0.0, -0.0));
65+
EXPECT_FP_EQ(zero, func(zero, zero));
66+
EXPECT_FP_EQ(neg_zero, func(neg_zero, zero));
67+
EXPECT_FP_EQ(neg_zero, func(zero, neg_zero));
68+
EXPECT_FP_EQ(neg_zero, func(neg_zero, neg_zero));
6969
}
7070

7171
void testRange(FMinimumMagNumFunc func) {

0 commit comments

Comments
 (0)