! { dg-additional-options "-fdump-tree-original" } subroutine foo (p) logical :: p(:) integer i integer a, b, c, d, e, f, g, h a = -1; b = -1; c = -1; d = -1; e = -1; f = -1; g = -1; h = -1 !$omp parallel !$omp do lastprivate (conditional: a) do i = 1, 32 if (p(i)) & a = i end do !$omp end parallel !$omp simd lastprivate (conditional: b) do i = 1, 32 if (p(i)) & b = i end do !$omp parallel !$omp do simd lastprivate (conditional: c) do i = 1, 32 if (p(i)) & c = i end do !$omp end parallel !$omp parallel do lastprivate (conditional: d) do i = 1, 32 if (p(i)) & d = i end do !$omp end parallel do !$omp parallel do simd lastprivate (conditional: e) do i = 1, 32 if (p(i)) & e = i end do !$omp end parallel do simd end subroutine ! { dg-final { scan-tree-dump-times "#pragma omp for lastprivate\\(conditional:a\\)" 1 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp simd linear\\(i:1\\) lastprivate\\(conditional:b\\)" 1 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp for lastprivate\\(conditional:c\\)" 1 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp simd linear\\(i:1\\) lastprivate\\(conditional:c\\)" 1 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp parallel lastprivate\\(conditional:d\\)" 1 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp parallel lastprivate\\(conditional:e\\)" 1 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp simd linear\\(i:1\\) lastprivate\\(conditional:e\\)" 1 "original" } }