https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272539
Bug ID: 272539
Summary: cospi, sinpi and tanpi incorrectly test for NaN and
Infinity
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Many People
Priority: ---
Component: bin
Assignee: [email protected]
Reporter: [email protected]
The current versions of lib/msun/src/s_cospi.c, s_sinpi.c and s_tanpi.c all
exhibit the same defect. After checking for various numeric ranges, they check
to see whether the input argument is a NaN or an Infinity. However, the code
uses a value of 0x7f80000 instead of the correct value of 0x7ff00000. See line
141 of s_cospi.c, line 158 of s_sinpi.c, and line 166 of s_tanpi.c.
I strongly recommend that s_cospi.c and s_sinpi.c have a comment added just
before this line to say that the code is testing for infinity or nan. Such a
comment already exists in s_tanpi.c.
If you review s_cospif.c, s_sinpif.c, and s_tanpif.c, you will see that the
equivalent statements in these functions are accurate and have appropriate
source comments.
Cross-ref: PR 218514, which added these functions and is still open for reasons
that are unclear.
I have run this issue past the author of these functions and he agrees with my
analysis.
The impact of these defects is to flag some valid input values as invalid and
raise a pole error (divide by zero).
--
You are receiving this mail because:
You are the assignee for the bug.