https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125761

--- Comment #5 from Jerry DeLisle <jvdelisle2 at gmail dot com> ---
(In reply to Mikael Morin from comment #4)
---snip---
> 
> We should try to have the GFC_CLASS_TYPE_P set on the type directly,
> otherwise we'll have to duplicate this condition everywhere the flag is used.
> 
> gfc_typenode_for_spec has:
> 
>     case BT_DERIVED:
>     case BT_CLASS:
>       basetype = gfc_get_derived_type (spec->u.derived, codim);
> 
>       if (spec->type == BT_CLASS)
>       GFC_CLASS_TYPE_P (basetype) = 1;
> 
> The generation of class descriptors as additional symbols has its downsides,
> but here it could help us as it makes polymorphic derived types (i.e.
> class(...)) use a separate symbol different from regular derived types.  So
> gfc_get_derived_type in the snippet above could return a type with the
> GFC_CLASS_TYPE_P flag already set. I think it would be set basically when
> the derived type symbol has the is_class attribute.

Good point, I will adjust and see what happens.

Reply via email to