aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/match.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/nullify_1.f11
4 files changed, 25 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index b701dc9..e3b2255 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2004-12-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/18993
+ * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
+ (gfc_match_nullify): Make sure that ')' is in front of the end of
+ statement.
+
2004-12-14 Richard Henderson <rth@redhat.com>
* gfortran.h (gfc_expr.function.name): Make const.
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index cf0c255..825120f 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -974,7 +974,7 @@ gfc_match_if (gfc_statement * if_type)
return MATCH_YES;
}
- if (gfc_match (" then %t") == MATCH_YES)
+ if (gfc_match (" then%t") == MATCH_YES)
{
new_st.op = EXEC_IF;
new_st.expr = expr;
@@ -1822,7 +1822,7 @@ gfc_match_nullify (void)
tail->expr = p;
tail->expr2 = e;
- if (gfc_match_char (')') == MATCH_YES)
+ if (gfc_match (" )%t") == MATCH_YES)
break;
if (gfc_match_char (',') != MATCH_YES)
goto syntax;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 449213d..58d4e78 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-12-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/18993
+ * gfotran.dg/nullify_1.f: New test.
+
2004-12-15 Richard Henderson <rth@redhat.com>
* gcc.target/i386/i386.exp: New harness.
diff --git a/gcc/testsuite/gfortran.dg/nullify_1.f b/gcc/testsuite/gfortran.dg/nullify_1.f
new file mode 100644
index 0000000..abf68c9
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/nullify_1.f
@@ -0,0 +1,11 @@
+C { dg-do compile }
+C PR 18993
+C we didn't match the end of statement following NULLIFY ()
+C this lead to weird error messages
+ subroutine ordern( )
+ real, pointer :: aux(:,:)
+C Nullify pointers
+ nullify(aux)
+C Set default sizes for order N arrays
+ end subroutine ordern
+