From: Mikael Morin Date: Mon, 15 Dec 2008 14:46:22 +0000 (+0100) Subject: re PR fortran/38113 (on warning/error: skip whitespaces, move position marker to... X-Git-Tag: releases/gcc-4.4.0~1209 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=618f4f46bd9b08eb519da2a8d12ecf57fd76afee;p=thirdparty%2Fgcc.git re PR fortran/38113 (on warning/error: skip whitespaces, move position marker to actual variable name) 2008-12-15 Mikael Morin PR fortran/38113 * error.c (show_locus): Start counting columns at 0. * primary.c (match_actual_arg): Eat spaces before copying the current locus. (match_variable): Copy the locus before matching. From-SVN: r142763 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index ad494810dccb..7b50b8c0a934 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,11 @@ +2008-12-15 Mikael Morin + + PR fortran/38113 + * error.c (show_locus): Start counting columns at 0. + * primary.c (match_actual_arg): Eat spaces + before copying the current locus. + (match_variable): Copy the locus before matching. + 2008-12-14 Paul Thomas PR fortran/35937 diff --git a/gcc/fortran/error.c b/gcc/fortran/error.c index a7005e9fbb61..29efbd1fee08 100644 --- a/gcc/fortran/error.c +++ b/gcc/fortran/error.c @@ -307,14 +307,6 @@ show_locus (locus *loc, int c1, int c2) offset = 0; - /* When the loci is not associated with a column, it will have a - value of zero. We adjust this to 1 so that it will appear. */ - - if (c1 == 0) - c1 = 1; - if (c2 == 0) - c2 = 1; - /* If the two loci would appear in the same column, we shift '2' one column to the right, so as to print '12' rather than just '1'. We do this here so it will be accounted for in the @@ -361,7 +353,7 @@ show_locus (locus *loc, int c1, int c2) c1 -= offset; c2 -= offset; - for (i = 1; i <= cmax; i++) + for (i = 0; i <= cmax; i++) { if (i == c1) error_char ('1'); diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c index 032fa9024b49..c7ca861a2733 100644 --- a/gcc/fortran/primary.c +++ b/gcc/fortran/primary.c @@ -1360,6 +1360,7 @@ match_actual_arg (gfc_expr **result) gfc_expr *e; char c; + gfc_gobble_whitespace (); where = gfc_current_locus; switch (gfc_match_name (name)) @@ -2820,10 +2821,10 @@ match_variable (gfc_expr **result, int equiv_flag, int host_flag) || gfc_current_state () == COMP_CONTAINS) host_flag = 0; + where = gfc_current_locus; m = gfc_match_sym_tree (&st, host_flag); if (m != MATCH_YES) return m; - where = gfc_current_locus; sym = st->n.sym;