1! { dg-do run }
2!
3! LOCK/UNLOCK check
4!
5! PR fortran/18918
6!
7
8use iso_fortran_env
9implicit none
10
11type(lock_type) :: lock[*]
12integer :: stat
13logical :: acquired
14
15LOCK(lock)
16UNLOCK(lock)
17
18stat = 99
19LOCK(lock, stat=stat)
20if (stat /= 0) STOP 1
21stat = 99
22UNLOCK(lock, stat=stat)
23if (stat /= 0) STOP 2
24
25if (this_image() == 1) then
26  acquired = .false.
27  LOCK (lock[this_image()], acquired_lock=acquired)
28  if (.not. acquired) STOP 3
29  UNLOCK (lock[1])
30end if
31end
32
33