]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - soft-fp/fmasf4.c
Fix soft-fp extended.h unpacking (GCC bug 77265).
[thirdparty/glibc.git] / soft-fp / fmasf4.c
index b770a0719f3fcd398a890a8cc176bb01dbafb7f3..81d94d6a44c5e91c2f0ca3564d86d1b386e95ae4 100644 (file)
@@ -1,5 +1,5 @@
 /* Implement fmaf using soft-fp.
-   Copyright (C) 2013-2015 Free Software Foundation, Inc.
+   Copyright (C) 2013-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
    <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;
+DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
 #include <math.h>
 #include "soft-fp.h"
 #include "single.h"
@@ -45,22 +54,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