186 lines · plain
1! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp2! OpenMP Version 4.53! 2.7.1 Loop Construct4 5program omp6 integer i, j, k7 8 !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.9 !$omp do collapse(3)10 do i = 0, 1011 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct12 cycle13 do j = 0, 1014 do k = 0, 1015 print *, i, j, k16 end do17 end do18 end do19 !$omp end do20 21 !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.22 !$omp do collapse(3)23 do i = 0, 1024 do j = 0, 1025 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct26 cycle27 do k = 0, 1028 print *, i, j, k29 end do30 end do31 end do32 !$omp end do33 34 !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.35 !$omp do collapse(2)36 do i = 0, 1037 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct38 cycle39 do j = 0, 1040 do k = 0, 1041 print *, i, j, k42 end do43 end do44 end do45 !$omp end do46 47 48 !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.49 !$omp do collapse(2)50 foo: do i = 0, 1051 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct52 cycle foo53 do j = 0, 1054 do k = 0, 1055 print *, i, j, k56 end do57 end do58 end do foo59 !$omp end do60 61 62 !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.63 !$omp do collapse(3)64 do 60 i=1,1065 do j=1,1066 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct67 cycle68 do k=1,1069 print *,i70 end do71 end do72 60 continue73 !$omp end do74 75 !$omp do collapse(3)76 foo: do i = 0, 1077 foo1: do j = 0, 1078 foo2: do k = 0, 1079 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct80 cycle foo81 print *, i, j, k82 end do foo283 end do foo184 end do foo85 !$omp end do86 87 !$omp do collapse(3)88 foo: do i = 0, 1089 foo1: do j = 0, 1090 foo2: do k = 0, 1091 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct92 cycle foo193 print *, i, j, k94 end do foo295 end do foo196 end do foo97 !$omp end do98 99 100 !$omp do collapse(2)101 foo: do i = 0, 10102 foo1: do j = 0, 10103 foo2: do k = 0, 10104 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct105 cycle foo106 print *, i, j, k107 end do foo2108 end do foo1109 end do foo110 !$omp end do111 112 113 !$omp do collapse(2)114 foo: do i = 0, 10115 foo1: do j = 0, 10116 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct117 cycle foo118 foo2: do k = 0, 10119 print *, i, j, k120 end do foo2121 end do foo1122 end do foo123 !$omp end do124 125 !$omp do ordered(2)126 foo: do i = 0, 10127 foo1: do j = 0, 10128 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct129 cycle foo130 !ERROR: A worksharing region may not be closely nested inside a worksharing, explicit task, taskloop, critical, ordered, atomic, or master region131 !$omp do collapse(1)132 foo2: do k = 0, 10133 print *, i, j, k134 end do foo2135 !$omp end do136 end do foo1137 end do foo138 !$omp end do139 140 !$omp parallel141 !$omp do collapse(2)142 foo: do i = 0, 10143 foo1: do j = 0, 10144 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct145 cycle foo146 !$omp parallel147 !$omp do collapse(2)148 foo2: do k = 0, 10149 foo3: do l = 0, 10150 print *, i, j, k, l151 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct152 cycle foo2153 end do foo3154 end do foo2155 !$omp end do156 !$omp end parallel157 end do foo1158 end do foo159 !$omp end do160 !$omp end parallel161 162 !$omp parallel163 !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.164 !$omp parallel do ordered(3) collapse(2)165 foo: do i = 0, 10166 foo1: do j = 0, 10167 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct168 cycle foo169 !$omp parallel170 !$omp parallel do collapse(2)171 foo2: do k = 0, 10172 foo3: do l = 0, 10173 print *, i, j, k, l174 !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct175 cycle foo2176 end do foo3177 end do foo2178 !$omp end parallel do179 !$omp end parallel180 end do foo1181 end do foo182!$omp end parallel do183!$omp end parallel184 185end program omp186