summaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-io.c
diff options
context:
space:
mode:
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-05 05:28:37 +0000
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-05 05:28:37 +0000
commit3446c28b852b05b356bb0ef7bd323f5d5a82e805 (patch)
tree9ce142b33f6bfd6ae121c00b831210a43bbbf320 /gcc/fortran/trans-io.c
parentccc3182389d961c963fbc5146ce3cc4c2cbb08da (diff)
downloadgcc-3446c28b852b05b356bb0ef7bd323f5d5a82e805.tar.gz
2010-02-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/42309 * trans-expr.c (gfc_conv_subref_array_arg): Add new argument 'formal_ptr'. If this is true, give returned descriptor unity lbounds, in all dimensions, and the appropriate offset. (gfc_conv_procedure_call); If formal is a pointer, set the last argument of gfc_conv_subref_array_arg to true. * trans.h : Add last argument for gfc_conv_subref_array_arg. * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the new arg of gfc_conv_subref_array_arg to false. * trans-stmt.c (forall_make_variable_temp): The same. 2010-02-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/42309 * gfortran.dg/subref_array_pointer_4.f90 : New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156512 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-io.c')
-rw-r--r--gcc/fortran/trans-io.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c
index 690464edc84..30561bb168e 100644
--- a/gcc/fortran/trans-io.c
+++ b/gcc/fortran/trans-io.c
@@ -741,7 +741,7 @@ set_internal_unit (stmtblock_t * block, stmtblock_t * post_block,
/* Use a temporary for components of arrays of derived types
or substring array references. */
gfc_conv_subref_array_arg (&se, e, 0,
- last_dt == READ ? INTENT_IN : INTENT_OUT);
+ last_dt == READ ? INTENT_IN : INTENT_OUT, false);
tmp = build_fold_indirect_ref_loc (input_location,
se.expr);
se.expr = gfc_build_addr_expr (pchar_type_node, tmp);
@@ -2211,7 +2211,7 @@ gfc_trans_transfer (gfc_code * code)
if (seen_vector && last_dt == READ)
{
/* Create a temp, read to that and copy it back. */
- gfc_conv_subref_array_arg (&se, expr, 0, INTENT_OUT);
+ gfc_conv_subref_array_arg (&se, expr, 0, INTENT_OUT, false);
tmp = se.expr;
}
else