! Verify that the error message for gang reductions on orphaned OpenACC loops ! is not reported for non-orphaned loops. ! { dg-additional-options "-Wopenacc-parallelism" } subroutine kernels implicit none integer, parameter :: n = 100 integer :: i, sum sum = 0 !$acc kernels !$acc loop gang reduction(+:sum) ! { dg-bogus "gang reduction on an orphan loop" } do i = 1, n sum = sum + 1 end do !$acc end kernels end subroutine kernels subroutine parallel implicit none integer, parameter :: n = 100 integer :: i, sum sum = 0 !$acc parallel !$acc loop gang reduction(+:sum) ! { dg-bogus "gang reduction on an orphan loop" } do i = 1, n sum = sum + 1 end do !$acc end parallel end subroutine parallel subroutine serial implicit none integer, parameter :: n = 100 integer :: i, sum sum = 0 !$acc serial ! { dg-warning "region contains gang partitioned code but is not gang partitioned" } !$acc loop gang reduction(+:sum) ! { dg-bogus "gang reduction on an orphan loop" } do i = 1, n sum = sum + 1 end do !$acc end serial end subroutine serial subroutine kernels_combined implicit none integer, parameter :: n = 100 integer :: i, sum sum = 0 !$acc kernels loop gang reduction(+:sum) ! { dg-bogus "gang reduction on an orphan loop" } do i = 1, n sum = sum + 1 end do end subroutine kernels_combined subroutine parallel_combined implicit none integer, parameter :: n = 100 integer :: i, sum sum = 0 !$acc parallel loop gang reduction(+:sum) ! { dg-bogus "gang reduction on an orphan loop" } do i = 1, n sum = sum + 1 end do end subroutine parallel_combined subroutine serial_combined implicit none integer, parameter :: n = 100 integer :: i, sum sum = 0 !$acc serial loop gang reduction(+:sum) ! { dg-bogus "gang reduction on an orphan loop" } ! { dg-warning "region contains gang partitioned code but is not gang partitioned" "" { target *-*-* } .-1 } do i = 1, n sum = sum + 1 end do end subroutine serial_combined