summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-22 20:36:10 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-22 20:36:10 +0000
commit4b912310b461eab9352a0ff18714f7e34b74c397 (patch)
tree2ae21a5cad4b86f0223248b6d989593f99c8520f /gcc
parent1370a57b8b28dfaa3a85e477bf8e56f0abe685c4 (diff)
downloadppe42-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/ChangeLog5
-rw-r--r--gcc/cpplex.c10
-rw-r--r--gcc/cpplib.h4
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
OpenPOWER on IntegriCloud