]> git.ipfire.org Git - thirdparty/glibc.git/commit
Fix ldbl-128 lrintl, lroundl missing exceptions for 32-bit long (bug 19085).
authorJoseph Myers <joseph@codesourcery.com>
Wed, 7 Oct 2015 16:10:59 +0000 (16:10 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 7 Oct 2015 16:10:59 +0000 (16:10 +0000)
commit119d073e334e9889a3fd904b333cd13d8217bc58
tree7675f61fc34923c0bec718c787786cfb906efddb
parent7d6f9f74c8292d63cc3b574eb84919c54946e679
Fix ldbl-128 lrintl, lroundl missing exceptions for 32-bit long (bug 19085).

The ldbl-128 implementations of lrintl and lroundl miss "invalid"
exceptions on systems with 32-bit long for arguments that overflow
long but have exponent below 48.  This patch fixes this by rearranging
the sequence of tests in the code so the exponent < 48 case is only
used for exponents that don't overflow long.

Tested for mips64 (n32 and n64).

[BZ #19085]
* sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Move test for
exponent below 48 inside case for non-overflowing exponent.
* sysdeps/ieee754/ldbl-128/s_lroundl.c (__lroundl): Likewise.
ChangeLog
NEWS
sysdeps/ieee754/ldbl-128/s_lrintl.c
sysdeps/ieee754/ldbl-128/s_lroundl.c