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