re PR fortran/26041 ([4.1]: FORTRAN compiler won't compile the valid code)
authorH.J. Lu <hongjiu.lu@intel.com>
Sun, 5 Feb 2006 19:52:35 +0000 (19:52 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Sun, 5 Feb 2006 19:52:35 +0000 (11:52 -0800)
2006-02-05  H.J. Lu  <hongjiu.lu@intel.com>

PR fortran/26041
PR fortran/26064
* gfortran.dg/sibling_dummy_procedure_1.f90: New file.
* gfortran.dg/sibling_dummy_procedure_2.f90: Likewise.
* gfortran.dg/sibling_dummy_procedure_3.f90: Likewise.

From-SVN: r110618

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/sibling_dummy_procedure_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/sibling_dummy_procedure_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/sibling_dummy_procedure_3.f90 [new file with mode: 0644]

index fc1aa79..a654677 100644 (file)
@@ -1,3 +1,11 @@
+2006-02-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR fortran/26041
+       PR fortran/26064
+       * gfortran.dg/sibling_dummy_procedure_1.f90: New file.
+       * gfortran.dg/sibling_dummy_procedure_2.f90: Likewise.
+       * gfortran.dg/sibling_dummy_procedure_3.f90: Likewise.
+
 2006-02-05  Jakub Jelinek  <jakub@redhat.com>
 
        * gcc.dg/gomp/pr25990.c: Use __SIZE_TYPE__ instead of unsigned int
diff --git a/gcc/testsuite/gfortran.dg/sibling_dummy_procedure_1.f90 b/gcc/testsuite/gfortran.dg/sibling_dummy_procedure_1.f90
new file mode 100644 (file)
index 0000000..f18f291
--- /dev/null
@@ -0,0 +1,32 @@
+! { dg-do compile }
+! This checks the fix for PR 26041.
+!
+! Contributed by H.J. Lu  <hongjiu.lu@intel.com>
+module foo
+   public    bar_
+   interface bar_
+      module procedure bar
+   end interface
+   public    xxx_
+   interface xxx_
+      module procedure xxx
+   end interface
+contains
+   subroutine bar(self, z)
+      interface
+         function self(z) result(res)
+           real z
+            real(kind=kind(1.0d0)) :: res
+         end function
+      end interface
+   end subroutine
+   subroutine xxx(self,z)
+      interface
+         function self(z) result(res)
+           real z
+            real(kind=kind(1.0d0)) :: res
+         end function
+      end interface
+      call bar(self, z)
+   end subroutine
+end
diff --git a/gcc/testsuite/gfortran.dg/sibling_dummy_procedure_2.f90 b/gcc/testsuite/gfortran.dg/sibling_dummy_procedure_2.f90
new file mode 100644 (file)
index 0000000..031a537
--- /dev/null
@@ -0,0 +1,32 @@
+! { dg-do compile }
+! This checks the fix for PR 26041.
+!
+! Contributed by H.J. Lu  <hongjiu.lu@intel.com>
+module foo
+   public    bar_
+   interface bar_
+      module procedure bar
+   end interface
+   public    xxx_
+   interface xxx_
+      module procedure xxx
+   end interface
+contains
+   subroutine bar(self, z)
+      interface
+         function self(z) result(res)
+           real z
+            real(kind=kind(1.0d0)) :: res
+         end function
+      end interface
+   end subroutine
+   subroutine xxx(self,z)
+      interface
+         function self(z) result(res)
+           real z
+            real(kind=kind(1.0d0)) :: res
+         end function
+      end interface
+      call bar_(self, z)
+   end subroutine
+end
diff --git a/gcc/testsuite/gfortran.dg/sibling_dummy_procedure_3.f90 b/gcc/testsuite/gfortran.dg/sibling_dummy_procedure_3.f90
new file mode 100644 (file)
index 0000000..5f1391e
--- /dev/null
@@ -0,0 +1,18 @@
+! { dg-do compile }
+! This checks the fix for PR 26064
+!
+! Contributed by Sven Buijssen <sven.buijssen@math.uni-dortmund.de>
+module ice
+  implicit none
+  contains
+
+    subroutine foo()
+    contains
+
+      subroutine bar(baz)
+        integer, optional :: baz
+        if (present(baz)) then
+        endif
+      end subroutine bar
+    end subroutine foo
+end module