1! { dg-do compile }
2! This tests a patch for a regression caused by the second part of
3! the fix for PR30554.  The linked derived types dummy_atom and
4! dummy_atom_list caused a segment fault because they do not have
5! a namespace.
6!
7! Contributed by Daniel Franke <franke.daniel@gmail.com>
8!
9MODULE types
10TYPE :: dummy_atom_list
11  TYPE(dummy_atom), DIMENSION(:), POINTER :: table => null()
12END TYPE
13
14TYPE :: dummy_atom
15  TYPE(dummy_atom_private), POINTER :: p => null()
16END TYPE
17
18TYPE :: dummy_atom_private
19  INTEGER                     :: id
20END TYPE
21END MODULE
22
23MODULE atom
24USE types, ONLY: dummy_atom
25INTERFACE
26  SUBROUTINE dummy_atom_insert_symmetry_mate(this, other)
27    USE types, ONLY: dummy_atom
28    TYPE(dummy_atom), INTENT(inout) :: this
29    TYPE(dummy_atom), INTENT(in)    :: other
30  END SUBROUTINE
31END INTERFACE
32END MODULE
33
34MODULE list
35INTERFACE
36  SUBROUTINE dummy_atom_list_insert(this, atom2)
37    USE types, ONLY: dummy_atom_list
38    USE atom, ONLY: dummy_atom
39
40    TYPE(dummy_atom_list), INTENT(inout) :: this
41    TYPE(dummy_atom), INTENT(in)         :: atom2
42  END SUBROUTINE
43END INTERFACE
44END MODULE
45