! REQUIRES: plugins, examples, shell ! RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport.so -plugin flang-omp-report -fopenmp %s -o - | FileCheck %s ! Check for IN_REDUCTION() clause on OpenMP constructs subroutine omp_in_reduction_taskgroup() integer :: z, i !$omp taskgroup task_reduction(+:z) !$omp task in_reduction(+:z) z = z + 5 !$omp end task !$omp taskloop in_reduction(+:z) do i=1,10 z = z * 5 end do !$omp end taskloop !$omp end taskgroup end subroutine omp_in_reduction_taskgroup !CHECK: - file: {{.*}} !CHECK: line: 10 !CHECK: construct: task !CHECK: clauses: !CHECK: - clause: in_reduction !CHECK: details: '+:z' !CHECK: - file: {{.*}} !CHECK: line: 14 !CHECK: construct: taskloop !CHECK: clauses: !CHECK: - clause: in_reduction !CHECK: details: '+:z' !CHECK: - file: {{.*}} !CHECK: line: 9 !CHECK: construct: taskgroup !CHECK: clauses: !CHECK: - clause: task_reduction !CHECK: details: '+:z' subroutine omp_in_reduction_parallel() integer :: z !$omp parallel reduction(+:z) !$omp taskloop simd in_reduction(+:z) do i=1,10 z = z * 5 end do !$omp end taskloop simd !$omp end parallel end subroutine omp_in_reduction_parallel !CHECK: - file: {{.*}} !CHECK: line: 44 !CHECK: construct: taskloop simd !CHECK: clauses: !CHECK: - clause: in_reduction !CHECK: details: '+:z' !CHECK: - file: {{.*}} !CHECK: line: 43 !CHECK: construct: parallel !CHECK: clauses: !CHECK: - clause: reduction !CHECK: details: '+:z'