On 17/09/2012 20:45, Mikael Morin wrote: >> *************** resolve_fl_derived0 (gfc_symbol *sym) >> *** 12282,12289 **** >> --- 12558,12574 ---- >> || c->attr.proc_pointer >> || c->attr.allocatable)) == FAILURE) >> return FAILURE; >> + >> + if (c->ts.type == BT_DERIVED >> + && c->ts.u.derived->f2k_derived >> + && c->ts.u.derived->f2k_derived->tb_op[INTRINSIC_ASSIGN]) >> + sym->attr.defined_assign_comp = 1; >> } >> >> + if (super_type) >> + sym->attr.defined_assign_comp >> + = super_type->attr.defined_assign_comp; > I guess Tobias' reported bug is here. The flag shouldn't be cleared > here if it was set just before.
Or maybe it is just before, as it doesn't check c->ts.u.derived->attr.defined_assign_comp