https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61881
--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> --- The draft patch does not fully work: a) "class._data = desc" assignment is missing tmp = gfc_build_addr_expr (NULL_TREE, tmp); plus the moved gfc_add_modify works in the scalar case; for the array case, one additionally needs a prior gfc_conv_class_to_class call. b) It mishandles class(*) :: foo[*] dummy arguments for which wrongly an array descriptor is passed, one needs an additional && class_ts.u.derived->components->as->type == AS_ASSUMED_RANK