http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60718

--- Comment #8 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Bernd Edlinger from comment #6)
> maybe the test case is wrong, passing one flavor of object to
> another?
> -   class(node_type), target :: new_node          
> +   class(node_type), pointer, intent(in) :: new_node          

The code as is currently is perfectly valid.

gfortran generates for fixed-size arrays, those for nonallocatable/nonpointer
tyoes and for allocatable (both with TYPE_QUAL_RESTRICT for the address) and
pointer arrays different types - see gfc_build_array_type and for fixed-size
arrays gfc_get_nodesc_array_type.

And for polymorphic types, it wraps it in another struct type, one with the
pointer to the virtual table and one containing the array.

I think one solution would be to create a temporary variable of the target type
(here: nonallocatable) - and assign to that temporary variable.

Reply via email to