! { dg-do compile }
program p
type t
integer :: n = 0
integer, pointer :: q => null()
end type
type(t) :: x
print *, associated(x%q)
x = f()
print *, associated(x%q)
contains
function f() result (z) ! { dg-error "must be dummy, allocatable or pointer" }
class(t) :: z
print *, associated(z%q)
end
end