| ! { dg-do compile } |
| |
| subroutine foo |
| integer :: i, v |
| !$acc atomic read bar ! { dg-error "21: Unexpected junk after !.ACC ATOMIC statement" } |
| i = v |
| |
| !$acc atomic read write ! { dg-error "21: Unexpected junk after !.ACC ATOMIC statement" } |
| i = v |
| |
| !$acc atomic read seq_cst ! { dg-error "21: Unexpected junk after !.ACC ATOMIC statement" } |
| i = v |
| |
| !$acc atomic read relaxed ! { dg-error "21: Unexpected junk after !.ACC ATOMIC statement" } |
| i = v |
| |
| !$acc atomic update hint(1) ! { dg-error "23: Unexpected junk after !.ACC ATOMIC statement" } |
| i = i + 1 |
| |
| !$acc atomic update update capture ! { dg-error "23: Unexpected junk after !.ACC ATOMIC statement" } |
| i = i + 1 |
| v = i |
| |
| !$acc atomic update capture capture ! { dg-error "23: Unexpected junk after !.ACC ATOMIC statement" } |
| i = i + 1 |
| v = i |
| |
| !$acc atomic write capture ! { dg-error "22: Unexpected junk after !.ACC ATOMIC statement" } |
| i = 1 |
| |
| ! Valid in C/C++ since OpenACC 2.5 but not in Fortran: |
| !$acc atomic update capture ! { dg-error "23: Unexpected junk after !.ACC ATOMIC statement" } |
| i = i + 1 |
| v = i |
| end |