diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2015-03-28 14:25:29 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2015-03-28 14:25:29 +0000 |
commit | 9ddb384381f34ef13cf665266a86687f63a9f29d (patch) | |
tree | c45fb630d394b9593ae104a0d50733604eeb08c4 | |
parent | d520fea881d6d6dc2b57e126651ec4711a3d0faa (diff) | |
download | gcc-9ddb384381f34ef13cf665266a86687f63a9f29d.zip gcc-9ddb384381f34ef13cf665266a86687f63a9f29d.tar.gz gcc-9ddb384381f34ef13cf665266a86687f63a9f29d.tar.bz2 |
re PR fortran/65596 (NAMELIST bug with f2003: reads too far)
2015-03-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/65596
* gfortran.dg/namelist_86.f90: New test.
From-SVN: r221756
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/namelist_86.f90 | 49 |
2 files changed, 54 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f8d2d5a..8f489ee 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-03-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libgfortran/65596 + * gfortran.dg/namelist_86.f90: New test. + 2015-03-28 Andre Vehreschild <vehre@gmx.de> * gfortran.dg/unlimited_polymorphic_24.f03: Fixing copyright diff --git a/gcc/testsuite/gfortran.dg/namelist_86.f90 b/gcc/testsuite/gfortran.dg/namelist_86.f90 new file mode 100644 index 0000000..88d90d2 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_86.f90 @@ -0,0 +1,49 @@ +! { dg-do run } +! { dg-options "-std=f2003 -fall-intrinsics" } +! PR65596 Namelist reads too far. +integer ,parameter :: CL=80 +integer ,parameter :: AL=4 + +character(CL) :: mode +character(CL) :: cats(AL) +character(CL) :: dogs(AL) +character(CL) :: rslt(AL) +integer :: ierr, k + +namelist / theList / cats, dogs, mode + +open(27,status="scratch") + +write(27,'(A)') "&theList" +write(27,'(A)') " mode = 'on'" +write(27,'(A)') " dogs = 'Rover'," +write(27,'(A)') " 'Spot'" +write(27,'(A)') " cats = 'Fluffy'," +write(27,'(A)') " 'Hairball'" +write(27,'(A)') "/" +rewind(27) + +mode = 'off' +cats(:) = '________' +dogs(:) = '________' + +read (27, nml=theList, iostat=ierr) + +if (ierr .ne. 0) call abort + +rslt = ['Rover ','Spot ','________','________'] +if (any(dogs.ne.rslt)) call abort + +rslt = ['Fluffy ','Hairball','________','________'] +if (any(cats.ne.rslt)) call abort + +close(27) + +contains + +subroutine abort() + close(27) + stop 500 +end subroutine abort + +end |