diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/scanner.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/unexpected_eof_4.f90 | 8 |
4 files changed, 21 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a3e1f49..6dce4eb 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2016-10-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/77972 + * scanner.c (gfc_next_char_literal): If nextc is null do not + decrement the pointer and call the diagnostics. + 2016-10-14 Andre Vehreschild <vehre@gcc.gnu.org> * resolve.c (resolve_symbol): Add unimplemented message for diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c index be9c509..5e35535 100644 --- a/gcc/fortran/scanner.c +++ b/gcc/fortran/scanner.c @@ -1414,10 +1414,9 @@ restart: if (c != '&') { - if (in_string) + if (in_string && gfc_current_locus.nextc) { - if (gfc_current_locus.nextc) - gfc_current_locus.nextc--; + gfc_current_locus.nextc--; if (warn_ampersand && in_string == INSTRING_WARN) gfc_warning (OPT_Wampersand, "Missing %<&%> in continued character " diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0e48772..63eafa6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-10-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/77972 + * gfortran.dg/unexpected_eof_4.f90: New test. + 2016-10-15 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/48587 diff --git a/gcc/testsuite/gfortran.dg/unexpected_eof_4.f90 b/gcc/testsuite/gfortran.dg/unexpected_eof_4.f90 new file mode 100644 index 0000000..2832128 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/unexpected_eof_4.f90 @@ -0,0 +1,8 @@ +! { dg-do compile } +! { dg-options "-Wampersand" } +! PR77972 +program p + character(8) :: z + z = 'abc& +! { dg-error "Unterminated character constant" "" { target *-*-* } 0 } +! { dg-error "Unexpected end of file" "" { target *-*-* } 0 } |