Skip to content

Commit d8d6eaf

Browse files
more fixes
1 parent c87af65 commit d8d6eaf

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

libc/src/__support/FPUtil/except_value_utils.h

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,21 @@ template <typename T, size_t N> struct ExceptValues {
8181
StorageType out_bits = values[i].rnd_towardzero_result;
8282
switch (fputil::quick_get_round()) {
8383
case FE_UPWARD:
84-
out_bits += sign ? values[i].rnd_downward_offset
85-
: values[i].rnd_upward_offset;
84+
out_bits += sign ? static_cast<decltype(out_bits)>(
85+
values[i].rnd_downward_offset)
86+
: static_cast<decltype(out_bits)>(
87+
values[i].rnd_upward_offset);
8688
break;
8789
case FE_DOWNWARD:
88-
out_bits += sign ? values[i].rnd_upward_offset
89-
: values[i].rnd_downward_offset;
90+
out_bits +=
91+
sign
92+
? static_cast<decltype(out_bits)>(values[i].rnd_upward_offset)
93+
: static_cast<decltype(out_bits)>(
94+
values[i].rnd_downward_offset);
9095
break;
9196
case FE_TONEAREST:
92-
out_bits += values[i].rnd_tonearest_offset;
97+
out_bits +=
98+
static_cast<decltype(out_bits)>(values[i].rnd_tonearest_offset);
9399
break;
94100
}
95101
T result = FPBits<T>(out_bits).get_val();

0 commit comments

Comments
 (0)