blob: 001c6a435b39989229764f49fdcbec02aa5ab1e6 [file] [edit]
! RUN: %python %S/test_errors.py %s %flang_fc1
! Check there are no semantic errors in DEALLOCATE statements with EVENT_TYPE and LOCK_TYPE.
! CHECK-NOT: Object in DEALLOCATE statement is not deallocatable
subroutine deallocate_lock_event_type()
use iso_fortran_env
type oktype1
type(event_type), pointer :: event
type(lock_type), pointer :: lock
type(notify_type), pointer ::notify
end type
type oktype5
type(event_type), allocatable :: event
end type
type oktype2
type(event_type) :: event
end type
type oktype3
type(lock_type), allocatable :: lock
end type
type oktype4
type(lock_type) :: lock
end type
type oktype6
type(notify_type), allocatable :: notify
end type
type oktype7
type(notify_type) :: notify
end type
! Variable with event_type or lock_type have to be coarrays
! see C1604 and 1608.
type(oktype1), allocatable :: okt1[:]
type(oktype2), allocatable :: okt2[:]
type(oktype3), allocatable :: okt3[:]
type(oktype5), allocatable :: okt5[:]
class(oktype4), allocatable :: okt4[:]
type(oktype6), allocatable :: okt6[:]
type(oktype7), allocatable :: okt7[:]
type(event_type), allocatable :: event[:]
type(lock_type), allocatable :: lock(:)[:]
type(notify_type), allocatable :: notify[:]
if (.false.) then
deallocate(okt1)
deallocate(okt2)
deallocate(okt3)
deallocate(okt4)
deallocate(okt5)
deallocate(okt6)
deallocate(okt7)
deallocate(lock)
deallocate(event)
deallocate(notify)
endif
end subroutine