1! PR fortran/35786
2! { dg-do compile }
3! { dg-options "-fopenmp" }
4
5module pr35768
6  real, parameter :: one = 1.0
7contains
8  subroutine fn1
9    !$omp parallel firstprivate (one)	! { dg-error "is not a variable" }
10    !$omp end parallel
11  end subroutine fn1
12  subroutine fn2 (doit)
13    external doit
14    !$omp parallel firstprivate (doit)	! { dg-error "is not a variable" }
15      call doit ()
16    !$omp end parallel
17  end subroutine fn2
18  subroutine fn3
19    interface fn4
20      subroutine fn4 ()
21      end subroutine fn4
22    end interface
23    !$omp parallel private (fn4)	! { dg-error "is not a variable" }
24      call fn4 ()
25    !$omp end parallel
26  end subroutine fn3
27  subroutine fn5
28    interface fn6
29      function fn6 ()
30        integer :: fn6
31      end function fn6
32    end interface
33    integer :: x
34    !$omp parallel private (fn6, x)	! { dg-error "is not a variable" }
35      x = fn6 ()
36    !$omp end parallel
37  end subroutine fn5
38  function fn7 () result (re7)
39    integer :: re7
40    !$omp parallel private (fn7)	! { dg-error "is not a variable" }
41    !$omp end parallel
42  end function fn7
43  function fn8 () result (re8)
44    integer :: re8
45    call fn9
46  contains
47    subroutine fn9
48      !$omp parallel private (fn8)	! { dg-error "is not a variable" }
49      !$omp end parallel
50    end subroutine fn9
51  end function fn8
52  function fn10 () result (re10)
53    integer :: re10, re11
54    entry fn11 () result (re11)
55    !$omp parallel private (fn10)	! { dg-error "is not a variable" }
56    !$omp end parallel
57    !$omp parallel private (fn11)	! { dg-error "is not a variable" }
58    !$omp end parallel
59  end function fn10
60  function fn12 () result (re12)
61    integer :: re12, re13
62    entry fn13 () result (re13)
63    call fn14
64  contains
65    subroutine fn14
66      !$omp parallel private (fn12)	! { dg-error "is not a variable" }
67      !$omp end parallel
68      !$omp parallel private (fn13)	! { dg-error "is not a variable" }
69      !$omp end parallel
70    end subroutine fn14
71  end function fn12
72end module
73