aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>2004-05-14 16:04:36 +0200
committerTobias Schlüter <tobi@gcc.gnu.org>2004-05-14 16:04:36 +0200
commit5b5afddf1d3af9d2512fb23f420c29baa7fa1fba (patch)
tree1b42e6e8d8f870eb9eef9d6ac3e7bb409cf3ad38
parent9bc856ddbfbb72ad01f2350ded06d7713781f645 (diff)
downloadgcc-5b5afddf1d3af9d2512fb23f420c29baa7fa1fba.zip
gcc-5b5afddf1d3af9d2512fb23f420c29baa7fa1fba.tar.gz
gcc-5b5afddf1d3af9d2512fb23f420c29baa7fa1fba.tar.bz2
parse.c (gfc_statement_next_fixed): (Change from Andy's tree) Detect bad continuation line in fixed form sources.
fortran: * parse.c (gfc_statement_next_fixed): (Change from Andy's tree) Detect bad continuation line in fixed form sources. testsuite: * gfortran.fortran-torture/compile/noncontinuation_1.f90: New test. From-SVN: r81845
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/parse.c13
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/compile/noncontinuation_1.f903
4 files changed, 24 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index f5dd778..a57c207 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,10 @@
2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+ * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
+ Detect bad continuation line in fixed form sources.
+
+2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+
PR fortran/15205
* iresolve.c (gfc_resolve_nearest): Add new function.
* intrinsic.h: ... declare it here.
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index 1ab5b6a..beec9d6 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 216d3e8..eb609b0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+ * gfortran.fortran-torture/compile/noncontinuation_1.f90: New
+ test.
+
+2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+
PR fortran/14066
* gfortran.fortran-torture/compile/do_1.f90: New test.
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 0000000..5921f01
--- /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