diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/match.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/nullify_1.f | 11 |
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 + |