system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, [...]): Define.
authorJakub Jelinek <jakub@redhat.com>
Fri, 6 Jan 2017 18:41:23 +0000 (19:41 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 6 Jan 2017 18:41:23 +0000 (19:41 +0100)
* system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
GCC_DIAGNOSTIC_STRINGIFY): Define.

* simplify.c (simplify_transformation_to_array): Use
GCC_DIAGNOSTIC_PUSH_IGNORED and GCC_DIAGNOSTIC_POP instead of
#pragma GCC diagnostic {push,ignored,pop}.

From-SVN: r244179

gcc/ChangeLog
gcc/fortran/ChangeLog
gcc/fortran/simplify.c
gcc/system.h

index 236d40dd36a8475d3a9eb229127ff7d85aba52eb..9600c4371ea1f7fc267e7c37ca63263f765df4c3 100644 (file)
@@ -1,5 +1,8 @@
 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
 
+       * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
+       GCC_DIAGNOSTIC_STRINGIFY): Define.
+
        * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare
        warning.
 
index d1892de8bb1f502d1b3da38f5305d3f815d05ada..30646921237243c1fb715b381f6bfa47a633bcec 100644 (file)
@@ -1,3 +1,9 @@
+2017-01-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * simplify.c (simplify_transformation_to_array): Use
+       GCC_DIAGNOSTIC_PUSH_IGNORED and GCC_DIAGNOSTIC_POP instead of
+       #pragma GCC diagnostic {push,ignored,pop}.
+
 2017-01-06  Alexandre Oliva <aoliva@redhat.com>
 
        * simplify.c (simplify_transformation_to_array): Silence
index c5e7b671691da81d404d7857e0b3cf630f213084..942b40154471266e4a5d89dea74fa000d43afe31 100644 (file)
@@ -610,18 +610,17 @@ simplify_transformation_to_array (gfc_expr *result, gfc_expr *array, gfc_expr *d
          n++;
          if (n < result->rank)
            {
-#pragma GCC diagnostic push
              /* If the nested loop is unrolled GFC_MAX_DIMENSIONS
                 times, we'd warn for the last iteration, because the
                 array index will have already been incremented to the
                 array sizes, and we can't tell that this must make
                 the test against result->rank false, because ranks
                 must not exceed GFC_MAX_DIMENSIONS.  */
-#pragma GCC diagnostic ignored "-Warray-bounds"
+             GCC_DIAGNOSTIC_PUSH_IGNORED (-Warray-bounds)
              count[n]++;
              base += sstride[n];
              dest += dstride[n];
-#pragma GCC diagnostic pop
+             GCC_DIAGNOSTIC_POP
            }
          else
            done = true;
index c6fb0e2dbded92ad96d203101bc1a96d74c99746..0cd58dba11071b65fdcad9a8822f378e37148913 100644 (file)
@@ -1140,6 +1140,18 @@ helper_const_non_const_cast (const char *p)
 #define VALGRIND_FREELIKE_BLOCK(x,y)
 #endif
 
+/* Macros to temporarily ignore some warnings.  */
+#if GCC_VERSION >= 6000
+#define GCC_DIAGNOSTIC_STRINGIFY(x) #x
+#define GCC_DIAGNOSTIC_PUSH_IGNORED(x) \
+  _Pragma ("GCC diagnostic push") \
+  _Pragma (GCC_DIAGNOSTIC_STRINGIFY (GCC diagnostic ignored #x))
+#define GCC_DIAGNOSTIC_POP _Pragma ("GCC diagnostic pop")
+#else
+#define GCC_DIAGNOSTIC_PUSH_IGNORED(x)
+#define GCC_DIAGNOSTIC_POP
+#endif
+
 /* In LTO -fwhole-program build we still want to keep the debug functions available
    for debugger.  Mark them as used to prevent removal.  */
 #if (GCC_VERSION > 4000)