about summary refs log tree commit diff
diff options
context:
space:
mode:
authorStan Shebs <stanshebs@google.com>2015-08-26 16:10:00 -0700
committerRoland McGrath <roland@hack.frob.com>2015-08-26 16:10:43 -0700
commitfff289f358ee26bb4cdd70f72f4b1b0e1a7d07a1 (patch)
tree178d336afbbe2df8521eccc7e4e16f66ab60531c
parent55504a3df099b70e06cd14064adfe6bd815cedbd (diff)
downloadglibc-fff289f358ee26bb4cdd70f72f4b1b0e1a7d07a1.tar.gz
glibc-fff289f358ee26bb4cdd70f72f4b1b0e1a7d07a1.tar.xz
glibc-fff289f358ee26bb4cdd70f72f4b1b0e1a7d07a1.zip
Disable uninitialized warning with GCC 4.8
As with other spots in the code, GCC 4.8 unnecessarily complains about
an uninitialized variable in tanl calcs, so this patch disables.  With
it, the library and sees the usual set of test passes.

	* sysdeps/ieee754/ldbl-96/k_tanl.c: Include <libc-internal.h>.
	(__kernel_tanl): Ignore uninitialized warnings around use of SIGN.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/ieee754/ldbl-96/k_tanl.c12
2 files changed, 17 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b191c408a4..5132b96807 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-08-26  Stan Shebs  <stanshebs@google.com>
+
+	* sysdeps/ieee754/ldbl-96/k_tanl.c: Include <libc-internal.h>.
+	(__kernel_tanl): Ignore uninitialized warnings around use of SIGN.
+
 2015-08-26  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/bits/hwcap.h: Add PPC_FEATURE2_HTM_NOSC.
diff --git a/sysdeps/ieee754/ldbl-96/k_tanl.c b/sysdeps/ieee754/ldbl-96/k_tanl.c
index ae6821d984..6276c06e71 100644
--- a/sysdeps/ieee754/ldbl-96/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -57,6 +57,7 @@
  */
 
 #include <float.h>
+#include <libc-internal.h>
 #include <math.h>
 #include <math_private.h>
 static const long double
@@ -136,8 +137,19 @@ __kernel_tanl (long double x, long double y, int iy)
     {
       v = (long double) iy;
       w = (v - 2.0 * (x - (w * w / (w + v) - r)));
+      /* SIGN is set for arguments that reach this code, 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.8, "-Wmaybe-uninitialized");
+#else
+      DIAG_IGNORE_NEEDS_COMMENT (4.8, "-Wuninitialized");
+#endif
       if (sign < 0)
 	w = -w;
+      DIAG_POP_NEEDS_COMMENT;
       return w;
     }
   if (iy == 1)