From 1387b266a932cf9eae903fc59a659b842a6d0e3f Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Mon, 26 May 2014 15:32:33 +0000 Subject: [PATCH] re PR fortran/55117 (Programs fails to read namelist (contains derived types objects)) 2014-05-26 Jerry DeLisle PR libgfortran/55117 * gfortran.dg/namelist_85.f90: New test. From-SVN: r210935 --- gcc/testsuite/ChangeLog | 5 ++ gcc/testsuite/gfortran.dg/namelist_85.f90 | 66 +++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/namelist_85.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c2c2f6a363f7..63b44daaf0b2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-05-26 Jerry DeLisle + + PR libgfortran/55117 + * gfortran.dg/namelist_85.f90: New test. + 2014-05-26 Igor Zamyatin PR c/61191 diff --git a/gcc/testsuite/gfortran.dg/namelist_85.f90 b/gcc/testsuite/gfortran.dg/namelist_85.f90 new file mode 100644 index 000000000000..17752856ad3c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_85.f90 @@ -0,0 +1,66 @@ +! { dg-do run } +! { dg-options -std=gnu } +! PR55117 Programs fails namelist read (contains derived types objects) +program test_type_extension + + type tk_t + real :: x + end type tk_t + + type, extends(tk_t) :: tke_t + character(8) :: string + end type tke_t + + type, extends(tke_t) :: deep + integer :: int1 + real :: y + character(10) :: the_name + end type deep + + type other + integer :: one_oh + integer :: two_oh + end type other + + type plain_type + integer :: var1 + type(other) :: var2 + real :: var3 + end type plain_type + + type some_other + complex :: varx + type(tke_t) :: tke + type (plain_type) :: varpy + real :: vary + end type some_other + + type(deep) :: trouble + type(some_other) :: somethinelse + type(tke_t) :: tke + integer :: answer + + namelist /test_NML/ trouble, somethinelse, tke, answer + + tke%x = 0.0 + tke%string = "xxxxxxxx" + answer = 5 + trouble%x = 5.34 + trouble%y = 4.25 + trouble%string = "yyyy" + trouble%the_name = "mischief" + + open(10, status="scratch") + + write(10,*) "&TEST_NML" + write(10,*) "TKE%X= 3.14 ," + write(10,*) "TKE%STRING='kf7rcc'," + write(10,*) "ANSWER= 42," + write(10,*) "/" + rewind(10) + + read(10,NML=test_NML) + if (tke%x - 3.14000010 > .00001) call abort + if (tke%string /= "kf7rcc") call abort + if (answer /= 42) call abort ! hitchkikers guide to the galaxy +end program test_type_extension -- 2.47.3