From f43d6711bca415677ef88b9f3604288ffbd895cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=AC=EC=9A=B1?= Date: Wed, 4 Feb 2026 15:27:46 +0900 Subject: [PATCH 1/4] Add additional verification cases for double and float limits --- tests/basictest.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/basictest.cpp b/tests/basictest.cpp index 1a5537b..5f50ac5 100644 --- a/tests/basictest.cpp +++ b/tests/basictest.cpp @@ -1167,6 +1167,9 @@ TEST_CASE("double.general") { // DBL_TRUE_MIN / 2 + 0.0000000000000001e-324 verify("2.4703282292062328e-324", 0x0.0000000000001p-1022); + verify("0.2470328229206232720e-323", 0.0, std::errc::result_out_of_range); + verify("0.2470328229206232721e-323", 0x0.0000000000001p-1022); + verify("-2.2222222222223e-322", -0x1.68p-1069); verify("9007199254740993.0", 0x1p+53); verify("860228122.6654514319E+90", 0x1.92bb20990715fp+328); @@ -1262,8 +1265,14 @@ TEST_CASE("double.general") { verify("4.9406564584124654e-324", 0x0.0000000000001p-1022); verify("2.2250738585072009e-308", 0x0.fffffffffffffp-1022); verify("2.2250738585072014e-308", 0x1p-1022); + verify("0.2225073858507201136e-307", 0x0.fffffffffffffp-1022); + verify("0.2225073858507201137e-307", 0x1p-1022); verify("1.7976931348623157e308", 0x1.fffffffffffffp+1023); verify("1.7976931348623158e308", 0x1.fffffffffffffp+1023); + verify("1.7976931348623158079e308", std::numeric_limits::max()); + verify("1.7976931348623158080e308", + std::numeric_limits::infinity(), + std::errc::result_out_of_range); verify("4503599627370496.5", 4503599627370496.5); verify("4503599627475352.5", 4503599627475352.5); verify("4503599627475353.5", 4503599627475353.5); @@ -1543,6 +1552,8 @@ TEST_CASE("float.general") { verify("0.7006492e-45", 0.f, std::errc::result_out_of_range); // FLT_TRUE_MIN / 2 + 0.0000001e-45 verify("0.7006493e-45", 0x1p-149f); + verify("0.7006492321624085354e-45", 0.f, std::errc::result_out_of_range); + verify("0.7006492321624085355e-45", 0x1p-149f); // max verify("340282346638528859811704183484516925440", 0x1.fffffep+127f); @@ -1553,6 +1564,10 @@ TEST_CASE("float.general") { // that rounds to FLT_MAX verify("340282356779733661637539395458142568447", std::numeric_limits::max()); + verify("0.3402823567797336616e39", std::numeric_limits::max()); + verify("0.3402823567797336617e39", + std::numeric_limits::infinity(), + std::errc::result_out_of_range); verify("-1e-999", -0.0f, std::errc::result_out_of_range); verify("1." @@ -1563,6 +1578,8 @@ TEST_CASE("float.general") { "175494140627517859246175898662808184331245864732796240031385942718174" "6759860647699724722770042717456817626953125e-38", 0x1.fffff8p-127f); + verify("1.1754942807573642917e-38", 0x1.fffff8p-127f); + verify("1.1754942807573642918e-38", std::numeric_limits::min()); verify_runtime( append_zeros("1." "17549414062751785924617589866280818433124586473279624003138" From 3e2b5d3dc39aed83f0492001f83e793ecfb71270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=AC=EC=9A=B1?= Date: Wed, 4 Feb 2026 15:36:31 +0900 Subject: [PATCH 2/4] refactor verification calls for double and float limits --- tests/basictest.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/basictest.cpp b/tests/basictest.cpp index 5f50ac5..dba36e8 100644 --- a/tests/basictest.cpp +++ b/tests/basictest.cpp @@ -1270,9 +1270,8 @@ TEST_CASE("double.general") { verify("1.7976931348623157e308", 0x1.fffffffffffffp+1023); verify("1.7976931348623158e308", 0x1.fffffffffffffp+1023); verify("1.7976931348623158079e308", std::numeric_limits::max()); - verify("1.7976931348623158080e308", - std::numeric_limits::infinity(), - std::errc::result_out_of_range); + verify("1.7976931348623158080e308", std::numeric_limits::infinity(), + std::errc::result_out_of_range); verify("4503599627370496.5", 4503599627370496.5); verify("4503599627475352.5", 4503599627475352.5); verify("4503599627475353.5", 4503599627475353.5); @@ -1565,9 +1564,8 @@ TEST_CASE("float.general") { verify("340282356779733661637539395458142568447", std::numeric_limits::max()); verify("0.3402823567797336616e39", std::numeric_limits::max()); - verify("0.3402823567797336617e39", - std::numeric_limits::infinity(), - std::errc::result_out_of_range); + verify("0.3402823567797336617e39", std::numeric_limits::infinity(), + std::errc::result_out_of_range); verify("-1e-999", -0.0f, std::errc::result_out_of_range); verify("1." @@ -1578,7 +1576,7 @@ TEST_CASE("float.general") { "175494140627517859246175898662808184331245864732796240031385942718174" "6759860647699724722770042717456817626953125e-38", 0x1.fffff8p-127f); - verify("1.1754942807573642917e-38", 0x1.fffff8p-127f); + verify("1.1754942807573642917e-38", 0x1.fffffcp-127f); verify("1.1754942807573642918e-38", std::numeric_limits::min()); verify_runtime( append_zeros("1." From a110aa1392d37c90440a0bb2e213ea171ed81780 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Wed, 4 Feb 2026 12:13:25 -0500 Subject: [PATCH 3/4] adding bug report template --- .github/ISSUE_TEMPLATE/bug_report.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..8a5ba71 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,24 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Ideally, you should provide a reproducible test case. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Additional context** +Add any other context about the problem here. + +**Note:** Bug reports should come with a test case or, at least, an analysis. + +**Automated tool policy**: If you use an automated tool (e.g., static analysis, +LLM, etc.), you need to demonstrate an understanding of the issue you are raising. Usually, a bug is demonstrated by a test case. Do not copy-paste what a tool is telling you. \ No newline at end of file From 3c6a64b87d3491659a7a31520d3c1f3733f350bf Mon Sep 17 00:00:00 2001 From: Xisco Fauli Date: Fri, 6 Feb 2026 11:28:34 +0100 Subject: [PATCH 4/4] fix warning C4702: unreachable code --- include/fast_float/float_common.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/include/fast_float/float_common.h b/include/fast_float/float_common.h index f35920b..6bb4c59 100644 --- a/include/fast_float/float_common.h +++ b/include/fast_float/float_common.h @@ -313,8 +313,6 @@ fastfloat_strncasecmp3(UC const *actual_mixedcase, return false; } } - - return true; } template @@ -369,8 +367,6 @@ fastfloat_strncasecmp5(UC const *actual_mixedcase, return false; } } - - return true; } // Compares two ASCII strings in a case insensitive manner.