re PR fortran/30873 ([4.1 only] ENTRY without explict RESULT does not work for recurs...
authorPaul Thomas <pault@gcc.gnu.org>
Fri, 2 Mar 2007 23:03:26 +0000 (23:03 +0000)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 2 Mar 2007 23:03:26 +0000 (00:03 +0100)
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

gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/entry_9.f90 [new file with mode: 0644]

index 9cd70d4de5a7433a2bc1a233f895b2b55bc71bd8..afd9d26b6554912e52ff05d217c16999b1f380c6 100644 (file)
@@ -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
index aaa11572adea9030aeb7f1be7882a5b354f59854..f6ffc1df7fe3710942f8c6ed0e0a277060309d9c 100644 (file)
@@ -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)
index cc6e940c5ca20c081a05c79e3093200f11cbece2..e87707c90d21f22665ab36bf167a0b33715affcc 100644 (file)
@@ -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 (file)
index 0000000..1daf49c
--- /dev/null
@@ -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" } }