1! { dg-do compile } 2! { dg-options "-fopenmp" } 3 4module m 5 implicit none 6 integer :: x = 6 7contains 8 9subroutine foo () 10 integer v 11 !$omp atomic seq_cst read 12 v = x 13 !$omp atomic seq_cst, read 14 v = x 15 !$omp atomic seq_cst write 16 x = v 17 !$omp atomic seq_cst ,write 18 x = v 19 !$omp atomic seq_cst update 20 x = x + v; 21 !$omp atomic seq_cst , update 22 x = v + x; 23 !$omp atomic seq_cst capture 24 v = x; x = x + 2; 25 !$omp atomic seq_cst, capture 26 v = x; x = 2 + x; 27 !$omp atomic read , seq_cst 28 v = x 29 !$omp atomic write ,seq_cst 30 x = v 31 !$omp atomic update, seq_cst 32 x = x + v 33 !$omp atomic capture, seq_cst 34 x = x + 2; v = x 35end 36end module m 37