mirror of
git://git.sv.gnu.org/coreutils
synced 2026-05-12 18:07:23 -04:00
0fe9fdece7
Since -LONG_MIN results in LONG_MIN again, the operation itself is a signed integer overflow. This can be observed with the following calls (best if compiled with -ftrapv or -fsanitize=undefined): $ numfmt --padding=-9223372036854775808 $ seq 1e-9223372036854775808 Technically, the change in seq "reduces" the precision, but a double or long double that small would be represented as 0 anyway. * src/numfmt.c: Explicitly disallow --padding=LONG_MIN. * src/seq.c: Treat 1e$LONG_MIN as 1e-$LONG_MAX. * tests/misc/numfmt.pl: Add a test case. * tests/misc/seq-precision.sh: Likewise. Fixes https://bugs.gnu.org/41850