Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / gcc / testsuite / gfortran.dg / gomp / pr35786-1.f90
1 ! PR fortran/35786
2 ! { dg-do compile }
3 ! { dg-options "-fopenmp" }
4
5 module pr35768
6   real, parameter :: one = 1.0
7 contains
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
72 end module