aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.c
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2006-12-21 13:59:57 +0000
committerPaul Thomas <pault@gcc.gnu.org>2006-12-21 13:59:57 +0000
commit5dba0fb8453e71c6f03f7a00b41016fc327f89f9 (patch)
tree2f27f438293ad3f36bf84e1596b786342734d958 /gcc/fortran/trans-expr.c
parent5075abae44d4c23e075a7210635306ea21e55305 (diff)
downloadgcc-5dba0fb8453e71c6f03f7a00b41016fc327f89f9.zip
gcc-5dba0fb8453e71c6f03f7a00b41016fc327f89f9.tar.gz
gcc-5dba0fb8453e71c6f03f7a00b41016fc327f89f9.tar.bz2
re PR fortran/30202 ([4.1 only] ICE in trans-array.c)
2006-12-21 Paul Thomas <pault@gcc.gnu.org> PR fortran/30202 * trans-array.c (gfc_conv_function_call): Use parmse.expr for the nullifying of intent(out) arguments rather than the backend declaration. 2006-12-21 Paul Thomas <pault@gcc.gnu.org> PR fortran/30202 * gfortran.dg/alloc_comp_basics_3.f90: New test. From-SVN: r120109
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r--gcc/fortran/trans-expr.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index bd79834..6d46cd4 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -2068,9 +2068,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
if (fsym && fsym->attr.allocatable
&& fsym->attr.intent == INTENT_OUT)
{
- tmp = e->symtree->n.sym->backend_decl;
- if (e->symtree->n.sym->attr.dummy)
- tmp = build_fold_indirect_ref (tmp);
+ tmp = build_fold_indirect_ref (parmse.expr);
tmp = gfc_trans_dealloc_allocated (tmp);
gfc_add_expr_to_block (&se->pre, tmp);
}