+2016-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * frontend-passes.c (create_var): Set ts.deferred for
+ deferred-length character variables.
+ * dump-parse-tree.c (show_typespec): Also dump
+ is_c_interop, is_iso_c and deferred flags.
+
2016-08-15 Jakub Jelinek <jakub@redhat.com>
PR debug/71906
fprintf (dumpfile, "%d", ts->kind);
break;
}
+ if (ts->is_c_interop)
+ fputs (" C_INTEROP", dumpfile);
+
+ if (ts->is_iso_c)
+ fputs (" ISO_C", dumpfile);
+
+ if (ts->deferred)
+ fputs (" DEFERRED", dumpfile);
fputc (')', dumpfile);
}
gfc_code *n;
gfc_namespace *ns;
int i;
+ bool deferred;
if (e->expr_type == EXPR_CONSTANT || is_fe_temp (e))
return gfc_copy_expr (e);
}
}
+ deferred = 0;
if (e->ts.type == BT_CHARACTER && e->rank == 0)
{
gfc_expr *length;
if (length)
symbol->ts.u.cl->length = length;
else
- symbol->attr.allocatable = 1;
+ {
+ symbol->attr.allocatable = 1;
+ deferred = 1;
+ }
}
symbol->attr.flavor = FL_VARIABLE;
result = gfc_get_expr ();
result->expr_type = EXPR_VARIABLE;
result->ts = e->ts;
+ result->ts.deferred = deferred;
result->rank = e->rank;
result->shape = gfc_copy_shape (e->shape, e->rank);
result->symtree = symtree;