1! { dg-do compile }
2! PR fortran/33646
3!
4!
5
6module BAR_MODULE
7   implicit none
8   private
9   public    create_
10   interface create_
11      module procedure create
12   end interface
13   type system_type
14       integer(kind=kind(1)) :: max_memory_used
15   end type
16
17contains
18
19   subroutine create(self)
20    type(system_type) :: self
21      pointer :: self
22      allocate(self)
23   end subroutine
24
25end
26
27module FOO_MODULE
28   use BAR_MODULE
29   implicit none
30   private
31   public    create_
32   interface create_
33      module procedure create
34   end interface
35
36   public    create_copy_
37   interface create_copy_
38      module procedure create_copy
39   end interface
40contains
41
42   subroutine create(self)
43    character(*) :: self
44      pointer :: self
45      nullify(self)
46      allocate(self)
47
48      self = " "
49   end subroutine
50
51   subroutine create_copy(self,s)
52    character(*) :: self
53      pointer :: self
54      character(*) :: s
55      call create_(self)
56   end subroutine
57end
58