diff options
author | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-07-27 09:03:41 +0000 |
---|---|---|
committer | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-07-27 09:03:41 +0000 |
commit | 5ef85f44456e3d948670e3a680d18b8910ffd601 (patch) | |
tree | e597a6323aaa378e401b7a239c210d0d88beae37 /gcc/fortran/trans-decl.c | |
parent | 3bde545b0fa12361dcdf19a0e987c74f439f0d52 (diff) | |
download | gcc-5ef85f44456e3d948670e3a680d18b8910ffd601.tar.gz |
2007-07-27 Paul Thomas <pault@gcc.gnu.org>
PR fortran/32903
* trans-decl.c (gfc_trans_deferred_vars): Set intent(out)
derived types as referenced, if they have the the default
initializer set.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126974 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r-- | gcc/fortran/trans-decl.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 6c6cba0a013..8a3b96814d8 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -2735,8 +2735,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, tree fnbody) /* If an INTENT(OUT) dummy of derived type has a default initializer, it must be initialized here. */ - if (f->sym && f->sym->attr.referenced - && f->sym->attr.intent == INTENT_OUT + if (f->sym && f->sym->attr.intent == INTENT_OUT && f->sym->ts.type == BT_DERIVED && !f->sym->ts.derived->attr.alloc_comp && f->sym->value) @@ -2744,6 +2743,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, tree fnbody) gfc_expr *tmpe; tree tmp, present; gcc_assert (!f->sym->attr.allocatable); + gfc_set_sym_referenced (f->sym); tmpe = gfc_lval_expr_from_sym (f->sym); tmp = gfc_trans_assignment (tmpe, f->sym->value, false); |