freebsd-nq/lib/msun
Eitan Adler f5ce166436 msun: signed overflow in atan2
As a component of atan2(y, x), the case of x == 1.0 is farmed out to
atan(y). The current implementation of this comparison is vulnerable
to signed integer underflow (that is, undefined behavior), and it's
performed in a somewhat more complicated way than it need be. Change
it to not be quite so cute, rather directly comparing the high/low
bits of x to the specific IEEE-754 bit pattern that encodes 1.0.

Note that while there are three different e_atan* files in the
relevant directory, only this one needs fixing. e_atan2f.c already
compares against the full bit pattern encoding 1.0f, while
e_atan2l.cuses bitwise-ands/ors/nots and so doesn't require a change.

Closes #130

Submitted by:	Jeff Walden (@jswalden github PR #130)
Reviewed by:	bde
MFC After:	1 month
2018-02-14 07:59:30 +00:00
..
aarch64
amd64 lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
arm lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
bsdsrc Remove an unused incude from lib/msun/bsdsrc/b_log.c. 2017-12-07 20:41:23 +00:00
i387 lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
ld80 lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
ld128 lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
man cacos(3): correct spelling of 'I' 2017-12-31 00:55:00 +00:00
mips lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
powerpc lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
riscv
sparc64 lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
src msun: signed overflow in atan2 2018-02-14 07:59:30 +00:00
tests DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
x86 lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
Makefile
Makefile.depend DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
Symbol.map