diff options
Diffstat (limited to 'gcc/fortran/trans.c')
-rw-r--r-- | gcc/fortran/trans.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index 1232272..6964aa9 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -1,5 +1,5 @@ /* Code translation -- generate GCC trees from gfc_code. - Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. Contributed by Paul Brook @@ -278,8 +278,8 @@ gfc_build_addr_expr (tree type, tree t) tree type_domain = TYPE_DOMAIN (base_type); if (type_domain && TYPE_MIN_VALUE (type_domain)) min_val = TYPE_MIN_VALUE (type_domain); - t = build4 (ARRAY_REF, TREE_TYPE (type), t, min_val, - NULL_TREE, NULL_TREE); + t = fold (build4 (ARRAY_REF, TREE_TYPE (type), + t, min_val, NULL_TREE, NULL_TREE)); natural_type = type; } else @@ -296,7 +296,7 @@ gfc_build_addr_expr (tree type, tree t) { if (DECL_P (t)) TREE_ADDRESSABLE (t) = 1; - t = build1 (ADDR_EXPR, natural_type, t); + t = fold_build1 (ADDR_EXPR, natural_type, t); } if (type && natural_type != type) @@ -414,9 +414,9 @@ gfc_trans_runtime_check (tree cond, stmtblock_t * pblock, locus * where, number of arguments, we can't use build_call_expr directly. */ fntype = TREE_TYPE (gfor_fndecl_runtime_error_at); tmp = fold_builtin_call_array (TREE_TYPE (fntype), - build1 (ADDR_EXPR, - build_pointer_type (fntype), - gfor_fndecl_runtime_error_at), + fold_build1 (ADDR_EXPR, + build_pointer_type (fntype), + gfor_fndecl_runtime_error_at), nargs + 2, argarray); gfc_add_expr_to_block (&block, tmp); @@ -553,7 +553,7 @@ gfc_allocate_with_status (stmtblock_t * block, tree size, tree status) if (status != NULL_TREE && !integer_zerop (status)) { tmp = fold_build2 (MODIFY_EXPR, status_type, - build1 (INDIRECT_REF, status_type, status), + fold_build1 (INDIRECT_REF, status_type, status), build_int_cst (status_type, 0)); tmp = fold_build3 (COND_EXPR, void_type_node, fold_build2 (NE_EXPR, boolean_type_node, @@ -575,7 +575,7 @@ gfc_allocate_with_status (stmtblock_t * block, tree size, tree status) gfc_start_block (&set_status_block); gfc_add_modify_expr (&set_status_block, - build1 (INDIRECT_REF, status_type, status), + fold_build1 (INDIRECT_REF, status_type, status), build_int_cst (status_type, LIBERROR_ALLOCATION)); gfc_add_modify_expr (&set_status_block, res, build_int_cst (pvoid_type_node, 0)); @@ -606,7 +606,7 @@ gfc_allocate_with_status (stmtblock_t * block, tree size, tree status) cond = fold_build2 (EQ_EXPR, boolean_type_node, status, build_int_cst (status_type, 0)); tmp2 = fold_build2 (MODIFY_EXPR, status_type, - build1 (INDIRECT_REF, status_type, status), + fold_build1 (INDIRECT_REF, status_type, status), build_int_cst (status_type, LIBERROR_ALLOCATION)); tmp = fold_build3 (COND_EXPR, void_type_node, cond, tmp, tmp2); @@ -692,7 +692,7 @@ gfc_allocate_array_with_status (stmtblock_t * block, tree mem, tree size, gfc_add_modify_expr (&set_status_block, res, fold_convert (type, tmp)); gfc_add_modify_expr (&set_status_block, - build1 (INDIRECT_REF, status_type, status), + fold_build1 (INDIRECT_REF, status_type, status), build_int_cst (status_type, LIBERROR_ALLOCATION)); tmp = fold_build2 (EQ_EXPR, boolean_type_node, status, @@ -787,7 +787,7 @@ gfc_deallocate_with_status (tree pointer, tree status, bool can_fail) cond2 = fold_build2 (NE_EXPR, boolean_type_node, status, build_int_cst (TREE_TYPE (status), 0)); tmp = fold_build2 (MODIFY_EXPR, status_type, - build1 (INDIRECT_REF, status_type, status), + fold_build1 (INDIRECT_REF, status_type, status), build_int_cst (status_type, 1)); error = fold_build3 (COND_EXPR, void_type_node, cond2, tmp, error); } @@ -809,7 +809,7 @@ gfc_deallocate_with_status (tree pointer, tree status, bool can_fail) cond2 = fold_build2 (NE_EXPR, boolean_type_node, status, build_int_cst (TREE_TYPE (status), 0)); tmp = fold_build2 (MODIFY_EXPR, status_type, - build1 (INDIRECT_REF, status_type, status), + fold_build1 (INDIRECT_REF, status_type, status), build_int_cst (status_type, 0)); tmp = fold_build3 (COND_EXPR, void_type_node, cond2, tmp, build_empty_stmt ()); |