Avoid signed shift overflow in pow (bug 21309).
commit648615e13f8d7b638cb911926b8bb70804217f15
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Tue, 19 Dec 2017 18:41:01 +0000 (19 18:41 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 19 Dec 2017 18:41:01 +0000 (19 18:41 +0000)
treef2c1e2e3d031d0f4e72b982950ee5a6b9223e5a9
parentf1e005022ebd246e1541386cd2f3286f008d2d98
Avoid signed shift overflow in pow (bug 21309).

As noted in bug 21309, dbl-64/e_pow.c contains signed int shifts that,
although the shift count is in the range [0, 31], shift bits into and
beyond the sign bit and so are undefined in ISO C.  Although this is
defined in GNU C, this patch from the bug cleans up the code to avoid
those shifts.

Tested for x86_64.

[BZ #21309]
* sysdeps/ieee754/dbl-64/e_pow.c (checkint): Make m and n
unsigned.
ChangeLog
sysdeps/ieee754/dbl-64/e_pow.c