aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/pragma-diag-7.c13
-rw-r--r--libcpp/ChangeLog6
-rw-r--r--libcpp/macro.c2
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8bd2101..12a217f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2017-11-20 Eric Gallager <egall@gwmail.gwu.edu>
+
+ PR preprocessor/81794
+ * gcc.dg/pragma-diag-7.c: Update to include check for
+ stringification.
+
2017-11-20 David Malcolm <dmalcolm@redhat.com>
PR c/81404
diff --git a/gcc/testsuite/gcc.dg/pragma-diag-7.c b/gcc/testsuite/gcc.dg/pragma-diag-7.c
index 402ee56..3862e9b 100644
--- a/gcc/testsuite/gcc.dg/pragma-diag-7.c
+++ b/gcc/testsuite/gcc.dg/pragma-diag-7.c
@@ -7,3 +7,16 @@ unsigned long bad = 1UL; /* { dg-warning "suffix" } */
/* Note the extra space before the pragma on this next line: */
#pragma GCC diagnostic pop
unsigned long ok_again = 2UL; /* { dg-bogus "suffix" } */
+
+/* Redundant with the previous pop, but just shows that it fails to stop the
+ * following warning with an unpatched GCC: */
+#pragma GCC diagnostic ignored "-Wtraditional"
+
+/* { dg-bogus "would be stringified" "" { target *-*-* } .+1 } */
+#define UNW_DEC_PROLOGUE(fmt, body, rlen, arg) \
+ do { \
+ unw_rlen = rlen; \
+ *(int *)arg = body; \
+ printf(" %s:%s(rlen=%lu)\n", \
+ fmt, (body ? "body" : "prologue"), (unsigned long)rlen); \
+ } while (0)
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index cc5d4d3..556373e 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,9 @@
+2017-11-20 Eric Gallager <egall@gwmail.gwu.edu>
+
+ PR preprocessor/81794
+ * macro.c (check_trad_stringification): Have warning be controlled
+ by -Wtraditional.
+
2017-11-20 David Malcolm <dmalcolm@redhat.com>
PR c++/72786
diff --git a/libcpp/macro.c b/libcpp/macro.c
index 43f2baa..791817a 100644
--- a/libcpp/macro.c
+++ b/libcpp/macro.c
@@ -3490,7 +3490,7 @@ check_trad_stringification (cpp_reader *pfile, const cpp_macro *macro,
if (NODE_LEN (node) == len
&& !memcmp (p, NODE_NAME (node), len))
{
- cpp_error (pfile, CPP_DL_WARNING,
+ cpp_warning (pfile, CPP_W_TRADITIONAL,
"macro argument \"%s\" would be stringified in traditional C",
NODE_NAME (node));
break;