! { dg-do compile }
!
! Test diagnostic for MOVE_ALLOC:
! FROM=type, TO=class is OK
! FROM=class, TO=type is INVALID
!
module m2
  type, abstract :: t2
  contains
    procedure(intf), deferred, nopass :: f
  end type t2

  interface
    function intf()
      import
      class(t2), allocatable :: intf
    end function intf
  end interface
end module m2

module m3
  use m2
  type, extends(t2) :: t3
  contains
    procedure,nopass :: f => my_f
  end type t3
contains
   function my_f()
     class(t2), allocatable :: my_f
   end function my_f
end module m3

subroutine my_test
use m3
type(t3), allocatable :: x
class(t2), allocatable :: y
call move_alloc (x, y)
end subroutine my_test

program testmv1
  type bar
  end type

  type, extends(bar) ::  bar2
  end type

  class(bar), allocatable :: sm
  type(bar2), allocatable :: sm2

  allocate (sm2)
  call move_alloc (sm,sm2) ! { dg-error "must be polymorphic if FROM is polymorphic" }

  if (allocated(sm2)) STOP 1
  if (.not. allocated(sm)) STOP 2
end program 
