aboutsummaryrefslogtreecommitdiff
path: root/gcc/f/ste.c
diff options
context:
space:
mode:
authorCraig Burley <burley@gnu.ai.mit.edu>1997-11-03 06:07:04 +0000
committerJeff Law <law@gcc.gnu.org>1997-11-02 23:07:04 -0700
commita2977d2db3aaf1a3912922a28e513baaf7e2e8a4 (patch)
treeb036c2c43d5fce9847860cef2ff7d2a6aa09f252 /gcc/f/ste.c
parentaf75269882c389f1abce41e732b27fdfedba1131 (diff)
downloadgcc-a2977d2db3aaf1a3912922a28e513baaf7e2e8a4.zip
gcc-a2977d2db3aaf1a3912922a28e513baaf7e2e8a4.tar.gz
gcc-a2977d2db3aaf1a3912922a28e513baaf7e2e8a4.tar.bz2
Important patch from Burley.
From-SVN: r16291
Diffstat (limited to 'gcc/f/ste.c')
-rw-r--r--gcc/f/ste.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/f/ste.c b/gcc/f/ste.c
index a5e9757..31ae6a4 100644
--- a/gcc/f/ste.c
+++ b/gcc/f/ste.c
@@ -395,12 +395,11 @@ ffeste_begin_iterdo_ (ffestw block, tree *xtvar, tree *xtincr,
/* Do the initial assignment into the DO var. */
- expr = ffecom_modify (void_type_node, tvar, tstart);
- expand_expr_stmt (expr);
+ tstart = ffecom_save_tree (tstart);
expr = ffecom_2 (MINUS_EXPR, TREE_TYPE (tvar),
tend,
- TREE_CONSTANT (tstart) ? tstart : tvar);
+ tstart);
if (!ffe_is_onetrip ())
{
@@ -439,6 +438,9 @@ ffeste_begin_iterdo_ (ffestw block, tree *xtvar, tree *xtincr,
expr = ffecom_modify (void_type_node, niters, expr);
expand_expr_stmt (expr);
+ expr = ffecom_modify (void_type_node, tvar, tstart);
+ expand_expr_stmt (expr);
+
if (block == NULL)
expand_start_loop_continue_elsewhere (0);
else