[Bug 229876] [libm] Fix powl, cpow, cpowf, and cpowl imports from OpenBSD

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Jul 27 17:40:39 UTC 2018


--- Comment #7 from commit-hook at freebsd.org ---
A commit references this bug:

Author: dim
Date: Fri Jul 27 17:39:39 UTC 2018
New revision: 336767
URL: https://svnweb.freebsd.org/changeset/base/336767

  MFC r327400 (by eadler):

  cacos(3): correct spelling of 'I'

  In some cases we had 'i' instead of 'I'.

  PR:           195517
  Submitted by: stephen

  MFC r329259 (by eadler):

  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 r334721 (by cem):

  clog.3, complex.3: Fix typos and igor style issues

  PR:           228783
  Reported by:  Karsten <freebsd-bugzilla AT kkoenig.net>

  MFC r336299 (by mmacy):

  msun: add ld80/ld128 powl, cpow, cpowf, cpowl from openbsd

  This corresponds to the latest status (hasn't changed in 9+
  years) from openbsd of ld80/ld128 powl, and source cpowf, cpow,
  cpowl (the complex power functions for float complex, double
  complex, and long double complex) which are required for C99
  compliance and were missing from FreeBSD. Also required for
  some numerical codes using complex numbered Hamiltonians.

  Thanks to jhb for tracking down the issue with making
  weak_reference compile on powerpc.

  When asked to review, bde said "I don't like it" - but
  provided no actionable feedback or superior implementations.

  Discussed with: jhb
  Submitted by: jmd
  Differential Revision: https://reviews.freebsd.org/D15919

  MFC r336563:

  Recommit r336497: Fix powl, cpow, cpowf, and cpowl imports from OpenBSD

  This is a follow-up to r336299.

  * lib/msun/Makefile:
    . Remove polevll.c

  * lib/msun/ld80/e_powl.c:
    . Copy contents of polevll.c to here.  This is the only consumer of
      these functions.  Make functions 'static inline'.
    . Make reducl a 'static inline' function.

  * lib/msun/man/exp.3:
    . Remove BUGS section that no longer applies.

  * lib/msun/src/math_private.h:
    . Remove prototypes of __p1evll() and __polevll()

  * lib/msun/src/s_cpow.c:
  * lib/msun/src/s_cpowf.c:
  * lib/msun/src/s_cpowl.c
    . Include math_private.h.
    . Use the CMPLX macro from either C99 or math_private.h (depends on
      compiler support) instead of the problematic use of complex I.

  Submitted by: Steve Kargl <sgk at troutmask.apl.washington.edu>
  PR:           229876

_U  stable/11/

You are receiving this mail because:
You are on the CC list for the bug.

More information about the freebsd-numerics mailing list