Skip to content

Commit 876d4ef

Browse files
authored
testmathlib.cpp: fixed literal overflow warnings (#7739)
example: ``` test/testmathlib.cpp:393:43: error: integer constant is so large that it is unsigned [-Werror] 393 | constexpr MathLib::bigint i = 18446744073709551615; | ^~~~~~~~~~~~~~~~~~~~ ```
1 parent 24dfe7b commit 876d4ef

File tree

1 file changed

+8
-17
lines changed

1 file changed

+8
-17
lines changed

test/testmathlib.cpp

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1717
*/
1818

19-
#include "config.h"
2019
#include "fixture.h"
2120
#include "mathlib.h"
2221
#include "standards.h"
@@ -386,23 +385,19 @@ class TestMathLib : public TestFixture {
386385
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigNumber("02000000000000000000000"), INTERNAL, "Internal Error. MathLib::toBigNumber: out_of_range: 02000000000000000000000");
387386
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigNumber("-02000000000000000000000"), INTERNAL, "Internal Error. MathLib::toBigNumber: out_of_range: -02000000000000000000000");
388387

389-
// min/max and out-of-bounds - decimal
390-
SUPPRESS_WARNING_CLANG_PUSH("-Wimplicitly-unsigned-literal")
391-
SUPPRESS_WARNING_GCC_PUSH("-Woverflow")
388+
// min/max and out-of-range - decimal
392389
{
393-
constexpr MathLib::bigint i = 18446744073709551615;
390+
constexpr MathLib::bigint i = 18446744073709551615ULL;
394391
ASSERT_EQUALS(i, MathLib::toBigNumber(std::to_string(i)));
395392
ASSERT_EQUALS(i, MathLib::toBigNumber("18446744073709551615"));
396393
}
397394
{
398-
constexpr MathLib::bigint i = -18446744073709551615;
395+
constexpr MathLib::bigint i = -18446744073709551615ULL;
399396
ASSERT_EQUALS(i, MathLib::toBigNumber(std::to_string(i)));
400397
ASSERT_EQUALS(i, MathLib::toBigNumber("-18446744073709551615"));
401398
}
402-
SUPPRESS_WARNING_GCC_POP
403-
SUPPRESS_WARNING_CLANG_POP
404399

405-
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigNumber("18446744073709551616"), INTERNAL, "Internal Error. MathLib::toBigNumber: out_of_range: 18446744073709551616");
400+
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigNumber("18446744073709551616"), INTERNAL, "Internal Error. MathLib::toBigNumber: out_of_range: 18446744073709551616");
406401
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigNumber("-18446744073709551616"), INTERNAL, "Internal Error. MathLib::toBigNumber: out_of_range: -18446744073709551616");
407402

408403
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigNumber("invalid"), INTERNAL, "Internal Error. MathLib::toBigNumber: invalid_argument: invalid");
@@ -562,23 +557,19 @@ class TestMathLib : public TestFixture {
562557
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigUNumber("02000000000000000000000"), INTERNAL, "Internal Error. MathLib::toBigUNumber: out_of_range: 02000000000000000000000");
563558
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigUNumber("-02000000000000000000000"), INTERNAL, "Internal Error. MathLib::toBigUNumber: out_of_range: -02000000000000000000000");
564559

565-
// min/max and out-of-bounds - decimal
566-
SUPPRESS_WARNING_CLANG_PUSH("-Wimplicitly-unsigned-literal")
567-
SUPPRESS_WARNING_GCC_PUSH("-Woverflow")
560+
// min/max and out-of-range - decimal
568561
{
569-
constexpr MathLib::biguint u = 18446744073709551615;
562+
constexpr MathLib::biguint u = 18446744073709551615ULL;
570563
ASSERT_EQUALS(u, MathLib::toBigUNumber(std::to_string(u)));
571564
ASSERT_EQUALS(u, MathLib::toBigUNumber("18446744073709551615"));
572565
}
573566
{
574-
constexpr MathLib::biguint u = -18446744073709551615;
567+
constexpr MathLib::biguint u = -18446744073709551615ULL;
575568
ASSERT_EQUALS(u, MathLib::toBigUNumber(std::to_string(u)));
576569
ASSERT_EQUALS(u, MathLib::toBigUNumber("-18446744073709551615"));
577570
}
578-
SUPPRESS_WARNING_GCC_POP
579-
SUPPRESS_WARNING_CLANG_POP
580571

581-
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigUNumber("18446744073709551616"), INTERNAL, "Internal Error. MathLib::toBigUNumber: out_of_range: 18446744073709551616");
572+
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigUNumber("18446744073709551616"), INTERNAL, "Internal Error. MathLib::toBigUNumber: out_of_range: 18446744073709551616");
582573
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigUNumber("-18446744073709551616"), INTERNAL, "Internal Error. MathLib::toBigUNumber: out_of_range: -18446744073709551616");
583574

584575
ASSERT_THROW_INTERNAL_EQUALS(MathLib::toBigUNumber("invalid"), INTERNAL, "Internal Error. MathLib::toBigUNumber: invalid_argument: invalid");

0 commit comments

Comments
 (0)