aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--sysdeps/ieee754/dbl-64/e_lgamma_r.c12
-rw-r--r--sysdeps/ieee754/flt-32/e_lgammaf_r.c12
-rw-r--r--sysdeps/ieee754/ldbl-96/e_lgammal_r.c11
4 files changed, 45 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index bca6ba7..ba7a400 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2015-05-21 Joseph Myers <joseph@codesourcery.com>
+ * sysdeps/ieee754/dbl-64/e_lgamma_r.c: Include <libc-internal.h>.
+ (__ieee754_lgamma_r): Ignore uninitialized warnings around use of
+ NADJ.
+ * sysdeps/ieee754/flt-32/e_lgammaf_r.c: Include <libc-internal.h>.
+ (__ieee754_lgammaf_r): Ignore uninitialized warnings around use of
+ NADJ.
+ * sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Include <libc-internal.h>.
+ (__ieee754_lgammal_r): Ignore uninitialized warnings around use of
+ NADJ.
+
* sysdeps/ieee754/dbl-64/mpa.c (norm): Remove if condition on
(p == 4) case.
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index af7d06c..fc6f594 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -77,6 +77,7 @@
*
*/
+#include <libc-internal.h>
#include <math.h>
#include <math_private.h>
@@ -294,7 +295,18 @@ __ieee754_lgamma_r(double x, int *signgamp)
} else
/* 2**58 <= x <= inf */
r = x*(__ieee754_log(x)-one);
+ /* NADJ is set for negative arguments but not otherwise,
+ resulting in warnings that it may be used uninitialized
+ although in the cases where it is used it has always been
+ set. */
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (4, 7)
+ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+#else
+ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wuninitialized");
+#endif
if(hx<0) r = nadj - r;
+ DIAG_POP_NEEDS_COMMENT;
return r;
}
strong_alias (__ieee754_lgamma_r, __lgamma_r_finite)
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index 4743bee..c0bf415 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -13,6 +13,7 @@
* ====================================================
*/
+#include <libc-internal.h>
#include <math.h>
#include <math_private.h>
@@ -229,7 +230,18 @@ __ieee754_lgammaf_r(float x, int *signgamp)
} else
/* 2**26 <= x <= inf */
r = x*(__ieee754_logf(x)-one);
+ /* NADJ is set for negative arguments but not otherwise,
+ resulting in warnings that it may be used uninitialized
+ although in the cases where it is used it has always been
+ set. */
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (4, 7)
+ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+#else
+ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wuninitialized");
+#endif
if(hx<0) r = nadj - r;
+ DIAG_POP_NEEDS_COMMENT;
return r;
}
strong_alias (__ieee754_lgammaf_r, __lgammaf_r_finite)
diff --git a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
index 1a95f84..0cc35f9 100644
--- a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -91,6 +91,7 @@
*
*/
+#include <libc-internal.h>
#include <math.h>
#include <math_private.h>
@@ -423,8 +424,18 @@ __ieee754_lgammal_r (long double x, int *signgamp)
else
/* 2**66 <= x <= inf */
r = x * (__ieee754_logl (x) - one);
+ /* NADJ is set for negative arguments but not otherwise, resulting
+ in warnings that it may be used uninitialized although in the
+ cases where it is used it has always been set. */
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (4, 7)
+ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+#else
+ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wuninitialized");
+#endif
if (se & 0x8000)
r = nadj - r;
+ DIAG_POP_NEEDS_COMMENT;
return r;
}
strong_alias (__ieee754_lgammal_r, __lgammal_r_finite)