http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56786
Bug #: 56786
Summary: [4.6/4.7/4.8/4.9 Regression] Namelist read fails with
designators containing embedded spaces
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libfortran
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected], [email protected]
Blocks: 56744
Split off from PR 52512.
The following program runs successfully with GCC 4.1, 4.3 and 4.5, but it fails
with GCC 4.6 to GCC 4.9. It also works with Crayftn, PGI and ifort.
The problem is the space in "i(3 )=". Strictly speaking, that is invalid but as
it worked before, others support it as well, and as ignoring spaces in
"name(...)" is nonambiguous, I believe that we should support it.
(F2008, "10.11.2 Name-value subsequences", paragraph 2 has: "Each designator
may be preceded and followed by one or more optional blanks but shall not
contain embedded blanks.")
integer :: i(3)
namelist /nml/ i
i = -42
open(99,status='scratch')
write(99,'(a)') '&nml i(3 ) = 5 /'
rewind(99)
read(99,nml=nml)
close(99)
write(*,nml=nml)
if (i(1)/=-42 .or. i(2)/=-42 .or. i(3)/=5) call abort()
end