diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2007-03-02 23:03:26 +0000 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2007-03-03 00:03:26 +0100 |
commit | 5115f4aab159775eb45a293e01908d716b73eeea (patch) | |
tree | 66afbf9f5ee054453c17e995d558773b4a7bdea4 | |
parent | 14b8969d485ac437d520adfda86d7ca4b5ff6e4f (diff) | |
download | gcc-5115f4aab159775eb45a293e01908d716b73eeea.zip gcc-5115f4aab159775eb45a293e01908d716b73eeea.tar.gz gcc-5115f4aab159775eb45a293e01908d716b73eeea.tar.bz2 |
re PR fortran/30873 ([4.1 only] ENTRY without explict RESULT does not work for recursive functions)
2007-03-02 Paul Thomas <pault@gcc.gnu.org>
Tobias Burnus <burnus@net-b.de>
PR fortran/30873
* decl.c (gfc_match_entry): Remove erroneous entry result check.
2007-03-02 Paul Thomas <pault@gcc.gnu.org>
Tobias Burnus <burnus@net-b.de>
PR fortran/30873
* gfortran.dg/entry_9.f90: New test.
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r122495
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/decl.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/entry_9.f90 | 31 |
4 files changed, 43 insertions, 6 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 9cd70d4..afd9d26 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-03-02 Paul Thomas <pault@gcc.gnu.org> + Tobias Burnus <burnus@net-b.de> + + PR fortran/30873 + * decl.c (gfc_match_entry): Remove erroneous entry result check. + 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com> * Make-lang.in: Add install-pdf target as copied from diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index aaa1157..f6ffc1d 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -3030,12 +3030,6 @@ gfc_match_entry (void) entry->result = result; } - - if (proc->attr.recursive && result == NULL) - { - gfc_error ("RESULT attribute required in ENTRY statement at %C"); - return MATCH_ERROR; - } } if (gfc_match_eos () != MATCH_YES) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cc6e940..e87707c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-03-02 Paul Thomas <pault@gcc.gnu.org> + Tobias Burnus <burnus@net-b.de> + + PR fortran/30873 + * gfortran.dg/entry_9.f90: New test. + 2007-03-02 Simon Martin <simartin@users.sourceforge.net> PR c++/28253 diff --git a/gcc/testsuite/gfortran.dg/entry_9.f90 b/gcc/testsuite/gfortran.dg/entry_9.f90 new file mode 100644 index 0000000..1daf49c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/entry_9.f90 @@ -0,0 +1,31 @@ +! { dg-do "run" } +! Check whether RESULT of ENTRY defaults to entry-name. +! PR fortran/30873 +! +! Contributed by Joost VandeVondele <jv244@cam.ac.uk> +! +MODULE M1 + CONTAINS + FUNCTION F2(K) + INTEGER :: F2,K + F2=E1(K) + END FUNCTION F2 + + RECURSIVE FUNCTION F1(I) + INTEGER :: F1,I,E1 + F1=F2(I) + RETURN + ENTRY E1(I) + E1=-I + RETURN + END FUNCTION F1 +END MODULE M1 + +program main + use m1 + if (E1(5) /= -5) call abort() + if (F2(4) /= -4) call abort() + if (F1(1) /= -1) call abort() +end program main + +! { dg-final { cleanup-modules "m1" } } |