]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2016-06-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Jun 2016 19:49:59 +0000 (19:49 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Jun 2016 19:49:59 +0000 (19:49 +0000)
PR fortran/71404
* io.c (match_io): For READ, commit in pending symbols in the
current statement before trying to match an expression so that
if the match fails and we undo symbols we dont toss good symbols.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237108 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/io.c

index e6edc16ff19fca1cf23c8c6df02a30dcc01345dd..b2354e7c2030091c06ff65b4228b5f1fa7d6b02b 100644 (file)
@@ -1,3 +1,10 @@
+2016-06-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/71404
+       * io.c (match_io): For READ, commit in pending symbols in the
+       current statement before trying to match an expression so that
+       if the match fails and we undo symbols we dont toss good symbols.
+
 2016-06-05  Andre Vehreschild  <vehre@gcc.gnu.org>
 
        PR fortran/69659
index 204cce2e5656cecfc3cb88f9de919198669d11a8..d538d84503349675abc357a7a7a4a47a8139f7b7 100644 (file)
@@ -3772,6 +3772,9 @@ match_io (io_kind k)
            }
          if (k == M_READ)
            {
+             /* Commit any pending symbols now so that when we undo
+                symbols later we wont lose them.  */
+             gfc_commit_symbols ();
              /* Reset current locus to get the initial '(' in an expression.  */
              gfc_current_locus = where;
              dt->format_expr = NULL;