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: Joseph Myers <joseph at codesourcery dot com>
- Cc: Chris Metcalf <cmetcalf at ezchip dot com>, <libc-alpha at sourceware dot org>
- Date: Wed, 26 Aug 2015 15:40:24 -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>
- Reply-to: <sellcey at imgtec dot com>
On Wed, 2015-08-26 at 22:15 +0000, Joseph Myers wrote:
> On Wed, 26 Aug 2015, Steve Ellcey wrote:
>
> > I tried moving the diag/ignore to just after the include of
> > libc-internal.h and I got errors about __GNUC_PREREQ not being defined.
> > If I put the diag/ignore's after the include of math.h (and
> > libc-internal.h) then things seemed to work. Any idea why I need to
> > include math.h to get __GNUC_PREREQ defined?
>
> Public headers include <features.h>. Internal headers don't necessarily
> do so.
>
I am testing this patch on MIPS and it looks good so far (still building
different ABI's). OK to check it in if everything looks good on MIPS?
I left the DIAG_POP macros in even though they aren't really needed.
Steve Ellcey
sellcey@imgtec.com
2015-08-26 Steve Ellcey <sellcey@imgtec.com>
* soft-fp/fmasf4.c: Add include of features.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..89dae52 100644
--- a/soft-fp/fmadf4.c
+++ b/soft-fp/fmadf4.c
@@ -26,6 +26,13 @@
<http://www.gnu.org/licenses/>. */
#include <libc-internal.h>
+#include <features.h>
+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"
@@ -49,18 +56,13 @@ __fma (double a, double b, double c)
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..fcd913a 100644
--- a/soft-fp/fmasf4.c
+++ b/soft-fp/fmasf4.c
@@ -26,6 +26,13 @@
<http://www.gnu.org/licenses/>. */
#include <libc-internal.h>
+#include <features.h>
+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"
@@ -49,18 +56,13 @@ __fmaf (float a, float b, float c)
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..16df6d1 100644
--- a/soft-fp/fmatf4.c
+++ b/soft-fp/fmatf4.c
@@ -26,6 +26,13 @@
<http://www.gnu.org/licenses/>. */
#include <libc-internal.h>
+#include <features.h>
+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"
@@ -49,16 +56,11 @@ __fmal (long double a, long double b, long double c)
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)