This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [PATCH] Add some missing folding in gfc_trans_do
- From: Tobias Schlüter <tobias dot schlueter at physik dot uni-muenchen dot de>
- To: Fortran List <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 20 Aug 2009 21:04:16 +0200
- Subject: Re: [PATCH] Add some missing folding in gfc_trans_do
- References: <4A8D99FD.7050609@physik.uni-muenchen.de>
Tobias Schlüter wrote:
I'm going to submit this patch under the obviously correct rule. It
You can find the patch in r150969 or below.
Cheers,
- Tobi
2009-08-19 Tobias Schlüter <tobi@gcc.gnu.org>
* trans-stmt.c (gfc_trans_do): Add a few missing folds.
Index: gcc/fortran/trans-stmt.c
===================================================================
--- gcc/fortran/trans-stmt.c (revision 150943)
+++ gcc/fortran/trans-stmt.c (working copy)
@@ -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);