===================================================================
@@ -4143,6 +4143,19 @@ init_intent_out_dt (gfc_symbol * proc_sym, gfc_wra
gfc_add_expr_to_block (&init, tmp);
}
+ else if (f->sym->attr.dummy && !f->sym->attr.dimension
+ && f->sym->attr.intent == INTENT_OUT
+ && !f->sym->attr.codimension && !f->sym->attr.allocatable
+ && (f->sym->ts.type != BT_CLASS
+ || (!CLASS_DATA (f->sym)->attr.dimension
+ && !(CLASS_DATA (f->sym)->attr.codimension
+ && CLASS_DATA (f->sym)->attr.allocatable))))
+ {
+ tree t1, t2;
+ t1 = build_fold_indirect_ref_loc (input_location,
f->sym->backend_decl);
+ t2 = build_clobber (TREE_TYPE (t1));
+ gfc_add_modify (&init, t1, t2);
+ }
gfc_add_init_cleanup (block, gfc_finish_block (&init), NULL_TREE);