On Wed, 2015-08-26 at 15:57 -0700, Roland McGrath wrote:
> 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>.
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
DIAG use. I added some extra text to the DIAG comment also to try and
explain why it is where it is.
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.
@@ -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
@@ -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
@@ -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)