diff options
author | Craig Burley <burley@gnu.ai.mit.edu> | 1997-11-03 06:07:04 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-11-02 23:07:04 -0700 |
commit | a2977d2db3aaf1a3912922a28e513baaf7e2e8a4 (patch) | |
tree | b036c2c43d5fce9847860cef2ff7d2a6aa09f252 /gcc/f/ste.c | |
parent | af75269882c389f1abce41e732b27fdfedba1131 (diff) | |
download | gcc-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.c | 8 |
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 |