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
This commit is contained in:
Jerry DeLisle 2015-03-28 14:25:29 +00:00
parent d520fea881
commit 9ddb384381
2 changed files with 54 additions and 0 deletions

View File

@ -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

View File

@ -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