* trans-stmt.c (gfc_trans_do): Add a few missing folds.

From-SVN: r150969
This commit is contained in:
Tobias Schlüter 2009-08-20 20:47:51 +02:00
parent 6d383c5e70
commit 3110415b77
2 changed files with 8 additions and 4 deletions

View File

@ -1,3 +1,7 @@
2009-08-20 Tobias Schlüter <tobi@gcc.gnu.org>
* trans-stmt.c (gfc_trans_do): Add a few missing folds.
2009-08-20 Michael Matz <matz@suse.de>
PR fortran/41126

View File

@ -1017,8 +1017,8 @@ gfc_trans_do (gfc_code * code)
tmp = fold_convert (utype, tmp);
tmp = fold_build2 (TRUNC_DIV_EXPR, utype, tmp,
fold_convert (utype, step));
tmp = build2 (MODIFY_EXPR, void_type_node, countm1, tmp);
pos = build2 (COMPOUND_EXPR, void_type_node, pos, tmp);
tmp = fold_build2 (MODIFY_EXPR, void_type_node, countm1, tmp);
pos = fold_build2 (COMPOUND_EXPR, void_type_node, pos, tmp);
tmp = fold_build2 (GT_EXPR, boolean_type_node, to, from);
neg = fold_build3 (COND_EXPR, void_type_node, tmp,
@ -1029,8 +1029,8 @@ gfc_trans_do (gfc_code * code)
tmp = fold_build2 (TRUNC_DIV_EXPR, utype, tmp,
fold_convert (utype, fold_build1 (NEGATE_EXPR,
type, step)));
tmp = build2 (MODIFY_EXPR, void_type_node, countm1, tmp);
neg = build2 (COMPOUND_EXPR, void_type_node, neg, tmp);
tmp = fold_build2 (MODIFY_EXPR, void_type_node, countm1, tmp);
neg = fold_build2 (COMPOUND_EXPR, void_type_node, neg, tmp);
tmp = fold_build3 (COND_EXPR, void_type_node, pos_step, pos, neg);
gfc_add_expr_to_block (&block, tmp);