https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66089
--- Comment #11 from Mikael Morin <mikael at gcc dot gnu.org> ---
(In reply to vehre from comment #9)
> I am still wondering whether there isn't a counterexample where this is not
> working, i.e., we have lhs-rhs-dependency that is polymorphic. But because
> assignment to (allocatable) polymorphic entities is not allowed, I could not
> come up with one.
Same for me.
The following class variant of the test could fail if/when gfortran supports
assignment to polymorphic entities, I think.
It is currently simply rejected.
type :: t
integer :: c
end type t
type(t), dimension(5) :: a, b
class(t), dimension(:), allocatable :: c
a = t(1)
b = t(7)
allocate(c(5), source=t(13))
c = plus(c(1), b)
print *, c
if (any(c%c /= 20)) call abort
contains
elemental function plus(lhs, rhs)
class(t), intent(in) :: lhs, rhs
type(t) :: plus
plus%c = lhs%c + rhs%c
end function plus
end