1! { dg-do compile } 2! { dg-options "-fopenmp" } 3module m 4 implicit none 5 integer :: x = 6 6end module m 7 8program main 9 use m 10 implicit none 11 integer v 12 !$omp atomic 13 x = x * 7 + 6 ! { dg-error "assignment must be var = var op expr or var = expr op var" } 14 !$omp atomic 15 x = ieor (x * 7, 6) ! { dg-error "intrinsic arguments except one must not reference 'x'" } 16 !$omp atomic update 17 x = x - 8 + 6 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } 18 !$omp atomic 19 x = ior (ieor (x, 7), 2) ! { dg-error "intrinsic arguments except one must not reference 'x'" } 20 !$omp atomic 21 x = x / 7 * 2 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } 22 !$omp atomic 23 x = x / 7 / 2 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } 24 !$omp atomic capture 25 v = x; x = x * 7 + 6 ! { dg-error "assignment must be var = var op expr or var = expr op var" } 26 !$omp atomic capture 27 v = x; x = ieor(x * 7, 6) ! { dg-error "intrinsic arguments except one must not reference 'x'" } 28 !$omp atomic capture 29 v = x; x = x - 8 + 6 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } 30 !$omp atomic capture 31 v = x; x = ior (ieor(x, 7), 2) ! { dg-error "intrinsic arguments except one must not reference 'x'" } 32 !$omp atomic capture 33 v = x; x = x / 7 * 2 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } 34 !$omp atomic capture 35 v = x; x = x / 7 / 2 ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } 36 !$omp atomic capture 37 x = x * 7 + 6; v = x ! { dg-error "assignment must be var = var op expr or var = expr op var" } 38 !$omp atomic capture 39 x = ieor(x * 7, 6); v = x ! { dg-error "intrinsic arguments except one must not reference 'x'" } 40 !$omp atomic capture 41 x = x - 8 + 6; v = x ! { dg-error "var = var op expr not mathematically equivalent to var = var op \\(expr\\)" } 42 !$omp atomic capture 43 x = ior(ieor(x, 7), 2); v = x ! { dg-error "intrinsic arguments except one must not reference 'x'" } 44end 45