1! { dg-do run }
2
3  integer, allocatable :: a(:)
4  integer :: i
5  logical :: l
6  l = .false.
7  if (allocated (a)) stop 1
8!$omp parallel private (a) reduction (.or.:l)
9  allocate (a (-7:-5))
10  l = l.or..not.allocated (a)
11  l = l.or.size(a).ne.3.or.size(a,1).ne.3
12  a(:) = 0
13  !$omp do private (a)
14  do i = 1, 7
15    a(:) = i
16    l = l.or.any (a.ne.i)
17  end do
18  l = l.or.any (a.ne.0)
19  deallocate (a)
20!$omp end parallel
21  if (l.or.allocated (a)) stop 2
22end
23