It seems I made an off-by-one error in my last patch for multiple
locations. This only affected the position of the caret character,
which we don't test (since the testsuite uses
-fno-diagnostics-show-caret). Fixed thusly and added a comment to
remind me and others that locations start at 1, but we still want to
start at 0 (but not start at 0 and add an extra space like I did
before).
Cheers,
Manuel.
Index: ChangeLog
===
--- ChangeLog (revision 223445)
+++ ChangeLog (working copy)
@@ -1,3 +1,8 @@
+2015-05-20 Manuel López-Ibáñez
+
+ * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
+ when printing the caret character.
+
2015-05-20 Marek Polacek
* cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
Index: diagnostic.c
===
--- diagnostic.c(revision 223445)
+++ diagnostic.c(working copy)
@@ -420,7 +420,8 @@
int caret_min = cmin == xloc1.column ? caret1 : caret2;
int caret_max = cmin == xloc1.column ? caret2 : caret1;
- pp_space (context->printer);
+ /* cmin is >= 1, but we indent with an extra space at the start like
+ we did above. */
int i;
for (i = 0; i < cmin; i++)
pp_space (context->printer);