Commit 488ce07b by Richard Guenther Committed by Richard Biener

(gfc_conv_descriptor_data_addr): Use build_fold_addr_expr where appropriate.

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

	(gfc_conv_descriptor_data_addr): Use build_fold_addr_expr where
	appropriate.
	(gfc_trans_allocate_array_storage): Likewise.
	(gfc_trans_array_constructor_value): Likewise.
	(gfc_conv_array_data): Likewise.
	(gfc_conv_expr_descriptor): Likewise.
	(gfc_conv_array_parameter): Likewise.
	(gfc_conv_variable): Likewise.
	(gfc_conv_function_val): Likewise.
	(gfc_conv_function_call): Likewise.
	(gfc_conv_expr_reference): Likewise.
	(gfc_conv_intrinsic_ctime): Likewise.
	(gfc_conv_intrinsic_fdate): Likewise.
	(gfc_conv_intrinsic_ttynam): Likewise.
	(gfc_conv_intrinsic_si_kind): Likewise.
	(gfc_conv_intrinsic_trim): Likewise.
	(set_parameter_ref): Likewise.
	(gfc_convert_array_to_string): Likewise.
	(gfc_trans_open): Likewise.
	(gfc_trans_close): Likewise.
	(build_filepos): Likewise.
	(gfc_trans_inquire): Likewise.
	(nml_get_addr_expr): Likewise.
	(transfer_namelist_element): Likewise.
	(build_dt): Likewise.
	(gfc_trans_dt_end): Likewise.
	(transfer_array_component): Likewise.
	(transfer_expr): Likewise.
	(transfer_array_desc): Likewise.
	(gfc_trans_transfer): Likewise.
	(gfc_trans_allocate): Likewise.
	(gfc_trans_deallocate): Likewise.

