aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2006-02-05 19:52:35 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2006-02-05 11:52:35 -0800
commitc235e3884fbbf1a657fb2b2bfe1defa0b9fd8dd9 (patch)
tree9ec354cb4a9a4faea6ede2dd9c8c64a5f6538bee /gcc
parentc2a11bfcc0ddc8c7faa7a823e0fb1e139771b027 (diff)
downloadgcc-c235e3884fbbf1a657fb2b2bfe1defa0b9fd8dd9.zip
gcc-c235e3884fbbf1a657fb2b2bfe1defa0b9fd8dd9.tar.gz
gcc-c235e3884fbbf1a657fb2b2bfe1defa0b9fd8dd9.tar.bz2
re PR fortran/26041 ([4.1]: FORTRAN compiler won't compile the valid code)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gfortran.dg/sibling_dummy_procedure_1.f9032
-rw-r--r--gcc/testsuite/gfortran.dg/sibling_dummy_procedure_2.f9032
-rw-r--r--gcc/testsuite/gfortran.dg/sibling_dummy_procedure_3.f9018
4 files changed, 90 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fc1aa79..a654677 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..f18f291
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/sibling_dummy_procedure_1.f90
@@ -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
index 0000000..031a537
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/sibling_dummy_procedure_2.f90
@@ -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
index 0000000..5f1391e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/sibling_dummy_procedure_3.f90
@@ -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