1! { dg-do run }
2!
3! PR 40594: [4.5 Regression] wrong-code
4!
5! Original test case by Daniel Franke <dfranke@gcc.gnu.org>
6! Modified by Janus Weil <janus@gcc.gnu.org>
7
8MODULE atom_types
9
10TYPE :: atom_list
11  TYPE(atom_private), DIMENSION(:), pointer :: table
12END TYPE
13
14TYPE :: atom_private
15  TYPE(atom_list) :: neighbours
16  LOGICAL         :: initialized = .true.
17END TYPE
18
19TYPE :: atom_model
20  TYPE(atom_list) :: atoms
21  integer         :: dummy
22END TYPE
23
24contains
25
26  SUBROUTINE init(this)
27    TYPE(atom_private) :: this
28    this%initialized = .FALSE.
29  END SUBROUTINE
30
31END MODULE
32
33
34program pr40594
35
36  USE atom_types
37  TYPE(atom_model) :: am
38  type(atom_private) :: ap
39
40  am%dummy = 0
41
42  call init(ap)
43  if (ap%initialized .neqv. .false.) call abort()
44
45END
46