diff options
author | Mark H Weaver <mhw@netris.org> | 2018-10-14 05:29:52 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2018-10-14 05:37:18 -0400 |
commit | 1990aa916382d0afcebd5315a6d6f555949ff654 (patch) | |
tree | dbbf60e3713333ab39d5b795f1f0c04d05869404 /libguile/posix.c | |
parent | 9448a078b5a35fc49a16d32c0398d5789a863f09 (diff) | |
download | guile-1990aa916382d0afcebd5315a6d6f555949ff654.tar.gz |
In 'ash' and 'round-ash', handle right shift count of LONG_MIN.
Fixes <https://bugs.gnu.org/21901>.
Reported by Zefram <zefram@fysh.org>.
* libguile/numbers.c: Add another top-level 'verify' to ensure that
LONG_MIN is not a fixnum.
(scm_ash, scm_round_ash): Ensure that when the shift count is LONG_MIN,
it is not handled via the normal code path, to avoid signed overflow
when the shift count is negated.
* test-suite/tests/numbers.test: Add tests.
Diffstat (limited to 'libguile/posix.c')
0 files changed, 0 insertions, 0 deletions