100 lines
1.4 KiB
C
100 lines
1.4 KiB
C
/* { 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;
|
|
}
|