/* { dg-do compile } */ int x; volatile int y; volatile unsigned char z; void f1(void) { #pragma omp atomic x++; #pragma omp atomic x--; #pragma omp atomic ++x; #pragma omp atomic --x; #pragma omp atomic x += 1; #pragma omp atomic x -= y; #pragma omp atomic x |= 1; #pragma omp atomic x &= 1; #pragma omp atomic x ^= 1; #pragma omp atomic x *= 3; #pragma omp atomic x /= 3; #pragma omp atomic x /= 3; #pragma omp atomic x <<= 3; #pragma omp atomic x >>= 3; } void f2(void) { #pragma omp atomic y++; #pragma omp atomic y--; #pragma omp atomic ++y; #pragma omp atomic --y; #pragma omp atomic y += 1; #pragma omp atomic y -= x; #pragma omp atomic y |= 1; #pragma omp atomic y &= 1; #pragma omp atomic y ^= 1; #pragma omp atomic y *= 3; #pragma omp atomic y /= 3; #pragma omp atomic y /= 3; #pragma omp atomic y <<= 3; #pragma omp atomic y >>= 3; } void f3(void) { #pragma omp atomic z++; #pragma omp atomic z--; #pragma omp atomic ++z; #pragma omp atomic --z; #pragma omp atomic z += 1; #pragma omp atomic z |= 1; #pragma omp atomic z &= 1; #pragma omp atomic z ^= 1; #pragma omp atomic z *= 3; #pragma omp atomic z /= 3; #pragma omp atomic z /= 3; #pragma omp atomic z <<= 3; #pragma omp atomic z >>= 3; }