From d834564a753973e8655f45010784562c65f8b340 Mon Sep 17 00:00:00 2001 From: manu Date: Wed, 9 May 2012 21:14:15 +0000 Subject: =?UTF-8?q?2012-05-09=20=20Manuel=20L=C3=B3pez-Ib=C3=A1=C3=B1ez=20?= =?UTF-8?q?=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR c++/53289 gcc/ * diagnostic.h (diagnostic_context): Add last_location. * diagnostic.c (diagnostic_initialize): Initialize it. (diagnostic_show_locus): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187355 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/diagnostic.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gcc/diagnostic.c') diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index 1e2712e59b1..4913eed9c67 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -147,6 +147,7 @@ diagnostic_initialize (diagnostic_context *context, int n_opts) context->option_enabled = NULL; context->option_state = NULL; context->option_name = NULL; + context->last_location = UNKNOWN_LOCATION; context->last_module = 0; context->x_data = NULL; context->lock = 0; @@ -263,9 +264,11 @@ diagnostic_show_locus (diagnostic_context * context, if (!context->show_caret - || diagnostic->location <= BUILTINS_LOCATION) + || diagnostic->location <= BUILTINS_LOCATION + || diagnostic->location == context->last_location) return; + context->last_location = diagnostic->location; s = expand_location_to_spelling_point (diagnostic->location); line = location_get_source_line (s); if (line == NULL) -- cgit v1.2.1