! 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