diff --git a/README.md b/README.md index 04bdf192..fa045f7f 100644 --- a/README.md +++ b/README.md @@ -583,6 +583,7 @@ I deeply appreciate the help of the following people. - [TurpentineDistillery](https://github.com/TurpentineDistillery) pointed to [`std::locale::classic()`](http://en.cppreference.com/w/cpp/locale/locale/classic) to avoid too much locale joggling, found some nice performance improvements in the parser and improved the benchmarking code. - [cgzones](https://github.com/cgzones) had an idea how to fix the Coverity scan. - [Jared Grubb](https://github.com/jaredgrubb) silenced a nasty documentation warning. +- [Yixin Zhang](https://github.com/qwename) fixed an integer overflow check. Thanks a lot for helping out! diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp index f6d05eff..3125c44e 100644 --- a/test/src/unit-regression.cpp +++ b/test/src/unit-regression.cpp @@ -533,4 +533,11 @@ TEST_CASE("regression tests") json j3 = json::parse("-9223372036854775809"); CHECK(j3.is_number_float()); } + + SECTION("issue #380 - bug in overflow detection when parsing integers") + { + json j = json::parse("166020696663385964490"); + CHECK(j.is_number_float()); + CHECK(j.dump() == "1.66020696663386e+20"); + } }