| ! { dg-do compile } |
| ! { dg-options "-fopenmp" } |
| module m |
| implicit none |
| integer :: x = 6 |
| end module m |
| |
| program main |
| use m |
| implicit none |
| integer v |
| !$omp atomic |
| x = x * 7 + 6 ! { dg-error "assignment must be var = var op expr or var = expr op var" } |
| !$omp atomic |
| x = ieor (x * 7, 6) ! { dg-error "intrinsic arguments except one must not reference 'x'" } |
| !$omp atomic update |
| x = x - 8 + 6 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } |
| !$omp atomic |
| x = ior (ieor (x, 7), 2) ! { dg-error "intrinsic arguments except one must not reference 'x'" } |
| !$omp atomic |
| x = x / 7 * 2 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } |
| !$omp atomic |
| x = x / 7 / 2 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } |
| !$omp atomic capture |
| v = x; x = x * 7 + 6 ! { dg-error "assignment must be var = var op expr or var = expr op var" } |
| !$omp atomic capture |
| v = x; x = ieor(x * 7, 6) ! { dg-error "intrinsic arguments except one must not reference 'x'" } |
| !$omp atomic capture |
| v = x; x = x - 8 + 6 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } |
| !$omp atomic capture |
| v = x; x = ior (ieor(x, 7), 2) ! { dg-error "intrinsic arguments except one must not reference 'x'" } |
| !$omp atomic capture |
| v = x; x = x / 7 * 2 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } |
| !$omp atomic capture |
| v = x; x = x / 7 / 2 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } |
| !$omp atomic capture |
| x = x * 7 + 6; v = x ! { dg-error "assignment must be var = var op expr or var = expr op var" } |
| !$omp atomic capture |
| x = ieor(x * 7, 6); v = x ! { dg-error "intrinsic arguments except one must not reference 'x'" } |
| !$omp atomic capture |
| x = x - 8 + 6; v = x ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } |
| !$omp atomic capture |
| x = ior(ieor(x, 7), 2); v = x ! { dg-error "intrinsic arguments except one must not reference 'x'" } |
| end |