diff options
| author | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-11-22 20:36:10 +0000 |
|---|---|---|
| committer | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-11-22 20:36:10 +0000 |
| commit | 4b912310b461eab9352a0ff18714f7e34b74c397 (patch) | |
| tree | 2ae21a5cad4b86f0223248b6d989593f99c8520f /gcc | |
| parent | 1370a57b8b28dfaa3a85e477bf8e56f0abe685c4 (diff) | |
| download | ppe42-gcc-4b912310b461eab9352a0ff18714f7e34b74c397.tar.gz ppe42-gcc-4b912310b461eab9352a0ff18714f7e34b74c397.zip | |
* cpplex.c (trigraph_ok): Ensure we don't warn twice.
* cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37669 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/cpplex.c | 10 | ||||
| -rw-r--r-- | gcc/cpplib.h | 4 |
3 files changed, 16 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c8bde8c640c..0966d8fa237 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-11-22 Neil Booth <neilb@earthling.net> + + * cpplex.c (trigraph_ok): Ensure we don't warn twice. + * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs. + 2000-11-22 Richard Henderson <rth@redhat.com> * haifa-sched.c (sched_analyze_1): Don't special-case calls diff --git a/gcc/cpplex.c b/gcc/cpplex.c index 96e2454316a..bec14e76042 100644 --- a/gcc/cpplex.c +++ b/gcc/cpplex.c @@ -159,9 +159,13 @@ trigraph_ok (pfile, from_char) "trigraph ??%c converted to %c", (int) from_char, (int) _cpp_trigraph_map[from_char]); - else - cpp_warning_with_line (pfile, buffer->lineno, CPP_BUF_COL (buffer) - 2, - "trigraph ??%c ignored", (int) from_char); + else if (buffer->cur != buffer->last_Wtrigraphs) + { + buffer->last_Wtrigraphs = buffer->cur; + cpp_warning_with_line (pfile, buffer->lineno, + CPP_BUF_COL (buffer) - 2, + "trigraph ??%c ignored", (int) from_char); + } } return accept; diff --git a/gcc/cpplib.h b/gcc/cpplib.h index 5922f94290f..91cca900733 100644 --- a/gcc/cpplib.h +++ b/gcc/cpplib.h @@ -282,6 +282,10 @@ struct cpp_buffer /* Line number at line_base (above). */ unsigned int lineno; + /* Because of the way the lexer works, -Wtrigraphs can sometimes + warn twice for the same trigraph. This helps prevent that. */ + const unsigned char *last_Wtrigraphs; + /* True if we have already warned about C++ comments in this file. The warning happens only for C89 extended mode with -pedantic on, or for -Wtraditional, and only once per file (otherwise it would |

