diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6e5dba07d78..3e921470bbf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-10-04 H.J. Lu + + PR fortran/33646 + * gfortran.dg/pr33646.f90: New file. + 2007-10-04 Francois-Xavier Coudert PR fortran/33529 diff --git a/gcc/testsuite/gfortran.dg/pr33646.f90 b/gcc/testsuite/gfortran.dg/pr33646.f90 new file mode 100644 index 00000000000..13f65cb06a5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr33646.f90 @@ -0,0 +1,59 @@ +! { dg-do compile } +! PR fortran/33646 +! +! + +module BAR_MODULE + implicit none + private + public create_ + interface create_ + module procedure create + end interface + type system_type + integer(kind=kind(1)) :: max_memory_used + end type + +contains + + subroutine create(self) + type(system_type) :: self + pointer :: self + allocate(self) + end subroutine + +end + +module FOO_MODULE + use BAR_MODULE + implicit none + private + public create_ + interface create_ + module procedure create + end interface + + public create_copy_ + interface create_copy_ + module procedure create_copy + end interface +contains + + subroutine create(self) + character(*) :: self + pointer :: self + nullify(self) + allocate(self) + + self = " " + end subroutine + + subroutine create_copy(self,s) + character(*) :: self + pointer :: self + character(*) :: s + call create_(self) + end subroutine +end + +! { dg-final { cleanup-modules "BAR_MODULE FOO_MODULE" } }