| ! RUN: %python %S/../test_errors.py %s %flang -fopenacc |
| |
| ! Check OpenACC clause validity for the following construct and directive: |
| ! 2.14.2 Shutdown |
| |
| program openacc_shutdown_validity |
| |
| implicit none |
| |
| integer :: i, j |
| integer, parameter :: N = 256 |
| logical :: ifCondition = .TRUE. |
| real(8), dimension(N) :: a |
| |
| !$acc parallel |
| !ERROR: Directive SHUTDOWN may not be called within a compute region |
| !$acc shutdown |
| !$acc end parallel |
| |
| !$acc serial |
| !ERROR: Directive SHUTDOWN may not be called within a compute region |
| !$acc shutdown |
| !$acc end serial |
| |
| !$acc kernels |
| !ERROR: Directive SHUTDOWN may not be called within a compute region |
| !$acc shutdown |
| !$acc end kernels |
| |
| !$acc parallel |
| !$acc loop |
| do i = 1, N |
| !ERROR: Directive SHUTDOWN may not be called within a compute region |
| !$acc shutdown |
| a(i) = 3.14 |
| end do |
| !$acc end parallel |
| |
| !$acc serial |
| !$acc loop |
| do i = 1, N |
| !ERROR: Directive SHUTDOWN may not be called within a compute region |
| !$acc shutdown |
| a(i) = 3.14 |
| end do |
| !$acc end serial |
| |
| !$acc kernels |
| !$acc loop |
| do i = 1, N |
| !ERROR: Directive SHUTDOWN may not be called within a compute region |
| !$acc shutdown |
| a(i) = 3.14 |
| end do |
| !$acc end kernels |
| |
| !$acc parallel loop |
| do i = 1, N |
| !ERROR: Directive SHUTDOWN may not be called within a compute region |
| !$acc shutdown |
| a(i) = 3.14 |
| end do |
| |
| !$acc serial loop |
| do i = 1, N |
| !ERROR: Directive SHUTDOWN may not be called within a compute region |
| !$acc shutdown |
| a(i) = 3.14 |
| end do |
| |
| !$acc kernels loop |
| do i = 1, N |
| !ERROR: Directive SHUTDOWN may not be called within a compute region |
| !$acc shutdown |
| a(i) = 3.14 |
| end do |
| |
| !$acc shutdown |
| !$acc shutdown if(.TRUE.) |
| !$acc shutdown if(ifCondition) |
| !$acc shutdown device_num(1) |
| !$acc shutdown device_num(i) |
| !$acc shutdown device_type(*) |
| !$acc shutdown device_type(*, default, host) |
| !$acc shutdown device_num(i) device_type(default, host) if(ifCondition) |
| |
| !ERROR: At most one IF clause can appear on the SHUTDOWN directive |
| !$acc shutdown if(.TRUE.) if(ifCondition) |
| |
| !ERROR: At most one DEVICE_NUM clause can appear on the SHUTDOWN directive |
| !$acc shutdown device_num(1) device_num(i) |
| |
| !ERROR: At most one DEVICE_TYPE clause can appear on the SHUTDOWN directive |
| !$acc shutdown device_type(*) device_type(host, default) |
| |
| end program openacc_shutdown_validity |