aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/primary.c
diff options
context:
space:
mode:
authorDaniel Franke <franke.daniel@gmail.com>2010-05-19 08:55:26 -0400
committerDaniel Franke <dfranke@gcc.gnu.org>2010-05-19 08:55:26 -0400
commit66faed764371fe6385d54d6e7dc0a9cb0fa5c67f (patch)
treed49ae3e63ba3e59b31cb9720298cce5bd6cf56f9 /gcc/fortran/primary.c
parent749aa96dabbb0fef0d81b382a49849186f907d95 (diff)
downloadgcc-66faed764371fe6385d54d6e7dc0a9cb0fa5c67f.zip
gcc-66faed764371fe6385d54d6e7dc0a9cb0fa5c67f.tar.gz
gcc-66faed764371fe6385d54d6e7dc0a9cb0fa5c67f.tar.bz2
re PR fortran/38404 (Warning message identifies incorrect line)
gcc/fortran/: 2010-05-19 Daniel Franke <franke.daniel@gmail.com> PR fortran/38404 * primary.c (match_string_constant): Move start_locus just inside the string. * data.c (create_character_intializer): Clarified truncation warning. gcc/testsuite/: 2010-05-19 Daniel Franke <franke.daniel@gmail.com> PR fortran/38404 * gfortran.dg/data_char_1.f90: Updated warning message. * gfortran.dg/data_array_6.f: New. From-SVN: r159561
Diffstat (limited to 'gcc/fortran/primary.c')
-rw-r--r--gcc/fortran/primary.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index c8ca3d4..09f4eb1 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -868,12 +868,11 @@ match_string_constant (gfc_expr **result)
gfc_gobble_whitespace ();
- start_locus = gfc_current_locus;
-
c = gfc_next_char ();
if (c == '\'' || c == '"')
{
kind = gfc_default_character_kind;
+ start_locus = gfc_current_locus;
goto got_delim;
}
@@ -917,12 +916,13 @@ match_string_constant (gfc_expr **result)
goto no_match;
gfc_gobble_whitespace ();
- start_locus = gfc_current_locus;
c = gfc_next_char ();
if (c != '\'' && c != '"')
goto no_match;
+ start_locus = gfc_current_locus;
+
if (kind == -1)
{
q = gfc_extract_int (sym->value, &kind);
@@ -976,7 +976,6 @@ got_delim:
e->ts.is_iso_c = 0;
gfc_current_locus = start_locus;
- gfc_next_char (); /* Skip delimiter */
/* We disable the warning for the following loop as the warning has already
been printed in the loop above. */