| ! { dg-do compile } |
| ! { dg-options "-fopenacc" } |
| ! { dg-require-effective-target fopenacc } |
| |
| ! PR fortran/78260 |
| ! Contributed by Gerhard Steinmetz |
| |
| module m |
| implicit none |
| integer :: n = 0 |
| contains |
| subroutine s |
| !$acc declare present(m) ! { dg-error "Object .m. is not a variable" } |
| !$acc kernels copyin(m) ! { dg-error "Object .m. is not a variable" } |
| n = n + 1 |
| !$acc end kernels |
| end subroutine s |
| subroutine s2 |
| !$acc declare present(s2) ! { dg-error "Object .s2. is not a variable" } |
| !$acc kernels copyin(s2) ! { dg-error "Object .s2. is not a variable" } |
| n = n + 1 |
| !$acc end kernels |
| end subroutine s2 |
| integer function f1() |
| !$acc declare present(f1) ! OK, f1 is also the result variable |
| !$acc kernels copyin(f1) ! OK, f1 is also the result variable |
| f1 = 5 |
| !$acc end kernels |
| end function f1 |
| integer function f2() result(res) |
| !$acc declare present(f2) ! { dg-error "Object .f2. is not a variable" } |
| !$acc kernels copyin(f2) ! { dg-error "Object .f2. is not a variable" } |
| res = 5 |
| !$acc end kernels |
| end function f2 |
| end module m |