From: Tobias Burnus Date: Fri, 19 Aug 2011 09:16:03 +0000 (+0200) Subject: backport: re PR fortran/50109 (Formatted namelist read with multiple "!" fails with... X-Git-Tag: releases/gcc-4.5.4~471 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a1668ad4dac565f033b4a4fb69532d2d44e3def;p=thirdparty%2Fgcc.git backport: re PR fortran/50109 (Formatted namelist read with multiple "!" fails with: Cannot match namelist object name !) 2011-08-19 Tobias Burnus Backport from mainline 2011-08-18 Tobias Burnus PR fortran/50109 * io/list_read.c (eat_separator): Fix skipping over "!" lines. 2011-08-19 Tobias Burnus Backport from mainline 2011-08-18 Tobias Burnus PR fortran/50109 * gfortran.dg/namelist_73.f90: New. From-SVN: r177893 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 040c6b8c2604..69d2ebf4321a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2011-08-19 Tobias Burnus + + Backport from mainline + 2011-08-18 Tobias Burnus + + PR fortran/50109 + * gfortran.dg/namelist_73.f90: New. + 2011-08-16 Paul Thomas PR fortran/42051 diff --git a/gcc/testsuite/gfortran.dg/namelist_73.f90 b/gcc/testsuite/gfortran.dg/namelist_73.f90 new file mode 100644 index 000000000000..8fc88aa1ed92 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_73.f90 @@ -0,0 +1,28 @@ +! { dg-do run } +! +! PR fortran/50109 +! +! Contributed by Jim Hanson +! + program namelist_test + + integer nfp + namelist /indata/ nfp + + nfp = 99 + open(unit=4, status='scratch') + write(4,'(a)') '$indata' + write(4,'(a)') 'NFP = 5,' + write(4,'(a)') "! " + write(4,'(a)') "! " + write(4,'(a)') "! " + write(4,'(a)') '/' + + rewind(4) + read (4,nml=indata) + close(4) + +! write(*,*) nfp + if (nfp /= 5) call abort() + + end diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index dfd286fe639d..a2da9b235d33 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,11 @@ +2011-08-19 Tobias Burnus + + Backport from mainline + 2011-08-18 Tobias Burnus + + PR fortran/50109 + * io/list_read.c (eat_separator): Fix skipping over "!" lines. + 2011-07-27 Tobias Burnus Backport from mainline diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index 14a0620b3370..a6a895a4e6c1 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -353,12 +353,7 @@ eat_separator (st_parameter_dt *dtp) if (c == '!') { eat_line (dtp); - c = next_char (dtp); - if (c == '!') - { - eat_line (dtp); - c = next_char (dtp); - } + c = '\n'; } } while (c == '\n' || c == '\r' || c == ' ' || c == '\t');