diff options
author | Eric Gallager <egall@gwmail.gwu.edu> | 2017-11-21 00:57:29 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2017-11-21 00:57:29 +0000 |
commit | 34b81eb96cd1df28d7f878bc1f3df607746507da (patch) | |
tree | 89c38d8dcd983f269e08bc431d273c64986a220b | |
parent | 26edace69b6b909eebddcf18c8844bb4c94d9a35 (diff) | |
download | gcc-34b81eb96cd1df28d7f878bc1f3df607746507da.zip gcc-34b81eb96cd1df28d7f878bc1f3df607746507da.tar.gz gcc-34b81eb96cd1df28d7f878bc1f3df607746507da.tar.bz2 |
Use -Wtraditional for "would be stringified in traditional C" (PR preprocessor/81794)
libcpp/ChangeLog:
2017-03-24 Eric Gallager <egall@gwmail.gwu.edu>
PR preprocessor/81794
* macro.c (check_trad_stringification): Have warning be controlled
by -Wtraditional.
gcc/testsuite/ChangeLog:
2017-09-17 Eric Gallager <egall@gwmail.gwu.edu>
PR preprocessor/81794
* gcc.dg/pragma-diag-7.c: Update to include check for
stringification.
From-SVN: r254981
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pragma-diag-7.c | 13 | ||||
-rw-r--r-- | libcpp/ChangeLog | 6 | ||||
-rw-r--r-- | libcpp/macro.c | 2 |
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; |