1! { dg-do compile } 2 3subroutine foo (a, b, p, q) 4 logical, value :: a 5 logical :: b 6 integer :: p(:) 7 integer, pointer :: q(:) 8 integer :: i 9 !$omp parallel if (a) 10 !$omp end parallel 11 !$omp parallel if (parallel:a) 12 !$omp end parallel 13 !$omp parallel do simd if (a) 14 do i = 1, 16 15 end do 16 !$omp end parallel do simd 17 !$omp parallel do simd if (parallel : a) 18 do i = 1, 16 19 end do 20 !$omp end parallel do simd 21 !$omp parallel do simd if (simd : a) 22 do i = 1, 16 23 end do 24 !$omp end parallel do simd 25 !$omp parallel do simd if (simd : a) if (parallel:b) 26 do i = 1, 16 27 end do 28 !$omp end parallel do simd 29 !$omp task if (a) 30 !$omp end task 31 !$omp task if (task: a) 32 !$omp end task 33 !$omp taskloop if (a) 34 do i = 1, 16 35 end do 36 !$omp end taskloop 37 !$omp taskloop if (taskloop : a) 38 do i = 1, 16 39 end do 40 !$omp end taskloop 41 !$omp taskloop simd if (a) 42 do i = 1, 16 43 end do 44 !$omp end taskloop simd 45 !$omp taskloop simd if (taskloop : a) 46 do i = 1, 16 47 end do 48 !$omp end taskloop simd 49 !$omp taskloop simd if (simd : a) 50 do i = 1, 16 51 end do 52 !$omp end taskloop simd 53 !$omp taskloop simd if (taskloop:b) if (simd : a) 54 do i = 1, 16 55 end do 56 !$omp end taskloop simd 57 !$omp target if (a) 58 !$omp end target 59 !$omp target if (target: a) 60 !$omp end target 61 !$omp target simd if (a) 62 do i = 1, 16 63 end do 64 !$omp end target simd 65 !$omp target simd if (simd : a) if (target: b) 66 do i = 1, 16 67 end do 68 !$omp end target simd 69 !$omp target teams distribute parallel do simd if (a) 70 do i = 1, 16 71 end do 72 !$omp end target teams distribute parallel do simd 73 !$omp target teams distribute parallel do simd if (parallel : a) if (target: b) 74 do i = 1, 16 75 end do 76 !$omp end target teams distribute parallel do simd 77 !$omp target teams distribute parallel do simd if (simd : a) if (target: b) 78 do i = 1, 16 79 end do 80 !$omp end target teams distribute parallel do simd 81 82 !$omp target data if (a) map (p(1:2)) 83 !$omp end target data 84 !$omp target data if (target data: a) map (p(1:2)) 85 !$omp end target data 86 !$omp target enter data if (a) map (to: p(1:2)) 87 !$omp target enter data if (target enter data: a) map (to: p(1:2)) 88 !$omp target exit data if (a) map (from: p(1:2)) 89 !$omp target exit data if (target exit data: a) map (from: p(1:2)) 90 !$omp target update if (a) to (q(1:3)) 91 !$omp target update if (target update:a) to (q(1:3)) 92 !$omp parallel 93 !$omp cancel parallel if (a) 94 !$omp end parallel 95 !$omp parallel 96 !$omp cancel parallel if (cancel:a) 97 !$omp end parallel 98 !$omp do 99 do i = 1, 16 100 !$omp cancel do if (a) 101 end do 102 !$omp do 103 do i = 1, 16 104 !$omp cancel do if (cancel: a) 105 end do 106 !$omp sections 107 !$omp section 108 !$omp cancel sections if (a) 109 !$omp end sections 110 !$omp sections 111 !$omp section 112 !$omp cancel sections if (cancel: a) 113 !$omp end sections 114 !$omp taskgroup 115 !$omp task 116 !$omp cancel taskgroup if (a) 117 !$omp end task 118 !$omp task 119 !$omp cancel taskgroup if (cancel: a) 120 !$omp end task 121 !$omp end taskgroup 122end 123