From bc7209375650d3a237838a994383b3bab3d03647 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Sun, 5 Jun 2016 19:49:59 +0000 Subject: [PATCH] re PR fortran/71404 (416.gamess in SPEC CPU 2006 failed to build) 2016-06-05 Jerry DeLisle 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. From-SVN: r237108 --- gcc/fortran/ChangeLog | 7 +++++++ gcc/fortran/io.c | 3 +++ 2 files changed, 10 insertions(+) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e6edc16ff19..b2354e7c203 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2016-06-05 Jerry DeLisle + + 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 PR fortran/69659 diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c index 204cce2e565..d538d845033 100644 --- a/gcc/fortran/io.c +++ b/gcc/fortran/io.c @@ -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; -- 2.30.2