From 93fc8073fc425f684cc58ac301464c1e90f2770d Mon Sep 17 00:00:00 2001
From: Richard Guenther <rguenther@suse.de>
Date: Tue, 13 Dec 2005 09:54:03 +0000
Subject: [PATCH] trans-expr.c (gfc_conv_substring): Use fold_build2 and
 build_int_cst.

2005-12-13  Richard Guenther  <rguenther@suse.de>

	* trans-expr.c (gfc_conv_substring): Use fold_build2 and
	build_int_cst.

From-SVN: r108476
---
 gcc/fortran/ChangeLog    |  5 +++++
 gcc/fortran/trans-expr.c | 11 +++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index ea1afe18cef1..cc6824bb8b21 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-13  Richard Guenther  <rguenther@suse.de>
+
+	* trans-expr.c (gfc_conv_substring): Use fold_build2 and
+	build_int_cst.
+
 2005-12-13  Richard Sandiford  <richard@codesourcery.com>
 
 	* Make-lang.in (fortran/trans-resolve.o): Depend on
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 5e1535e7ea36..7def3ad6e805 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -246,12 +246,11 @@ gfc_conv_substring (gfc_se * se, gfc_ref * ref, int kind)
       gfc_conv_expr_type (&end, ref->u.ss.end, gfc_charlen_type_node);
       gfc_add_block_to_block (&se->pre, &end.pre);
     }
-  tmp =
-    build2 (MINUS_EXPR, gfc_charlen_type_node,
-	    fold_convert (gfc_charlen_type_node, integer_one_node),
-	    start.expr);
-  tmp = build2 (PLUS_EXPR, gfc_charlen_type_node, end.expr, tmp);
-  se->string_length = fold (tmp);
+  tmp = fold_build2 (MINUS_EXPR, gfc_charlen_type_node,
+		     build_int_cst (gfc_charlen_type_node, 1),
+		     start.expr);
+  tmp = fold_build2 (PLUS_EXPR, gfc_charlen_type_node, end.expr, tmp);
+  se->string_length = tmp;
 }
 
 
-- 
GitLab