From-SVN: r108633
parent 52c6b0b7
2005-12-16 Richard Guenther <rguenther@suse.de>
(gfc_conv_descriptor_data_addr): Use build_fold_addr_expr where
appropriate.
(gfc_trans_allocate_array_storage): Likewise.
(gfc_trans_array_constructor_value): Likewise.
(gfc_conv_array_data): Likewise.
(gfc_conv_expr_descriptor): Likewise.
(gfc_conv_array_parameter): Likewise.
(gfc_conv_variable): Likewise.
(gfc_conv_function_val): Likewise.
(gfc_conv_function_call): Likewise.
(gfc_conv_expr_reference): Likewise.
(gfc_conv_intrinsic_ctime): Likewise.
(gfc_conv_intrinsic_fdate): Likewise.
(gfc_conv_intrinsic_ttynam): Likewise.
(gfc_conv_intrinsic_si_kind): Likewise.
(gfc_conv_intrinsic_trim): Likewise.
(set_parameter_ref): Likewise.
(gfc_convert_array_to_string): Likewise.
(gfc_trans_open): Likewise.
(gfc_trans_close): Likewise.
(build_filepos): Likewise.
(gfc_trans_inquire): Likewise.
(nml_get_addr_expr): Likewise.
(transfer_namelist_element): Likewise.
(build_dt): Likewise.
(gfc_trans_dt_end): Likewise.
(transfer_array_component): Likewise.
(transfer_expr): Likewise.
(transfer_array_desc): Likewise.
(gfc_trans_transfer): Likewise.
(gfc_trans_allocate): Likewise.
(gfc_trans_deallocate): Likewise.
2005-12-16 Kazu Hirata <kazu@codesourcery.com> 2005-12-16 Kazu Hirata <kazu@codesourcery.com>
* dependency.c, resolve.c, trans-array.c: Fix comment typos. * dependency.c, resolve.c, trans-array.c: Fix comment typos.
......
...@@ -188,7 +188,7 @@ gfc_conv_descriptor_data_addr (tree desc) ...@@ -188,7 +188,7 @@ gfc_conv_descriptor_data_addr (tree desc)
gcc_assert (DATA_FIELD == 0); gcc_assert (DATA_FIELD == 0);
t = build3 (COMPONENT_REF, TREE_TYPE (field), desc, field, NULL_TREE); t = build3 (COMPONENT_REF, TREE_TYPE (field), desc, field, NULL_TREE);
return gfc_build_addr_expr (NULL, t); return build_fold_addr_expr (t);
} }
tree tree
...@@ -519,7 +519,7 @@ gfc_trans_allocate_array_storage (stmtblock_t * pre, stmtblock_t * post, ...@@ -519,7 +519,7 @@ gfc_trans_allocate_array_storage (stmtblock_t * pre, stmtblock_t * post,
tmp = build_array_type (gfc_get_element_type (TREE_TYPE (desc)), tmp = build_array_type (gfc_get_element_type (TREE_TYPE (desc)),
tmp); tmp);
tmp = gfc_create_var (tmp, "A"); tmp = gfc_create_var (tmp, "A");
tmp = gfc_build_addr_expr (NULL, tmp); tmp = build_fold_addr_expr (tmp);
gfc_conv_descriptor_data_set (pre, desc, tmp); gfc_conv_descriptor_data_set (pre, desc, tmp);
} }
else else
...@@ -1159,8 +1159,8 @@ gfc_trans_array_constructor_value (stmtblock_t * pblock, tree type, ...@@ -1159,8 +1159,8 @@ gfc_trans_array_constructor_value (stmtblock_t * pblock, tree type,
tmp = gfc_conv_descriptor_data_get (desc); tmp = gfc_conv_descriptor_data_get (desc);
tmp = gfc_build_indirect_ref (tmp); tmp = gfc_build_indirect_ref (tmp);
tmp = gfc_build_array_ref (tmp, *poffset); tmp = gfc_build_array_ref (tmp, *poffset);
tmp = gfc_build_addr_expr (NULL, tmp); tmp = build_fold_addr_expr (tmp);
init = gfc_build_addr_expr (NULL, init); init = build_fold_addr_expr (init);
size = TREE_INT_CST_LOW (TYPE_SIZE_UNIT (type)); size = TREE_INT_CST_LOW (TYPE_SIZE_UNIT (type));
bound = build_int_cst (NULL_TREE, n * size); bound = build_int_cst (NULL_TREE, n * size);
...@@ -1670,7 +1670,7 @@ gfc_conv_array_data (tree descriptor) ...@@ -1670,7 +1670,7 @@ gfc_conv_array_data (tree descriptor)
else else
{ {
/* Descriptorless arrays. */ /* Descriptorless arrays. */
return gfc_build_addr_expr (NULL, descriptor); return build_fold_addr_expr (descriptor);
} }
} }
else else
...@@ -3830,7 +3830,7 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss) ...@@ -3830,7 +3830,7 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss)
{ {
/* We pass full arrays directly. This means that pointers and /* We pass full arrays directly. This means that pointers and
allocatable arrays should also work. */ allocatable arrays should also work. */
se->expr = gfc_build_addr_expr (NULL_TREE, desc); se->expr = build_fold_addr_expr (desc);
} }
else else
{ {
...@@ -3861,7 +3861,7 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss) ...@@ -3861,7 +3861,7 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss)
/* For pointer assignments pass the descriptor directly. */ /* For pointer assignments pass the descriptor directly. */
se->ss = secss; se->ss = secss;
se->expr = gfc_build_addr_expr (NULL, se->expr); se->expr = build_fold_addr_expr (se->expr);
gfc_conv_expr (se, expr); gfc_conv_expr (se, expr);
return; return;
} }
...@@ -4144,7 +4144,7 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss) ...@@ -4144,7 +4144,7 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss)
{ {
/* Get a pointer to the new descriptor. */ /* Get a pointer to the new descriptor. */
if (se->want_pointer) if (se->want_pointer)
se->expr = gfc_build_addr_expr (NULL, desc); se->expr = build_fold_addr_expr (desc);
else else
se->expr = desc; se->expr = desc;
} }
...@@ -4187,7 +4187,7 @@ gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, gfc_ss * ss, int g77) ...@@ -4187,7 +4187,7 @@ gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, gfc_ss * ss, int g77)
if (sym->attr.dummy || POINTER_TYPE_P (TREE_TYPE (tmp))) if (sym->attr.dummy || POINTER_TYPE_P (TREE_TYPE (tmp)))
se->expr = tmp; se->expr = tmp;
else else
se->expr = gfc_build_addr_expr (NULL, tmp); se->expr = build_fold_addr_expr (tmp);
return; return;
} }
if (sym->attr.allocatable) if (sym->attr.allocatable)
......
...@@ -355,7 +355,7 @@ gfc_conv_variable (gfc_se * se, gfc_expr * expr) ...@@ -355,7 +355,7 @@ gfc_conv_variable (gfc_se * se, gfc_expr * expr)
if (!sym->attr.dummy) if (!sym->attr.dummy)
{ {
gcc_assert (TREE_CODE (se->expr) == FUNCTION_DECL); gcc_assert (TREE_CODE (se->expr) == FUNCTION_DECL);
se->expr = gfc_build_addr_expr (NULL, se->expr); se->expr = build_fold_addr_expr (se->expr);
} }
return; return;
} }
...@@ -451,7 +451,7 @@ gfc_conv_variable (gfc_se * se, gfc_expr * expr) ...@@ -451,7 +451,7 @@ gfc_conv_variable (gfc_se * se, gfc_expr * expr)
if (expr->ts.type == BT_CHARACTER) if (expr->ts.type == BT_CHARACTER)
gfc_conv_string_parameter (se); gfc_conv_string_parameter (se);
else else
se->expr = gfc_build_addr_expr (NULL, se->expr); se->expr = build_fold_addr_expr (se->expr);
} }
} }
...@@ -1099,7 +1099,7 @@ gfc_conv_function_val (gfc_se * se, gfc_symbol * sym) ...@@ -1099,7 +1099,7 @@ gfc_conv_function_val (gfc_se * se, gfc_symbol * sym)
if (!POINTER_TYPE_P (TREE_TYPE (tmp))) if (!POINTER_TYPE_P (TREE_TYPE (tmp)))
{ {
gcc_assert (TREE_CODE (tmp) == FUNCTION_DECL); gcc_assert (TREE_CODE (tmp) == FUNCTION_DECL);
tmp = gfc_build_addr_expr (NULL, tmp); tmp = build_fold_addr_expr (tmp);
} }
} }
se->expr = tmp; se->expr = tmp;
...@@ -1590,7 +1590,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, ...@@ -1590,7 +1590,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
/* Scalar pointer dummy args require an extra level of /* Scalar pointer dummy args require an extra level of
indirection. The null pointer already contains indirection. The null pointer already contains
this level of indirection. */ this level of indirection. */
parmse.expr = gfc_build_addr_expr (NULL, parmse.expr); parmse.expr = build_fold_addr_expr (parmse.expr);
} }
} }
else else
...@@ -1674,7 +1674,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, ...@@ -1674,7 +1674,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
/* Pass the temporary as the first argument. */ /* Pass the temporary as the first argument. */
tmp = info->descriptor; tmp = info->descriptor;
tmp = gfc_build_addr_expr (NULL, tmp); tmp = build_fold_addr_expr (tmp);
retargs = gfc_chainon_list (retargs, tmp); retargs = gfc_chainon_list (retargs, tmp);
} }
else if (ts.type == BT_CHARACTER) else if (ts.type == BT_CHARACTER)
...@@ -1696,7 +1696,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, ...@@ -1696,7 +1696,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
var = gfc_create_var (build_pointer_type (tmp), "pstr"); var = gfc_create_var (build_pointer_type (tmp), "pstr");
/* Provide an address expression for the function arguments. */ /* Provide an address expression for the function arguments. */
var = gfc_build_addr_expr (NULL, var); var = build_fold_addr_expr (var);
} }
else else
var = gfc_conv_string_tmp (se, type, len); var = gfc_conv_string_tmp (se, type, len);
...@@ -1708,7 +1708,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, ...@@ -1708,7 +1708,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
gcc_assert (gfc_option.flag_f2c && ts.type == BT_COMPLEX); gcc_assert (gfc_option.flag_f2c && ts.type == BT_COMPLEX);
type = gfc_get_complex_type (ts.kind); type = gfc_get_complex_type (ts.kind);
var = gfc_build_addr_expr (NULL, gfc_create_var (type, "cmplx")); var = build_fold_addr_expr (gfc_create_var (type, "cmplx"));
retargs = gfc_chainon_list (retargs, var); retargs = gfc_chainon_list (retargs, var);
} }
...@@ -1736,7 +1736,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, ...@@ -1736,7 +1736,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
TREE_TYPE (sym->backend_decl) TREE_TYPE (sym->backend_decl)
= build_function_type (integer_type_node, = build_function_type (integer_type_node,
TYPE_ARG_TYPES (TREE_TYPE (sym->backend_decl))); TYPE_ARG_TYPES (TREE_TYPE (sym->backend_decl)));
se->expr = gfc_build_addr_expr (NULL, sym->backend_decl); se->expr = build_fold_addr_expr (sym->backend_decl);
} }
fntype = TREE_TYPE (TREE_TYPE (se->expr)); fntype = TREE_TYPE (TREE_TYPE (se->expr));
...@@ -2437,7 +2437,7 @@ gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr) ...@@ -2437,7 +2437,7 @@ gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr)
gfc_add_block_to_block (&se->pre, &se->post); gfc_add_block_to_block (&se->pre, &se->post);
/* Take the address of that value. */ /* Take the address of that value. */
se->expr = gfc_build_addr_expr (NULL, var); se->expr = build_fold_addr_expr (var);
} }
......
...@@ -1053,8 +1053,8 @@ gfc_conv_intrinsic_ctime (gfc_se * se, gfc_expr * expr) ...@@ -1053,8 +1053,8 @@ gfc_conv_intrinsic_ctime (gfc_se * se, gfc_expr * expr)
len = gfc_create_var (gfc_int8_type_node, "len"); len = gfc_create_var (gfc_int8_type_node, "len");
tmp = gfc_conv_intrinsic_function_args (se, expr); tmp = gfc_conv_intrinsic_function_args (se, expr);
arglist = gfc_chainon_list (NULL_TREE, gfc_build_addr_expr (NULL, var)); arglist = gfc_chainon_list (NULL_TREE, build_fold_addr_expr (var));
arglist = gfc_chainon_list (arglist, gfc_build_addr_expr (NULL, len)); arglist = gfc_chainon_list (arglist, build_fold_addr_expr (len));
arglist = chainon (arglist, tmp); arglist = chainon (arglist, tmp);
tmp = gfc_build_function_call (gfor_fndecl_ctime, arglist); tmp = gfc_build_function_call (gfor_fndecl_ctime, arglist);
...@@ -1089,8 +1089,8 @@ gfc_conv_intrinsic_fdate (gfc_se * se, gfc_expr * expr) ...@@ -1089,8 +1089,8 @@ gfc_conv_intrinsic_fdate (gfc_se * se, gfc_expr * expr)
len = gfc_create_var (gfc_int4_type_node, "len"); len = gfc_create_var (gfc_int4_type_node, "len");
tmp = gfc_conv_intrinsic_function_args (se, expr); tmp = gfc_conv_intrinsic_function_args (se, expr);
arglist = gfc_chainon_list (NULL_TREE, gfc_build_addr_expr (NULL, var)); arglist = gfc_chainon_list (NULL_TREE, build_fold_addr_expr (var));
arglist = gfc_chainon_list (arglist, gfc_build_addr_expr (NULL, len)); arglist = gfc_chainon_list (arglist, build_fold_addr_expr (len));
arglist = chainon (arglist, tmp); arglist = chainon (arglist, tmp);
tmp = gfc_build_function_call (gfor_fndecl_fdate, arglist); tmp = gfc_build_function_call (gfor_fndecl_fdate, arglist);
...@@ -1127,8 +1127,8 @@ gfc_conv_intrinsic_ttynam (gfc_se * se, gfc_expr * expr) ...@@ -1127,8 +1127,8 @@ gfc_conv_intrinsic_ttynam (gfc_se * se, gfc_expr * expr)
len = gfc_create_var (gfc_int4_type_node, "len"); len = gfc_create_var (gfc_int4_type_node, "len");
tmp = gfc_conv_intrinsic_function_args (se, expr); tmp = gfc_conv_intrinsic_function_args (se, expr);
arglist = gfc_chainon_list (NULL_TREE, gfc_build_addr_expr (NULL, var)); arglist = gfc_chainon_list (NULL_TREE, build_fold_addr_expr (var));
arglist = gfc_chainon_list (arglist, gfc_build_addr_expr (NULL, len)); arglist = gfc_chainon_list (arglist, build_fold_addr_expr (len));
arglist = chainon (arglist, tmp); arglist = chainon (arglist, tmp);
tmp = gfc_build_function_call (gfor_fndecl_ttynam, arglist); tmp = gfc_build_function_call (gfor_fndecl_ttynam, arglist);
...@@ -2721,7 +2721,7 @@ gfc_conv_intrinsic_si_kind (gfc_se * se, gfc_expr * expr) ...@@ -2721,7 +2721,7 @@ gfc_conv_intrinsic_si_kind (gfc_se * se, gfc_expr * expr)
args = gfc_conv_intrinsic_function_args (se, expr); args = gfc_conv_intrinsic_function_args (se, expr);
args = TREE_VALUE (args); args = TREE_VALUE (args);
args = gfc_build_addr_expr (NULL, args); args = build_fold_addr_expr (args);
args = tree_cons (NULL_TREE, args, NULL_TREE); args = tree_cons (NULL_TREE, args, NULL_TREE);
se->expr = gfc_build_function_call (gfor_fndecl_si_kind, args); se->expr = gfc_build_function_call (gfor_fndecl_si_kind, args);
} }
...@@ -2776,7 +2776,7 @@ gfc_conv_intrinsic_trim (gfc_se * se, gfc_expr * expr) ...@@ -2776,7 +2776,7 @@ gfc_conv_intrinsic_trim (gfc_se * se, gfc_expr * expr)
len = gfc_create_var (gfc_int4_type_node, "len"); len = gfc_create_var (gfc_int4_type_node, "len");
tmp = gfc_conv_intrinsic_function_args (se, expr); tmp = gfc_conv_intrinsic_function_args (se, expr);
arglist = gfc_chainon_list (arglist, gfc_build_addr_expr (NULL, len)); arglist = gfc_chainon_list (arglist, build_fold_addr_expr (len));
arglist = gfc_chainon_list (arglist, addr); arglist = gfc_chainon_list (arglist, addr);
arglist = chainon (arglist, tmp); arglist = chainon (arglist, tmp);
......
...@@ -414,7 +414,7 @@ set_parameter_ref (stmtblock_t *block, stmtblock_t *postblock, ...@@ -414,7 +414,7 @@ set_parameter_ref (stmtblock_t *block, stmtblock_t *postblock,
if (TYPE_MODE (TREE_TYPE (se.expr)) if (TYPE_MODE (TREE_TYPE (se.expr))
== TYPE_MODE (TREE_TYPE (TREE_TYPE (p->field)))) == TYPE_MODE (TREE_TYPE (TREE_TYPE (p->field))))
addr = convert (TREE_TYPE (p->field), addr = convert (TREE_TYPE (p->field),
gfc_build_addr_expr (NULL, se.expr)); build_fold_addr_expr (se.expr));
else else
{ {
/* The type used by the library has different size /* The type used by the library has different size
...@@ -423,7 +423,7 @@ set_parameter_ref (stmtblock_t *block, stmtblock_t *postblock, ...@@ -423,7 +423,7 @@ set_parameter_ref (stmtblock_t *block, stmtblock_t *postblock,
tree tmpvar tree tmpvar
= gfc_create_var (TREE_TYPE (TREE_TYPE (p->field)), = gfc_create_var (TREE_TYPE (TREE_TYPE (p->field)),
st_parameter_field[type].name); st_parameter_field[type].name);
addr = gfc_build_addr_expr (NULL, tmpvar); addr = build_fold_addr_expr (tmpvar);
tmp = convert (TREE_TYPE (se.expr), tmpvar); tmp = convert (TREE_TYPE (se.expr), tmpvar);
gfc_add_modify_expr (postblock, se.expr, tmp); gfc_add_modify_expr (postblock, se.expr, tmp);
} }
...@@ -491,7 +491,7 @@ gfc_convert_array_to_string (gfc_se * se, gfc_expr * e) ...@@ -491,7 +491,7 @@ gfc_convert_array_to_string (gfc_se * se, gfc_expr * e)
{ {
size = fold_build2 (MINUS_EXPR, gfc_array_index_type, size, size = fold_build2 (MINUS_EXPR, gfc_array_index_type, size,
TREE_OPERAND (se->expr, 1)); TREE_OPERAND (se->expr, 1));
se->expr = gfc_build_addr_expr (NULL, se->expr); se->expr = build_fold_addr_expr (se->expr);
} }
tmp = TYPE_SIZE_UNIT (gfc_get_element_type (type)); tmp = TYPE_SIZE_UNIT (gfc_get_element_type (type));
...@@ -797,7 +797,7 @@ gfc_trans_open (gfc_code * code) ...@@ -797,7 +797,7 @@ gfc_trans_open (gfc_code * code)
set_parameter_const (&block, var, IOPARM_common_flags, mask); set_parameter_const (&block, var, IOPARM_common_flags, mask);
tmp = gfc_build_addr_expr (NULL_TREE, var); tmp = build_fold_addr_expr (var);
tmp = gfc_chainon_list (NULL_TREE, tmp); tmp = gfc_chainon_list (NULL_TREE, tmp);
tmp = gfc_build_function_call (iocall[IOCALL_OPEN], tmp); tmp = gfc_build_function_call (iocall[IOCALL_OPEN], tmp);
gfc_add_expr_to_block (&block, tmp); gfc_add_expr_to_block (&block, tmp);
...@@ -850,7 +850,7 @@ gfc_trans_close (gfc_code * code) ...@@ -850,7 +850,7 @@ gfc_trans_close (gfc_code * code)
set_parameter_const (&block, var, IOPARM_common_flags, mask); set_parameter_const (&block, var, IOPARM_common_flags, mask);
tmp = gfc_build_addr_expr (NULL_TREE, var); tmp = build_fold_addr_expr (var);
tmp = gfc_chainon_list (NULL_TREE, tmp); tmp = gfc_chainon_list (NULL_TREE, tmp);
tmp = gfc_build_function_call (iocall[IOCALL_CLOSE], tmp); tmp = gfc_build_function_call (iocall[IOCALL_CLOSE], tmp);
gfc_add_expr_to_block (&block, tmp); gfc_add_expr_to_block (&block, tmp);
...@@ -901,7 +901,7 @@ build_filepos (tree function, gfc_code * code) ...@@ -901,7 +901,7 @@ build_filepos (tree function, gfc_code * code)
set_parameter_const (&block, var, IOPARM_common_flags, mask); set_parameter_const (&block, var, IOPARM_common_flags, mask);
tmp = gfc_build_addr_expr (NULL_TREE, var); tmp = build_fold_addr_expr (var);
tmp = gfc_chainon_list (NULL_TREE, tmp); tmp = gfc_chainon_list (NULL_TREE, tmp);
tmp = gfc_build_function_call (function, tmp); tmp = gfc_build_function_call (function, tmp);
gfc_add_expr_to_block (&block, tmp); gfc_add_expr_to_block (&block, tmp);
...@@ -1083,7 +1083,7 @@ gfc_trans_inquire (gfc_code * code) ...@@ -1083,7 +1083,7 @@ gfc_trans_inquire (gfc_code * code)
set_parameter_const (&block, var, IOPARM_common_flags, mask); set_parameter_const (&block, var, IOPARM_common_flags, mask);
tmp = gfc_build_addr_expr (NULL_TREE, var); tmp = build_fold_addr_expr (var);
tmp = gfc_chainon_list (NULL_TREE, tmp); tmp = gfc_chainon_list (NULL_TREE, tmp);
tmp = gfc_build_function_call (iocall[IOCALL_INQUIRE], tmp); tmp = gfc_build_function_call (iocall[IOCALL_INQUIRE], tmp);
gfc_add_expr_to_block (&block, tmp); gfc_add_expr_to_block (&block, tmp);
...@@ -1191,7 +1191,7 @@ nml_get_addr_expr (gfc_symbol * sym, gfc_component * c, ...@@ -1191,7 +1191,7 @@ nml_get_addr_expr (gfc_symbol * sym, gfc_component * c,
/* Now build the address expression. */ /* Now build the address expression. */
tmp = gfc_build_addr_expr (NULL, tmp); tmp = build_fold_addr_expr (tmp);
/* If scalar dummy, resolve indirect reference now. */ /* If scalar dummy, resolve indirect reference now. */
...@@ -1287,7 +1287,7 @@ transfer_namelist_element (stmtblock_t * block, const char * var_name, ...@@ -1287,7 +1287,7 @@ transfer_namelist_element (stmtblock_t * block, const char * var_name,
The call for the scalar part transfers: The call for the scalar part transfers:
(address, name, type, kind or string_length, dtype) */ (address, name, type, kind or string_length, dtype) */
dt_parm_addr = gfc_build_addr_expr (NULL_TREE, dt_parm); dt_parm_addr = build_fold_addr_expr (dt_parm);
NML_FIRST_ARG (dt_parm_addr); NML_FIRST_ARG (dt_parm_addr);
NML_ADD_ARG (addr_expr); NML_ADD_ARG (addr_expr);
NML_ADD_ARG (string); NML_ADD_ARG (string);
...@@ -1465,7 +1465,7 @@ build_dt (tree function, gfc_code * code) ...@@ -1465,7 +1465,7 @@ build_dt (tree function, gfc_code * code)
else else
set_parameter_const (&block, var, IOPARM_common_flags, mask); set_parameter_const (&block, var, IOPARM_common_flags, mask);
tmp = gfc_build_addr_expr (NULL_TREE, var); tmp = build_fold_addr_expr (var);
tmp = gfc_chainon_list (NULL_TREE, tmp); tmp = gfc_chainon_list (NULL_TREE, tmp);
tmp = gfc_build_function_call (function, tmp); tmp = gfc_build_function_call (function, tmp);
gfc_add_expr_to_block (&block, tmp); gfc_add_expr_to_block (&block, tmp);
...@@ -1544,7 +1544,7 @@ gfc_trans_dt_end (gfc_code * code) ...@@ -1544,7 +1544,7 @@ gfc_trans_dt_end (gfc_code * code)
gcc_unreachable (); gcc_unreachable ();
} }
tmp = gfc_build_addr_expr (NULL_TREE, dt_parm); tmp = build_fold_addr_expr (dt_parm);
tmp = gfc_chainon_list (NULL_TREE, tmp); tmp = gfc_chainon_list (NULL_TREE, tmp);
tmp = gfc_build_function_call (function, tmp); tmp = gfc_build_function_call (function, tmp);
gfc_add_expr_to_block (&block, tmp); gfc_add_expr_to_block (&block, tmp);
...@@ -1629,7 +1629,7 @@ transfer_array_component (tree expr, gfc_component * cm) ...@@ -1629,7 +1629,7 @@ transfer_array_component (tree expr, gfc_component * cm)
/* Now se.expr contains an element of the array. Take the address and pass /* Now se.expr contains an element of the array. Take the address and pass
it to the IO routines. */ it to the IO routines. */
tmp = gfc_build_addr_expr (NULL, se.expr); tmp = build_fold_addr_expr (se.expr);
transfer_expr (&se, &cm->ts, tmp); transfer_expr (&se, &cm->ts, tmp);
/* We are done now with the loop body. Wrap up the scalarizer and /* We are done now with the loop body. Wrap up the scalarizer and
...@@ -1720,7 +1720,7 @@ transfer_expr (gfc_se * se, gfc_typespec * ts, tree addr_expr) ...@@ -1720,7 +1720,7 @@ transfer_expr (gfc_se * se, gfc_typespec * ts, tree addr_expr)
else else
{ {
if (!c->pointer) if (!c->pointer)
tmp = gfc_build_addr_expr (NULL, tmp); tmp = build_fold_addr_expr (tmp);
transfer_expr (se, &c->ts, tmp); transfer_expr (se, &c->ts, tmp);
} }
} }
...@@ -1730,7 +1730,7 @@ transfer_expr (gfc_se * se, gfc_typespec * ts, tree addr_expr) ...@@ -1730,7 +1730,7 @@ transfer_expr (gfc_se * se, gfc_typespec * ts, tree addr_expr)
internal_error ("Bad IO basetype (%d)", ts->type); internal_error ("Bad IO basetype (%d)", ts->type);
} }
tmp = gfc_build_addr_expr (NULL_TREE, dt_parm); tmp = build_fold_addr_expr (dt_parm);
args = gfc_chainon_list (NULL_TREE, tmp); args = gfc_chainon_list (NULL_TREE, tmp);
args = gfc_chainon_list (args, addr_expr); args = gfc_chainon_list (args, addr_expr);
args = gfc_chainon_list (args, arg2); args = gfc_chainon_list (args, arg2);
...@@ -1757,7 +1757,7 @@ transfer_array_desc (gfc_se * se, gfc_typespec * ts, tree addr_expr) ...@@ -1757,7 +1757,7 @@ transfer_array_desc (gfc_se * se, gfc_typespec * ts, tree addr_expr)
kind_arg = build_int_cst (NULL_TREE, ts->kind); kind_arg = build_int_cst (NULL_TREE, ts->kind);
tmp = gfc_build_addr_expr (NULL_TREE, dt_parm); tmp = build_fold_addr_expr (dt_parm);
args = gfc_chainon_list (NULL_TREE, tmp); args = gfc_chainon_list (NULL_TREE, tmp);
args = gfc_chainon_list (args, addr_expr); args = gfc_chainon_list (args, addr_expr);
args = gfc_chainon_list (args, kind_arg); args = gfc_chainon_list (args, kind_arg);
...@@ -1812,7 +1812,7 @@ gfc_trans_transfer (gfc_code * code) ...@@ -1812,7 +1812,7 @@ gfc_trans_transfer (gfc_code * code)
{ {
/* Get the descriptor. */ /* Get the descriptor. */
gfc_conv_expr_descriptor (&se, expr, ss); gfc_conv_expr_descriptor (&se, expr, ss);
tmp = gfc_build_addr_expr (NULL, se.expr); tmp = build_fold_addr_expr (se.expr);
transfer_array_desc (&se, &expr->ts, tmp); transfer_array_desc (&se, &expr->ts, tmp);
goto finish_block_label; goto finish_block_label;
} }
......
...@@ -3135,7 +3135,7 @@ gfc_trans_allocate (gfc_code * code) ...@@ -3135,7 +3135,7 @@ gfc_trans_allocate (gfc_code * code)
tree gfc_int4_type_node = gfc_get_int_type (4); tree gfc_int4_type_node = gfc_get_int_type (4);
stat = gfc_create_var (gfc_int4_type_node, "stat"); stat = gfc_create_var (gfc_int4_type_node, "stat");
pstat = gfc_build_addr_expr (NULL, stat); pstat = build_fold_addr_expr (stat);
error_label = gfc_build_label_decl (NULL_TREE); error_label = gfc_build_label_decl (NULL_TREE);
TREE_USED (error_label) = 1; TREE_USED (error_label) = 1;
...@@ -3253,11 +3253,11 @@ gfc_trans_deallocate (gfc_code * code) ...@@ -3253,11 +3253,11 @@ gfc_trans_deallocate (gfc_code * code)
/* Variable used with the library call. */ /* Variable used with the library call. */
stat = gfc_create_var (gfc_int4_type_node, "stat"); stat = gfc_create_var (gfc_int4_type_node, "stat");
pstat = gfc_build_addr_expr (NULL, stat); pstat = build_fold_addr_expr (stat);
/* Running total of possible deallocation failures. */ /* Running total of possible deallocation failures. */
astat = gfc_create_var (gfc_int4_type_node, "astat"); astat = gfc_create_var (gfc_int4_type_node, "astat");
apstat = gfc_build_addr_expr (NULL, astat); apstat = build_fold_addr_expr (astat);
/* Initialize astat to 0. */ /* Initialize astat to 0. */
gfc_add_modify_expr (&block, astat, build_int_cst (TREE_TYPE (astat), 0)); gfc_add_modify_expr (&block, astat, build_int_cst (TREE_TYPE (astat), 0));
......
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