From: Richard Guenther Date: Mon, 16 Jan 2006 09:40:16 +0000 (+0000) Subject: trans-expr.c (gfc_conv_function_call): Use fold_build2. X-Git-Tag: releases/gcc-4.2.0~4853 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f2ec06a70b07a1088921e3e8144c39177b98517;p=thirdparty%2Fgcc.git trans-expr.c (gfc_conv_function_call): Use fold_build2. 2006-01-16 Richard Guenther * trans-expr.c (gfc_conv_function_call): Use fold_build2. * trans-stmt.c (gfc_trans_goto): Likewise. Use build_int_cst. * trans.c (gfc_trans_runtime_check): Don't fold the condition again. From-SVN: r109745 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 29a4c77ffb07..17baa962b1fe 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2006-01-16 Richard Guenther + + * trans-expr.c (gfc_conv_function_call): Use fold_build2. + * trans-stmt.c (gfc_trans_goto): Likewise. Use build_int_cst. + * trans.c (gfc_trans_runtime_check): Don't fold the condition + again. + 2006-01-13 Steven G. Kargl PR fortran/25756 diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index dc2e8224843e..880994abcad6 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -1830,7 +1830,8 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, /* Check the data pointer hasn't been modified. This would happen in a function returning a pointer. */ tmp = gfc_conv_descriptor_data_get (info->descriptor); - tmp = build2 (NE_EXPR, boolean_type_node, tmp, info->data); + tmp = fold_build2 (NE_EXPR, boolean_type_node, + tmp, info->data); gfc_trans_runtime_check (tmp, gfc_strconst_fault, &se->pre); } se->expr = info->descriptor; diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index df93db618b28..44d5819861ae 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -162,7 +162,8 @@ gfc_trans_goto (gfc_code * code) assign_error = gfc_build_cstring_const ("Assigned label is not a target label"); tmp = GFC_DECL_STRING_LEN (se.expr); - tmp = build2 (NE_EXPR, boolean_type_node, tmp, integer_minus_one_node); + tmp = fold_build2 (NE_EXPR, boolean_type_node, tmp, + build_int_cst (TREE_TYPE (tmp), -1)); gfc_trans_runtime_check (tmp, assign_error, &se.pre); assigned_goto = GFC_DECL_ASSIGN_ADDR (se.expr); diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index f1c0e02a3003..08aeef78d0cf 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -308,8 +308,6 @@ gfc_trans_runtime_check (tree cond, tree msg, stmtblock_t * pblock) tree tmp; tree args; - cond = fold (cond); - if (integer_zerop (cond)) return;