In this function:

    long double sinhl(long double x)

there is a call to fabs:

      (fabs (x) > (MAXLOGL + LOGE2L)))

However, fabs doesn't take a (long double), it only takes a (double). Clang complains about the truncation (warning: absolute value function 'fabs' given an argument of type 'long double' but has parameter of type 'double' which may cause truncation of value).

Patch attached.

dw

diff --git a/mingw-w64-crt/math/sinhl.c b/mingw-w64-crt/math/sinhl.c
index f6ecef0..4db0e51 100644
--- a/mingw-w64-crt/math/sinhl.c
+++ b/mingw-w64-crt/math/sinhl.c
@@ -67,7 +67,7 @@ long double sinhl(long double x)
   if (x_class == FP_ZERO)
     return x;
   if (x_class == FP_INFINITE ||
-      (fabs (x) > (MAXLOGL + LOGE2L)))
+      (fabsl (x) > (MAXLOGL + LOGE2L)))
   {
     errno = ERANGE;
 #ifdef INFINITIES
------------------------------------------------------------------------------
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to