Don't use -Wno-uninitialized in math/
Commit Message
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.
Comments
On Wed, 26 Aug 2015, Steve Ellcey wrote:
> compiler does not see that it is set in all cases where it is
> used, resulting in warnings that it may be used
> uninitialized. */
You need to move this comment up as well so it stays with the macro calls
- and expand it to explain why it's at the top of the file.
Nothing should ever #include <features.h> except the prologue of an
installed header file, and then only for the purpose of testing __USE_*
macros. If you want access to the various other __ macros (even ones that
are actually defined in features.h), you should #include <sys/cdefs.h>.
@@ -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
@@ -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
@@ -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)