1! { dg-do compile } 2! { dg-additional-options "-fmax-errors=100" } 3 4! tests async, num_gangs, num_workers, vector_length, gang, worker, vector clauses 5 6program test 7 implicit none 8 9 integer :: i 10 11 !$acc parallel async 12 !$acc end parallel 13 14 !$acc parallel async(3) 15 !$acc end parallel 16 17 !$acc parallel async(i) 18 !$acc end parallel 19 20 !$acc parallel async(i+1) 21 !$acc end parallel 22 23 !$acc parallel async(-1) 24 !$acc end parallel 25 26 !$acc parallel async(0) 27 !$acc end parallel 28 29 !$acc parallel async() ! { dg-error "Invalid character in name" } 30 31 !$acc parallel async(1.5) ! { dg-error "scalar INTEGER expression" } 32 !$acc end parallel 33 34 !$acc parallel async(.true.) ! { dg-error "scalar INTEGER expression" } 35 !$acc end parallel 36 37 !$acc parallel async("1") ! { dg-error "scalar INTEGER expression" } 38 !$acc end parallel 39 40 !$acc kernels async 41 !$acc end kernels 42 43 !$acc kernels async(3) 44 !$acc end kernels 45 46 !$acc kernels async(i) 47 !$acc end kernels 48 49 !$acc kernels async(i+1) 50 !$acc end kernels 51 52 !$acc kernels async(-1) 53 !$acc end kernels 54 55 !$acc kernels async(0) 56 !$acc end kernels 57 58 !$acc kernels async() ! { dg-error "Invalid character in name" } 59 60 !$acc kernels async(1.5) ! { dg-error "scalar INTEGER expression" } 61 !$acc end kernels 62 63 !$acc kernels async(.true.) ! { dg-error "scalar INTEGER expression" } 64 !$acc end kernels 65 66 !$acc kernels async("1") ! { dg-error "scalar INTEGER expression" } 67 !$acc end kernels 68 69 70 !$acc parallel num_gangs ! { dg-error "Failed to match clause" } 71 72 !$acc parallel num_gangs(3) 73 !$acc end parallel 74 75 !$acc parallel num_gangs(i) 76 !$acc end parallel 77 78 !$acc parallel num_gangs(i+1) 79 !$acc end parallel 80 81 !$acc parallel num_gangs(-1) ! { dg-warning "must be positive" } 82 !$acc end parallel 83 84 !$acc parallel num_gangs(0) ! { dg-warning "must be positive" } 85 !$acc end parallel 86 87 !$acc parallel num_gangs() ! { dg-error "Invalid character in name" } 88 89 !$acc parallel num_gangs(1.5) ! { dg-error "scalar INTEGER expression" } 90 !$acc end parallel 91 92 !$acc parallel num_gangs(.true.) ! { dg-error "scalar INTEGER expression" } 93 !$acc end parallel 94 95 !$acc parallel num_gangs("1") ! { dg-error "scalar INTEGER expression" } 96 !$acc end parallel 97 98 !$acc kernels num_gangs ! { dg-error "Failed to match clause" } 99 100 !$acc kernels num_gangs(3) 101 !$acc end kernels 102 103 !$acc kernels num_gangs(i) 104 !$acc end kernels 105 106 !$acc kernels num_gangs(i+1) 107 !$acc end kernels 108 109 !$acc kernels num_gangs(-1) ! { dg-warning "must be positive" } 110 !$acc end kernels 111 112 !$acc kernels num_gangs(0) ! { dg-warning "must be positive" } 113 !$acc end kernels 114 115 !$acc kernels num_gangs() ! { dg-error "Invalid character in name" } 116 117 !$acc kernels num_gangs(1.5) ! { dg-error "scalar INTEGER expression" } 118 !$acc end kernels 119 120 !$acc kernels num_gangs(.true.) ! { dg-error "scalar INTEGER expression" } 121 !$acc end kernels 122 123 !$acc kernels num_gangs("1") ! { dg-error "scalar INTEGER expression" } 124 !$acc end kernels 125 126 127 !$acc parallel num_workers ! { dg-error "Failed to match clause" } 128 129 !$acc parallel num_workers(3) 130 !$acc end parallel 131 132 !$acc parallel num_workers(i) 133 !$acc end parallel 134 135 !$acc parallel num_workers(i+1) 136 !$acc end parallel 137 138 !$acc parallel num_workers(-1) ! { dg-warning "must be positive" } 139 !$acc end parallel 140 141 !$acc parallel num_workers(0) ! { dg-warning "must be positive" } 142 !$acc end parallel 143 144 !$acc parallel num_workers() ! { dg-error "Invalid character in name" } 145 146 !$acc parallel num_workers(1.5) ! { dg-error "scalar INTEGER expression" } 147 !$acc end parallel 148 149 !$acc parallel num_workers(.true.) ! { dg-error "scalar INTEGER expression" } 150 !$acc end parallel 151 152 !$acc parallel num_workers("1") ! { dg-error "scalar INTEGER expression" } 153 !$acc end parallel 154 155 !$acc kernels num_workers ! { dg-error "Failed to match clause" } 156 157 !$acc kernels num_workers(3) 158 !$acc end kernels 159 160 !$acc kernels num_workers(i) 161 !$acc end kernels 162 163 !$acc kernels num_workers(i+1) 164 !$acc end kernels 165 166 !$acc kernels num_workers(-1) ! { dg-warning "must be positive" } 167 !$acc end kernels 168 169 !$acc kernels num_workers(0) ! { dg-warning "must be positive" } 170 !$acc end kernels 171 172 !$acc kernels num_workers() ! { dg-error "Invalid character in name" } 173 174 !$acc kernels num_workers(1.5) ! { dg-error "scalar INTEGER expression" } 175 !$acc end kernels 176 177 !$acc kernels num_workers(.true.) ! { dg-error "scalar INTEGER expression" } 178 !$acc end kernels 179 180 !$acc kernels num_workers("1") ! { dg-error "scalar INTEGER expression" } 181 !$acc end kernels 182 183 184 !$acc parallel vector_length ! { dg-error "Failed to match clause" } 185 186 !$acc parallel vector_length(3) 187 !$acc end parallel 188 189 !$acc parallel vector_length(i) 190 !$acc end parallel 191 192 !$acc parallel vector_length(i+1) 193 !$acc end parallel 194 195 !$acc parallel vector_length(-1) ! { dg-warning "must be positive" } 196 !$acc end parallel 197 198 !$acc parallel vector_length(0) ! { dg-warning "must be positive" } 199 !$acc end parallel 200 201 !$acc parallel vector_length() ! { dg-error "Invalid character in name" } 202 203 !$acc parallel vector_length(1.5) ! { dg-error "scalar INTEGER expression" } 204 !$acc end parallel 205 206 !$acc parallel vector_length(.true.) ! { dg-error "scalar INTEGER expression" } 207 !$acc end parallel 208 209 !$acc parallel vector_length("1") ! { dg-error "scalar INTEGER expression" } 210 !$acc end parallel 211 212 !$acc kernels vector_length ! { dg-error "Failed to match clause" } 213 214 !$acc kernels vector_length(3) 215 !$acc end kernels 216 217 !$acc kernels vector_length(i) 218 !$acc end kernels 219 220 !$acc kernels vector_length(i+1) 221 !$acc end kernels 222 223 !$acc kernels vector_length(-1) ! { dg-warning "must be positive" } 224 !$acc end kernels 225 226 !$acc kernels vector_length(0) ! { dg-warning "must be positive" } 227 !$acc end kernels 228 229 !$acc kernels vector_length() ! { dg-error "Invalid character in name" } 230 231 !$acc kernels vector_length(1.5) ! { dg-error "scalar INTEGER expression" } 232 !$acc end kernels 233 234 !$acc kernels vector_length(.true.) ! { dg-error "scalar INTEGER expression" } 235 !$acc end kernels 236 237 !$acc kernels vector_length("1") ! { dg-error "scalar INTEGER expression" } 238 !$acc end kernels 239 240 241 !$acc loop gang 242 do i = 1,10 243 enddo 244 !$acc loop gang(3) 245 do i = 1,10 246 enddo 247 !$acc loop gang(i) 248 do i = 1,10 249 enddo 250 !$acc loop gang(i+1) 251 do i = 1,10 252 enddo 253 !$acc loop gang(-1) ! { dg-warning "must be positive" } 254 do i = 1,10 255 enddo 256 !$acc loop gang(0) ! { dg-warning "must be positive" } 257 do i = 1,10 258 enddo 259 !$acc loop gang() ! { dg-error "Invalid character in name" } 260 do i = 1,10 261 enddo 262 !$acc loop gang(1.5) ! { dg-error "scalar INTEGER expression" } 263 do i = 1,10 264 enddo 265 !$acc loop gang(.true.) ! { dg-error "scalar INTEGER expression" } 266 do i = 1,10 267 enddo 268 !$acc loop gang("1") ! { dg-error "scalar INTEGER expression" } 269 do i = 1,10 270 enddo 271 272 273 !$acc loop worker 274 do i = 1,10 275 enddo 276 !$acc loop worker(3) 277 do i = 1,10 278 enddo 279 !$acc loop worker(i) 280 do i = 1,10 281 enddo 282 !$acc loop worker(i+1) 283 do i = 1,10 284 enddo 285 !$acc loop worker(-1) ! { dg-warning "must be positive" } 286 do i = 1,10 287 enddo 288 !$acc loop worker(0) ! { dg-warning "must be positive" } 289 do i = 1,10 290 enddo 291 !$acc loop worker() ! { dg-error "Invalid character in name" } 292 do i = 1,10 293 enddo 294 !$acc loop worker(1.5) ! { dg-error "scalar INTEGER expression" } 295 do i = 1,10 296 enddo 297 !$acc loop worker(.true.) ! { dg-error "scalar INTEGER expression" } 298 do i = 1,10 299 enddo 300 !$acc loop worker("1") ! { dg-error "scalar INTEGER expression" } 301 do i = 1,10 302 enddo 303 304 305 !$acc loop vector 306 do i = 1,10 307 enddo 308 !$acc loop vector(3) 309 do i = 1,10 310 enddo 311 !$acc loop vector(i) 312 do i = 1,10 313 enddo 314 !$acc loop vector(i+1) 315 do i = 1,10 316 enddo 317 !$acc loop vector(-1) ! { dg-warning "must be positive" } 318 do i = 1,10 319 enddo 320 !$acc loop vector(0) ! { dg-warning "must be positive" } 321 do i = 1,10 322 enddo 323 !$acc loop vector() ! { dg-error "Invalid character in name" } 324 do i = 1,10 325 enddo 326 !$acc loop vector(1.5) ! { dg-error "scalar INTEGER expression" } 327 do i = 1,10 328 enddo 329 !$acc loop vector(.true.) ! { dg-error "scalar INTEGER expression" } 330 do i = 1,10 331 enddo 332 !$acc loop vector("1") ! { dg-error "scalar INTEGER expression" } 333 do i = 1,10 334 enddo 335 336end program test 337