! { dg-do compile } ! ! PR fortran/48887 ! ! "If the selector is allocatable, it shall be allocated; the ! associate name is associated with the data object and does ! not have the ALLOCATABLE attribute." ! module m type t end type t contains subroutine one(a) class(t), allocatable :: a class(t), allocatable :: b allocate (b) select type (b) type is(t) call move_alloc (b, a) ! { dg-error "must be ALLOCATABLE" } end select end subroutine one subroutine two (a) class(t), allocatable :: a type(t), allocatable :: b allocate (b) associate (c => b) call move_alloc (b, c) ! { dg-error "must be ALLOCATABLE" } end associate end subroutine two end module m type t end type t class(t), allocatable :: x select type(x) type is(t) print *, allocated (x) ! { dg-error "must be ALLOCATABLE" } end select select type(y=>x) type is(t) print *, allocated (y) ! { dg-error "must be ALLOCATABLE" } end select associate (y=>x) print *, allocated (y) ! { dg-error "must be ALLOCATABLE" } end associate end