This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, fortran] PR46897 - [OOP] type-bound defined ASSIGNMENT(=) not used for derived type component in intrinsic assign
- From: Mikael Morin <mikael dot morin at sfr dot fr>
- To: Paul Richard Thomas <paul dot richard dot thomas at gmail dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, "fortran at gcc dot gnu dot org" <fortran at gcc dot gnu dot org>, Tobias Burnus <burnus at net-b dot de>
- Date: Tue, 18 Sep 2012 09:55:24 +0200
- Subject: Re: [Patch, fortran] PR46897 - [OOP] type-bound defined ASSIGNMENT(=) not used for derived type component in intrinsic assign
- References: <CAGkQGiLUJSqmV-CdnbiK=iVMsfgP62a3X28kDsCsXUDjPTNa3A@mail.gmail.com> <50294461.2070704@sfr.fr> <CAGkQGiL9Y9b1JCYSE7ftv5J=WOfF80MTMhH3CaSrgKShD4JSjg@mail.gmail.com> <502A0F81.7060106@sfr.fr> <CAGkQGi+wqPFad_oZBOv3fCZFpr17rbA1B_kU5AC-d9NXwc3KOg@mail.gmail.com> <CAGkQGiKUfxLdbGaC0Xa=xs9BZiybvJBBvyjnEPLnoqrjyZUTyw@mail.gmail.com> <50576FE4.7040008@sfr.fr>
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