diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index f5dd778b1ab..a57c207abfe 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2004-05-14 Tobias Schlueter + + * parse.c (gfc_statement_next_fixed): (Change from Andy's tree) + Detect bad continuation line in fixed form sources. + 2004-05-14 Tobias Schlueter PR fortran/15205 diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index 1ab5b6aa5cd..beec9d622ba 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -420,11 +420,20 @@ next_fixed (void) } /* Since this line starts a statement, it cannot be a continuation - of a previous statement. Hence we mostly ignore column 6. */ + of a previous statement. If we see something here besides a + space or zero, it must be a bad continuation line. */ - if (gfc_next_char_literal (0) == '\n') + c = gfc_next_char_literal (0); + if (c == '\n') goto blank_line; + if (c != ' ' && c!= '0') + { + gfc_buffer_error (0); + gfc_error ("Bad continuation line at %C"); + return ST_NONE; + } + /* Now that we've taken care of the statement label columns, we have to make sure that the first nonblank character is not a '!'. If it is, the rest of the line is a comment. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 216d3e8c205..eb609b05220 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-05-14 Tobias Schlueter + + * gfortran.fortran-torture/compile/noncontinuation_1.f90: New + test. + 2004-05-14 Tobias Schlueter PR fortran/14066 diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/noncontinuation_1.f90 b/gcc/testsuite/gfortran.fortran-torture/compile/noncontinuation_1.f90 new file mode 100644 index 00000000000..5921f014d22 --- /dev/null +++ b/gcc/testsuite/gfortran.fortran-torture/compile/noncontinuation_1.f90 @@ -0,0 +1,3 @@ +! verifies that 0 in column six doesn't start a continuation line +!234567890 + 0 END