2007-11-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Nov 2007 23:21:48 +0000 (23:21 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Nov 2007 23:21:48 +0000 (23:21 +0000)
PR libfortran/34291
* gfortran.dg/namelist_41.f90: New test.

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

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

index 8c1cf61..3c09a8d 100644 (file)
@@ -1,3 +1,8 @@
+2007-11-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/34291
+       * gfortran.dg/namelist_41.f90: New test.
+
 2007-11-30  Tom Tromey  <tromey@redhat.com>
 
        PR preprocessor/32868:
diff --git a/gcc/testsuite/gfortran.dg/namelist_41.f90 b/gcc/testsuite/gfortran.dg/namelist_41.f90
new file mode 100644 (file)
index 0000000..2d9a71a
--- /dev/null
@@ -0,0 +1,22 @@
+! { dg-do run }
+! PR34291 Segfault on &end in namelist expanded read of character
+  implicit none
+  character(len=10), dimension(2)  :: var
+  namelist /inx/ var
+  var = "goodbye"
+  open(unit=11, status='scratch')
+  write (11, *) "&inx"
+  write (11, *) "var(1)='hello'" 
+  write (11, *) "&end"
+  rewind (11)
+  read(11,nml=inx)
+  if (var(1) /= 'hello' .and. var(2) /= 'goodbye') call abort
+  var = "goodbye"
+  rewind (11)
+  write (11, *) "$inx"
+  write (11, *) "var(1)='hello'" 
+  write (11, *) "$end"
+  rewind (11)
+  read(11,nml=inx)
+  if (var(1) /= 'hello' .and. var(2) /= 'goodbye') call abort
+end