This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Don't use -Wno-uninitialized in math/
- From: Steve Ellcey <sellcey at imgtec dot com>
- To: Roland McGrath <roland at hack dot frob dot com>
- Cc: Joseph Myers <joseph at codesourcery dot com>, Chris Metcalf <cmetcalf at ezchip dot com>, <libc-alpha at sourceware dot org>
- Date: Wed, 26 Aug 2015 16:18:26 -0700
- Subject: Re: Don't use -Wno-uninitialized in math/
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot DEB dot 2 dot 10 dot 1508201800380 dot 30940 at digraph dot polyomino dot org dot uk> <1440173079 dot 23512 dot 36 dot camel at ubuntu-sellcey> <55DE1A17 dot 5060706 at ezchip dot com> <alpine dot DEB dot 2 dot 10 dot 1508262116390 dot 6767 at digraph dot polyomino dot org dot uk> <1440627171 dot 14154 dot 13 dot camel at ubuntu-sellcey> <alpine dot DEB dot 2 dot 10 dot 1508262214260 dot 6767 at digraph dot polyomino dot org dot uk> <1440628824 dot 14154 dot 16 dot camel at ubuntu-sellcey> <20150826225743 dot 1A8782C39E0 at topped-with-meat dot com> <1440630636 dot 14154 dot 19 dot camel at ubuntu-sellcey> <20150826231308 dot 53F3C2C39E0 at topped-with-meat dot com>
- Reply-to: <sellcey at imgtec dot com>
On Wed, 2015-08-26 at 16:13 -0700, Roland McGrath wrote:
> > OK, here is a new version of the patch including sys/cdefs.h instead of
> > features.h and moving the comments about the DIAG up with the actual
>
> You forgot to update the log entry.
Argh, you are right.
2015-08-26 Steve Ellcey <sellcey@imgtec.com>
* soft-fp/fmasf4.c: Add include of sys/cdefs.h.
Move DIAG_PUSH_NEEDS_COMMENT, DIAG_IGNORE_NEEDS_COMMENT to front of
file, move DIAG_POP_NEEDS_COMMENT to end of file.
* soft-fp/fmadf4.c: Ditto.
* soft-fp/fmatf4.c: Ditto.
diff --git a/soft-fp/fmadf4.c b/soft-fp/fmadf4.c
index da6749d..9330948 100644
--- a/soft-fp/fmadf4.c
+++ b/soft-fp/fmadf4.c
@@ -26,6 +26,19 @@
<http://www.gnu.org/licenses/>. */
#include <libc-internal.h>
+#include <sys/cdefs.h>
+/* R_e is not set in cases where it is not used in packing, but the
+ compiler does not see that it is set in all cases where it is
+ used, resulting in warnings that it may be used uninitialized.
+ The location of the warning differs in different versions of GCC,
+ it may be where R is defined using a macro or it may be where the
+ macro is defined. */
+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
#include <math.h>
#include "soft-fp.h"
#include "double.h"
@@ -45,22 +58,13 @@ __fma (double a, double b, double c)
FP_UNPACK_D (B, b);
FP_UNPACK_D (C, c);
FP_FMA_D (R, A, B, C);
- /* R_e is not set in cases where it is not used in packing, but the
- compiler does not see that it is set in all cases where it is
- used, resulting in warnings that it may be used
- uninitialized. */
- 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
FP_PACK_D (r, R);
- DIAG_POP_NEEDS_COMMENT;
FP_HANDLE_EXCEPTIONS;
return r;
}
+DIAG_POP_NEEDS_COMMENT;
+
#ifndef __fma
weak_alias (__fma, fma)
#endif
diff --git a/soft-fp/fmasf4.c b/soft-fp/fmasf4.c
index b770a07..359d49c 100644
--- a/soft-fp/fmasf4.c
+++ b/soft-fp/fmasf4.c
@@ -26,6 +26,19 @@
<http://www.gnu.org/licenses/>. */
#include <libc-internal.h>
+#include <sys/cdefs.h>
+/* R_e is not set in cases where it is not used in packing, but the
+ compiler does not see that it is set in all cases where it is
+ used, resulting in warnings that it may be used uninitialized.
+ The location of the warning differs in different versions of GCC,
+ it may be where R is defined using a macro or it may be where the
+ macro is defined. */
+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
#include <math.h>
#include "soft-fp.h"
#include "single.h"
@@ -45,22 +58,13 @@ __fmaf (float a, float b, float c)
FP_UNPACK_S (B, b);
FP_UNPACK_S (C, c);
FP_FMA_S (R, A, B, C);
- /* R_e is not set in cases where it is not used in packing, but the
- compiler does not see that it is set in all cases where it is
- used, resulting in warnings that it may be used
- uninitialized. */
- 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
FP_PACK_S (r, R);
- DIAG_POP_NEEDS_COMMENT;
FP_HANDLE_EXCEPTIONS;
return r;
}
+DIAG_POP_NEEDS_COMMENT;
+
#ifndef __fmaf
weak_alias (__fmaf, fmaf)
#endif
diff --git a/soft-fp/fmatf4.c b/soft-fp/fmatf4.c
index 880961c..9c99303 100644
--- a/soft-fp/fmatf4.c
+++ b/soft-fp/fmatf4.c
@@ -26,6 +26,19 @@
<http://www.gnu.org/licenses/>. */
#include <libc-internal.h>
+#include <sys/cdefs.h>
+/* R_e is not set in cases where it is not used in packing, but the
+ compiler does not see that it is set in all cases where it is
+ used, resulting in warnings that it may be used uninitialized.
+ The location of the warning differs in different versions of GCC,
+ it may be where R is defined using a macro or it may be where the
+ macro is defined. */
+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
#include <math.h>
#include "soft-fp.h"
#include "quad.h"
@@ -45,20 +58,11 @@ __fmal (long double a, long double b, long double c)
FP_UNPACK_Q (B, b);
FP_UNPACK_Q (C, c);
FP_FMA_Q (R, A, B, C);
- /* R_e is not set in cases where it is not used in packing, but the
- compiler does not see that it is set in all cases where it is
- used, resulting in warnings that it may be used
- uninitialized. */
- 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
FP_PACK_Q (r, R);
- DIAG_POP_NEEDS_COMMENT;
FP_HANDLE_EXCEPTIONS;
return r;
}
+DIAG_POP_NEEDS_COMMENT;
+
weak_alias (__fmal, fmal)