aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/diagnostic.c3
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 98c59d4..0850165 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2014-08-17 Marek Polacek <polacek@redhat.com>
+ Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c/62059
+ * diagnostic.c (adjust_line): Add gcc_checking_assert.
+ (diagnostic_show_locus): Don't print caret diagnostic
+ if a column is larger than the line_width.
+
2014-08-17 Roman Gareev <gareevroman@gmail.com>
* common.opt: Make the ISL AST generator to be the main code generator
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index b457e5a..2226821 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -268,6 +268,7 @@ adjust_line (const char *line, int line_width,
int right_margin = 10;
int column = *column_p;
+ gcc_checking_assert (line_width >= column);
right_margin = MIN (line_width - column, right_margin);
right_margin = max_width - right_margin;
if (line_width >= max_width && column > right_margin)
@@ -300,7 +301,7 @@ diagnostic_show_locus (diagnostic_context * context,
context->last_location = diagnostic->location;
s = expand_location_to_spelling_point (diagnostic->location);
line = location_get_source_line (s, &line_width);
- if (line == NULL)
+ if (line == NULL || s.column > line_width)
return;
max_width = context->caret_max_width;