1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
! RUN: %python %S/../test_errors.py %s %flang -fopenmp
! OpenMP Version 5.1
! Check OpenMP construct validity for the following directives:
! 2.19.9 Ordered Construct
subroutine sub1()
integer :: i, j, N = 10
real :: arrayA(10), arrayB(10)
real, external :: foo, bar
!$omp ordered
arrayA(i) = foo(i)
!$omp end ordered
!$omp ordered threads
arrayA(i) = foo(i)
!$omp end ordered
!$omp ordered simd
arrayA(i) = foo(i)
!$omp end ordered
!$omp sections
do i = 1, N
!$omp ordered
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end sections
!$omp do ordered
do i = 1, N
arrayB(i) = bar(i)
!$omp ordered
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end do
!$omp sections
do i = 1, N
!ERROR: An ORDERED directive with SIMD clause must be closely nested in a SIMD or worksharing-loop SIMD region
!$omp ordered simd
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end sections
!$omp do ordered
do i = 1, N
!$omp parallel
do j = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a SIMD, worksharing-loop, or worksharing-loop SIMD region
!$omp ordered
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end parallel
end do
!$omp end do
!$omp do ordered
do i = 1, N
!$omp target parallel
do j = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a SIMD, worksharing-loop, or worksharing-loop SIMD region
!$omp ordered
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end target parallel
end do
!$omp end do
!$omp do
do i = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
!$omp ordered
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end do
!$omp do
do i = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
!$omp ordered threads
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end do
!$omp do ordered(1)
do i = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
!$omp ordered
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end do
!$omp do ordered(1)
do i = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
!$omp ordered threads
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end do
!$omp parallel do ordered(1)
do i = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
!$omp ordered
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end parallel do
!$omp parallel do ordered(1)
do i = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
!$omp ordered threads
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end parallel do
!$omp target parallel do ordered(1)
do i = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
!$omp ordered
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end target parallel do
!$omp target parallel do ordered(1)
do i = 1, N
!ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
!$omp ordered threads
arrayA(i) = foo(i)
!$omp end ordered
end do
!$omp end target parallel do
end
|