[Bug fortran/65596] New: [4.9 Regression] NAMELIST bug with f2003: reads too far

dominiq at lps dot ens.fr gcc-bugzilla@gcc.gnu.org
Fri Mar 27 10:19:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65596

            Bug ID: 65596
           Summary: [4.9 Regression] NAMELIST bug with f2003: reads too
                    far
           Product: gcc
           Version: 4.9.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dominiq at lps dot ens.fr
                CC: jvdelisle at gcc dot gnu.org

>From https://gcc.gnu.org/ml/fortran/2015-03/msg00138.html, the following test

integer ,parameter :: CL=80
integer ,parameter :: AL=4

character(CL) :: mode
character(CL) :: crats(AL)
character(CL) :: drogs(AL)
integer       :: ierr, k
character(CL) :: msg

namelist / theList / crats, drogs, mode

4 format (a4, "(", i1, ")='", a, "'")

msg     = 'none'
mode    = 'off'
crats(:) = '____'
drogs(:) = '____'

read (*, nml=theList, iomsg=msg, iostat=ierr)

print *, "ierr=",    ierr
print *, "message='"//trim(msg)//"'"

do k=1,AL
   print 4, "drogs", k, trim(drogs(k))
end do

print *, ""
do k=1,AL
   print 4, "crats", k, trim(crats(k))
end do

end

compiled with -std=f2003 and with the following input

 &theList
   mode      = 'on'
   drogs      = 'Grover',
               'Sprout'
   crats      = 'Flurry',
               'Hairball'
 /

gives the wrong output at run time

 ierr=          -1
 message='End of file'
drog(1)='Grover'
drog(2)='Sprout'
drog(3)='crats      = 'Flurry',
               'Hairball'
 /
'
drog(4)='____'

crat(1)='____'
crat(2)='____'
crat(3)='____'
crat(4)='____'

Revision r208241 (2014-03-01) is OK, r208311 (2014-03-04) is not (r208302 for
pr60148?). This appears to be fixed on trunk: wrong output at r215860
(2014-10-03) and r216098 (2014-10-10) is OK. I did not find obvious candidate
for the fix.



More information about the Gcc-bugs mailing list