diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index f928dfea29b2..dae27817de83 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-03-08 Paul Thomas + Tobias Burnus + + PR fortran/30873 + * decl.c (gfc_match_entry): Remove erroneous entry result check. + 2007-03-06 Daniel Franke Backport from trunk: diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 5c49c2557071..cb0b92186397 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -2887,12 +2887,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 d06cf6ff3087..e5746a9cd9ef 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-03-08 Paul Thomas + Tobias Burnus + + PR fortran/30873 + * gfortran.dg/entry_9.f90: New test. + 2007-03-08 Thomas Koenig PR libfortran/30981 diff --git a/gcc/testsuite/gfortran.dg/entry_9.f90 b/gcc/testsuite/gfortran.dg/entry_9.f90 new file mode 100644 index 000000000000..1daf49ce621a --- /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 +! +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" } }