1/* { dg-do compile } */ 2 3int x; 4volatile int y; 5volatile unsigned char z; 6 7void f1(void) 8{ 9 #pragma omp atomic 10 x++; 11 #pragma omp atomic 12 x--; 13 #pragma omp atomic 14 ++x; 15 #pragma omp atomic 16 --x; 17 #pragma omp atomic 18 x += 1; 19 #pragma omp atomic 20 x -= y; 21 #pragma omp atomic 22 x |= 1; 23 #pragma omp atomic 24 x &= 1; 25 #pragma omp atomic 26 x ^= 1; 27 #pragma omp atomic 28 x *= 3; 29 #pragma omp atomic 30 x /= 3; 31 #pragma omp atomic 32 x /= 3; 33 #pragma omp atomic 34 x <<= 3; 35 #pragma omp atomic 36 x >>= 3; 37} 38 39void f2(void) 40{ 41 #pragma omp atomic 42 y++; 43 #pragma omp atomic 44 y--; 45 #pragma omp atomic 46 ++y; 47 #pragma omp atomic 48 --y; 49 #pragma omp atomic 50 y += 1; 51 #pragma omp atomic 52 y -= x; 53 #pragma omp atomic 54 y |= 1; 55 #pragma omp atomic 56 y &= 1; 57 #pragma omp atomic 58 y ^= 1; 59 #pragma omp atomic 60 y *= 3; 61 #pragma omp atomic 62 y /= 3; 63 #pragma omp atomic 64 y /= 3; 65 #pragma omp atomic 66 y <<= 3; 67 #pragma omp atomic 68 y >>= 3; 69} 70 71void f3(void) 72{ 73 #pragma omp atomic 74 z++; 75 #pragma omp atomic 76 z--; 77 #pragma omp atomic 78 ++z; 79 #pragma omp atomic 80 --z; 81 #pragma omp atomic 82 z += 1; 83 #pragma omp atomic 84 z |= 1; 85 #pragma omp atomic 86 z &= 1; 87 #pragma omp atomic 88 z ^= 1; 89 #pragma omp atomic 90 z *= 3; 91 #pragma omp atomic 92 z /= 3; 93 #pragma omp atomic 94 z /= 3; 95 #pragma omp atomic 96 z <<= 3; 97 #pragma omp atomic 98 z >>= 3; 99} 100