1! { dg-do compile } 2 3program associate1 4 type dl 5 integer :: i 6 end type 7 type dt 8 integer :: i 9 real :: a(3, 3) 10 type(dl) :: c(3, 3) 11 end type 12 integer :: v, i, j 13 real :: a(3, 3) 14 type(dt) :: b(3) 15 i = 1 16 j = 2 17 associate(k => v, l => a(i, j), m => a(i, :)) 18 associate(n => b(j)%c(:, :)%i, o => a, p => b) 19!$omp parallel shared (l) ! { dg-error "ASSOCIATE name" } 20!$omp end parallel 21!$omp parallel firstprivate (m) ! { dg-error "ASSOCIATE name" } 22!$omp end parallel 23!$omp parallel reduction (+: k) ! { dg-error "ASSOCIATE name" } 24!$omp end parallel 25!$omp parallel do firstprivate (k) ! { dg-error "ASSOCIATE name" } 26 do i = 1, 10 27 end do 28!$omp parallel do lastprivate (n) ! { dg-error "ASSOCIATE name" } 29 do i = 1, 10 30 end do 31!$omp parallel do private (o) ! { dg-error "ASSOCIATE name" } 32 do i = 1, 10 33 end do 34!$omp parallel do shared (p) ! { dg-error "ASSOCIATE name" } 35 do i = 1, 10 36 end do 37!$omp task private (k) ! { dg-error "ASSOCIATE name" } 38!$omp end task 39!$omp task shared (l) ! { dg-error "ASSOCIATE name" } 40!$omp end task 41!$omp task firstprivate (m) ! { dg-error "ASSOCIATE name" } 42!$omp end task 43!$omp do private (l) ! { dg-error "ASSOCIATE name" } 44 do i = 1, 10 45 end do 46!$omp do reduction (*: k) ! { dg-error "ASSOCIATE name" } 47 do i = 1, 10 48 end do 49!$omp sections private(o) ! { dg-error "ASSOCIATE name" } 50!$omp section 51!$omp section 52!$omp end sections 53!$omp parallel sections firstprivate(p) ! { dg-error "ASSOCIATE name" } 54!$omp section 55!$omp section 56!$omp endparallelsections 57!$omp parallelsections lastprivate(m) ! { dg-error "ASSOCIATE name" } 58!$omp section 59!$omp section 60!$omp endparallelsections 61!$omp sections reduction(+:k) ! { dg-error "ASSOCIATE name" } 62!$omp section 63!$omp section 64!$omp end sections 65!$omp simd private (l) ! { dg-error "ASSOCIATE name" } 66 do i = 1, 10 67 end do 68 k = 1 69!$omp simd lastprivate (m) ! { dg-error "ASSOCIATE name" } 70 do i = 1, 10 71 end do 72 k = 1 73!$omp simd reduction (+: k) ! { dg-error "ASSOCIATE name" } 74 do i = 1, 10 75 end do 76 k = 1 77!$omp simd linear (k : 2) ! { dg-error "ASSOCIATE name" } 78 do i = 1, 10 79 k = k + 2 80 end do 81 end associate 82 end associate 83end program 84