Commit 3f2ec06a by Richard Guenther Committed by Richard Biener

trans-expr.c (gfc_conv_function_call): Use fold_build2.

2006-01-16  Richard Guenther  <rguenther@suse.de>

	* 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
parent cab2264d
2006-01-16 Richard Guenther <rguenther@suse.de>
* 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 <kargls@comcast.net> 2006-01-13 Steven G. Kargl <kargls@comcast.net>
PR fortran/25756 PR fortran/25756
......
...@@ -1830,7 +1830,8 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, ...@@ -1830,7 +1830,8 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
/* Check the data pointer hasn't been modified. This would /* Check the data pointer hasn't been modified. This would
happen in a function returning a pointer. */ happen in a function returning a pointer. */
tmp = gfc_conv_descriptor_data_get (info->descriptor); 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); gfc_trans_runtime_check (tmp, gfc_strconst_fault, &se->pre);
} }
se->expr = info->descriptor; se->expr = info->descriptor;
......
...@@ -162,7 +162,8 @@ gfc_trans_goto (gfc_code * code) ...@@ -162,7 +162,8 @@ gfc_trans_goto (gfc_code * code)
assign_error = assign_error =
gfc_build_cstring_const ("Assigned label is not a target label"); gfc_build_cstring_const ("Assigned label is not a target label");
tmp = GFC_DECL_STRING_LEN (se.expr); 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); gfc_trans_runtime_check (tmp, assign_error, &se.pre);
assigned_goto = GFC_DECL_ASSIGN_ADDR (se.expr); assigned_goto = GFC_DECL_ASSIGN_ADDR (se.expr);
......
...@@ -308,8 +308,6 @@ gfc_trans_runtime_check (tree cond, tree msg, stmtblock_t * pblock) ...@@ -308,8 +308,6 @@ gfc_trans_runtime_check (tree cond, tree msg, stmtblock_t * pblock)
tree tmp; tree tmp;
tree args; tree args;
cond = fold (cond);
if (integer_zerop (cond)) if (integer_zerop (cond))
return; return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment