| /* { dg-do compile } */ | |
| /* { dg-additional-options "-Wno-volatile" { target c++ } } */ | |
| 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; | |
| } |