1! { dg-do run  }
2! { dg-options -std=gnu }
3! PR55117  Programs fails namelist read (contains derived types objects)
4program test_type_extension
5
6  type tk_t
7     real :: x
8  end type tk_t
9
10  type, extends(tk_t) :: tke_t
11     character(8) :: string
12  end type tke_t
13
14  type, extends(tke_t) :: deep
15    integer :: int1
16    real :: y
17    character(10) :: the_name
18  end type deep
19
20  type other
21    integer :: one_oh
22    integer :: two_oh
23  end type other
24
25  type plain_type
26    integer :: var1
27    type(other) :: var2
28    real :: var3
29  end type plain_type
30
31  type some_other
32    complex :: varx
33    type(tke_t) :: tke
34    type (plain_type) :: varpy
35    real  :: vary
36  end type some_other
37
38  type(deep) :: trouble
39  type(some_other) :: somethinelse
40  type(tke_t) :: tke
41  integer :: answer
42
43  namelist /test_NML/ trouble, somethinelse, tke, answer
44
45  tke%x = 0.0
46  tke%string = "xxxxxxxx"
47  answer = 5
48  trouble%x = 5.34
49  trouble%y = 4.25
50  trouble%string = "yyyy"
51  trouble%the_name = "mischief"
52
53  open(10, status="scratch")
54
55  write(10,*) "&TEST_NML"
56  write(10,*) "TKE%X=  3.14    ,"
57  write(10,*) "TKE%STRING='kf7rcc',"
58  write(10,*) "ANSWER=          42,"
59  write(10,*) "/"
60  rewind(10)
61
62  read(10,NML=test_NML)
63  if (tke%x - 3.14000010 > .00001) STOP 1
64  if (tke%string /= "kf7rcc") STOP 2
65  if (answer /= 42) STOP 3! hitchkikers guide to the galaxy
66end program test_type_extension
67