OSDN Git Service

2006-02-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Mar 2006 06:14:32 +0000 (06:14 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Mar 2006 06:14:32 +0000 (06:14 +0000)
PR libgfortran/26136
* gfortran.dg/namelist_23.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111598 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/namelist_23.f90 [new file with mode: 0644]

index 5b2507c..0b27651 100644 (file)
@@ -1,3 +1,8 @@
+2006-02-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/26136
+       * gfortran.dg/namelist_23.f90: New test.
+
 2006-02-28  Roger Sayle  <roger@eyesopen.com>
 
        PR middle-end/14752
diff --git a/gcc/testsuite/gfortran.dg/namelist_23.f90 b/gcc/testsuite/gfortran.dg/namelist_23.f90
new file mode 100644 (file)
index 0000000..70a0080
--- /dev/null
@@ -0,0 +1,53 @@
+!{ dg-do run }
+! PR26136 Filling logical variables from namelist read when object list is not
+! complete.  Test case derived from PR.
+! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+program read_logical
+   implicit none
+   logical, dimension(4) :: truely
+   integer, dimension(4) :: truely_a_very_long_variable_name
+   namelist /mynml/ truely
+   namelist /mynml/ truely_a_very_long_variable_name
+
+   truely = .false.
+   truely_a_very_long_variable_name = 0
+
+   open(10, status="scratch")
+   write(10,*) "&mynml"
+   write(10,*) "truely       = trouble,    traffic .true"
+   write(10,*) "truely_a_very_long_variable_name  = 4,      4,      4"
+   write(10,*) "/"
+   rewind(10)
+   read (10, nml=mynml, err = 1000)
+   if (.not.all(truely(1:3))) call abort()
+   if (.not.all(truely_a_very_long_variable_name(1:3).eq.4)) call abort()
+   
+   truely = .false.
+   truely_a_very_long_variable_name = 0
+
+   rewind(10)
+   write(10,*) "&mynml"
+   write(10,*) "truely       = .true., .true.,"
+   write(10,*) "truely_a_very_long_variable_name  = 4,      4,      4"
+   write(10,*) "/"
+   rewind(10)
+   read (10, nml=mynml, err = 1000)
+   if (.not.all(truely(1:2))) call abort()
+   if (.not.all(truely_a_very_long_variable_name(1:3).eq.4)) call abort()
+
+   truely = .true.
+   truely_a_very_long_variable_name = 0
+
+   rewind(10)
+   write(10,*) "&mynml"
+   write(10,*) "truely       = .false., .false.,"
+   write(10,*) "truely_a_very_long_variable_name  = 4,      4,      4"
+   write(10,*) "/"
+   rewind(10)
+   read (10, nml=mynml, err = 1000)
+   if (all(truely(1:2))) call abort()
+   if (.not.all(truely_a_very_long_variable_name(1:3).eq.4)) call abort()
+   close(10)
+   stop
+1000 call abort()
+end program read_logical