From: Thomas Koenig Date: Tue, 3 Oct 2017 13:49:39 +0000 (+0000) Subject: io.c (match_wait_element): Correctly match END and EOR tags. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4f8d1d3268c6c1fe336e0cf7587355cd2eb671f0;p=gcc.git io.c (match_wait_element): Correctly match END and EOR tags. 2017-10-03 Thomas Koenig * io.c (match_wait_element): Correctly match END and EOR tags. * dump-parse-tree.c (show_code_node): Handle EXEC_WAIT. From-SVN: r253381 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0e7c7a8e787..6f904b1e735 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2017-10-03 Thomas Koenig + + * io.c (match_wait_element): Correctly match END and EOR tags. + * dump-parse-tree.c (show_code_node): Handle EXEC_WAIT. + 2017-10-02 Paul Thomas PR fortran/82312 diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c index a9107c15e59..a0098d70743 100644 --- a/gcc/fortran/dump-parse-tree.c +++ b/gcc/fortran/dump-parse-tree.c @@ -2727,6 +2727,41 @@ show_code_node (int level, gfc_code *c) fprintf (dumpfile, " EOR=%d", dt->eor->value); break; + case EXEC_WAIT: + fputs ("WAIT", dumpfile); + + if (c->ext.wait != NULL) + { + gfc_wait *wait = c->ext.wait; + if (wait->unit) + { + fputs (" UNIT=", dumpfile); + show_expr (wait->unit); + } + if (wait->iostat) + { + fputs (" IOSTAT=", dumpfile); + show_expr (wait->iostat); + } + if (wait->iomsg) + { + fputs (" IOMSG=", dumpfile); + show_expr (wait->iomsg); + } + if (wait->id) + { + fputs (" ID=", dumpfile); + show_expr (wait->id); + } + if (wait->err) + fprintf (dumpfile, " ERR=%d", wait->err->value); + if (wait->end) + fprintf (dumpfile, " END=%d", wait->end->value); + if (wait->eor) + fprintf (dumpfile, " EOR=%d", wait->eor->value); + } + break; + case EXEC_OACC_PARALLEL_LOOP: case EXEC_OACC_PARALLEL: case EXEC_OACC_KERNELS_LOOP: diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c index 2c3d761982b..af465dc00ea 100644 --- a/gcc/fortran/io.c +++ b/gcc/fortran/io.c @@ -4641,8 +4641,8 @@ match_wait_element (gfc_wait *wait) m = match_etag (&tag_unit, &wait->unit); RETM m = match_ltag (&tag_err, &wait->err); - RETM m = match_ltag (&tag_end, &wait->eor); - RETM m = match_ltag (&tag_eor, &wait->end); + RETM m = match_ltag (&tag_end, &wait->end); + RETM m = match_ltag (&tag_eor, &wait->eor); RETM m = match_etag (&tag_iomsg, &wait->iomsg); if (m == MATCH_YES && !check_char_variable (wait->iomsg)) return MATCH_ERROR;