aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.c
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2018-10-01 14:27:17 +0000
committerPaul Thomas <pault@gcc.gnu.org>2018-10-01 14:27:17 +0000
commitb093d688daa4c6e131007aaa397a55489d5b7ccb (patch)
treeb9b1105ae05aabb4969bf2181c1660462e1e125f /gcc/fortran/trans-expr.c
parentfd5c626c681266845dbec0e84836823a5de3a45b (diff)
downloadgcc-b093d688daa4c6e131007aaa397a55489d5b7ccb.zip
gcc-b093d688daa4c6e131007aaa397a55489d5b7ccb.tar.gz
gcc-b093d688daa4c6e131007aaa397a55489d5b7ccb.tar.bz2
re PR fortran/65677 (Incomplete assignment on deferred-length character variable)
2018-10-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/65677 * trans-expr.c (gfc_trans_assignment_1): Set the 'identical' flag in the call to gfc_check_dependency. 2018-10-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/65677 * gfortran.dg/dependency_52.f90 : Expand the test to check both the call to adjustl and direct assignment of the substring. From-SVN: r264759
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r--gcc/fortran/trans-expr.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 9824848..37052b6 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -5281,7 +5281,7 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
/* See PR 41453. */
&& !e->symtree->n.sym->attr.dummy
/* FIXME - PR 87395 and PR 41453 */
- && e->symtree->n.sym->attr.save == SAVE_NONE
+ && e->symtree->n.sym->attr.save == SAVE_NONE
&& !e->symtree->n.sym->attr.associate_var
&& e->ts.type != BT_CHARACTER && e->ts.type != BT_DERIVED
&& e->ts.type != BT_CLASS && !sym->attr.elemental;
@@ -10208,7 +10208,7 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr * expr2, bool init_flag,
string_length = gfc_evaluate_now (rse.string_length, &rse.pre);
else if (expr2->ts.type == BT_CHARACTER)
{
- if (expr1->ts.deferred && gfc_check_dependency (expr1, expr2, false))
+ if (expr1->ts.deferred && gfc_check_dependency (expr1, expr2, true))
rse.string_length = gfc_evaluate_now (rse.string_length, &rse.pre);
string_length = rse.string_length;
}