Author: rlibby
Date: Sat Aug 12 18:28:02 2017
New Revision: 322435
URL: https://svnweb.freebsd.org/changeset/base/322435

Log:
  Revert r322418, LDBL_MAX_EXP unsuitable for macro pasting on some arches
  
  Either need a different way to spell HALF_LDBL_MAX, or a different way
  to spell LDBL_MAX_EXP, or a different approach.
  
  Reported by:  ian

Modified:
  head/lib/msun/src/catrigl.c
  head/lib/msun/src/math_private.h
  head/lib/msun/src/s_csqrtl.c

Modified: head/lib/msun/src/catrigl.c
==============================================================================
--- head/lib/msun/src/catrigl.c Sat Aug 12 18:11:41 2017        (r322434)
+++ head/lib/msun/src/catrigl.c Sat Aug 12 18:28:02 2017        (r322435)
@@ -307,7 +307,7 @@ clog_for_large_values(long double complex z)
                ay = t;
        }
 
-       if (ax >= HALF_LDBL_MAX)
+       if (ax > LDBL_MAX / 2)
                return (CMPLXL(logl(hypotl(x / m_e, y / m_e)) + 1,
                    atan2l(y, x)));
 

Modified: head/lib/msun/src/math_private.h
==============================================================================
--- head/lib/msun/src/math_private.h    Sat Aug 12 18:11:41 2017        
(r322434)
+++ head/lib/msun/src/math_private.h    Sat Aug 12 18:28:02 2017        
(r322435)
@@ -272,15 +272,6 @@ do {                                                       
        \
 #define        LD80C(m, ex, v) { .e = (v), }
 #endif
 
-/*
- * XXX LDBL_MAX is broken on i386.  If the precise value of LDBL_MAX is not
- * needed, this may be worked around by instead referring to a proxy, such
- * as HALF_LDBL_MAX, below.  HALF_LDBL_MAX is approximately LDBL_MAX / 2,
- * actually just greater than.  Note that 2 * HALF_LDBL_MAX will always
- * overflow to infinity, regardless of the precision and rounding modes.
- */
-#define        HALF_LDBL_MAX   __CONCAT(__CONCAT(0x0.8p, LDBL_MAX_EXP), L)
-
 #ifdef FLT_EVAL_METHOD
 /*
  * Attempt to get strict C99 semantics for assignment with non-C99 compilers.

Modified: head/lib/msun/src/s_csqrtl.c
==============================================================================
--- head/lib/msun/src/s_csqrtl.c        Sat Aug 12 18:11:41 2017        
(r322434)
+++ head/lib/msun/src/s_csqrtl.c        Sat Aug 12 18:28:02 2017        
(r322435)
@@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$");
 #pragma        STDC CX_LIMITED_RANGE   ON
 
 /* We risk spurious overflow for components >= LDBL_MAX / (1 + sqrt(2)). */
-#define        THRESH  (HALF_LDBL_MAX / 1.207106781186547524400844362104849L)
+#define        THRESH  (LDBL_MAX / 2.414213562373095048801688724209698L)
 
 long double complex
 csqrtl(long double complex z)
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to