]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR libfortran/49791 (Formatted namelist reads fails with: Cannot match...
authorTobias Burnus <burnus@net-b.de>
Thu, 28 Jul 2011 05:38:54 +0000 (07:38 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Thu, 28 Jul 2011 05:38:54 +0000 (07:38 +0200)
2011-07-28  Tobias Burnus  <burnus@net-b.de>

        Backport from mainline
        2011-07-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/49791
        * io/list_read.c (nml_parse_qualifier): Remove check to
        enabled extended read for another case.

2011-07-28  Tobias Burnus  <burnus@net-b.de>

        Backported from mainline
        2011-07-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/49791
        * gfortran.dg/namelist_72.f: New.

From-SVN: r176857

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/namelist_72.f [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/io/list_read.c

index 13b73d7ad28c207fafe024020796acdc1f7b2642..2f0baf5443ce1d9fa79b1cae3ea8f23bfc4ddfa6 100644 (file)
@@ -1,3 +1,11 @@
+2011-07-28  Tobias Burnus  <burnus@net-b.de>
+
+       Backported from mainline
+       2011-07-23  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/49791
+       * gfortran.dg/namelist_72.f: New.
+
 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
 
        * gcc.target/i386/avx-os-support.h: New.
diff --git a/gcc/testsuite/gfortran.dg/namelist_72.f b/gcc/testsuite/gfortran.dg/namelist_72.f
new file mode 100644 (file)
index 0000000..22c0880
--- /dev/null
@@ -0,0 +1,33 @@
+! { dg-do run }
+!
+! PR fortran/49791
+!
+! Contributed by Elliott Sales de Andrade
+!
+      program namelist_test
+
+      dimension xpos(5000), ypos(5000)
+      namelist /geometry/ xpos, ypos
+
+      xpos = -huge(xpos)
+      ypos = -huge(ypos)
+
+      open(unit=4,file='geometry.in')
+      write(4,'(a)') '$geometry'
+      write(4,'(a)') ' xpos(1)= 0.00, 0.10, 0.20, 0.30, 0.40,'
+      write(4,'(a)') ' ypos(1)= 0.50, 0.60, 0.70, 0.80, 0.90,'
+      write(4,'(a)') '$end'
+
+      close(4)
+
+      open (unit=4,file='geometry.in',status='old',form='formatted')
+      read (4,geometry)
+      close(4, status='delete')
+
+      !print *, 'xpos', xpos(1:10), 'ypos', ypos(1:10)
+
+      if (any (xpos(1:5) /= [0.00, 0.10, 0.20, 0.30, 0.40]))call abort()
+      if (any (ypos(1:5) /= [0.50, 0.60, 0.70, 0.80, 0.90]))call abort()
+      if (any (xpos(6:) /= -huge(xpos))) call abort ()
+      if (any (ypos(6:) /= -huge(ypos))) call abort ()
+      end
index b3ec91eb705aa9bc83fba685e68875ab85639ac0..214d78c981bfba29c11f2235154684b8707ab6a4 100644 (file)
@@ -1,3 +1,12 @@
+2011-07-28  Tobias Burnus  <burnus@net-b.de>
+
+       Backport from mainline
+       2011-07-23  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/49791
+       * io/list_read.c (nml_parse_qualifier): Remove check to
+       enabled extended read for another case.
+
 2011-04-16  Release Manager
 
        * GCC 4.4.6 released.
index e560f1209b92ecc69b3e47511f63c926a519c650..d33eaa6fbea95bbcfe9efbe523fadd624008bc3f 100644 (file)
@@ -2079,7 +2079,6 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
                      do not allow excess data to be processed.  */
                  if (is_array_section == 1
                      || !(compile_options.allow_std & GFC_STD_GNU)
-                     || !dtp->u.p.ionml->touched
                      || dtp->u.p.ionml->type == GFC_DTYPE_DERIVED)
                    ls[dim].end = ls[dim].start;
                  else