| /* { dg-do run } */ |
| |
| extern void abort (void); |
| int x1, x2, x3, x4, x5; |
| volatile int y6 = 9, y2, y3, y4, y5; |
| volatile unsigned char z1, z2, z3, z4, z5; |
| float a1, a2, a3, a4; |
| |
| void |
| f1 (void) |
| { |
| #pragma omp atomic |
| x1++; |
| #pragma omp atomic |
| x2--; |
| #pragma omp atomic |
| ++x3; |
| #pragma omp atomic |
| --x4; |
| #pragma omp atomic |
| x5 += 1; |
| #pragma omp atomic |
| x1 -= y6; |
| #pragma omp atomic |
| x2 |= 1; |
| #pragma omp atomic |
| x3 &= 1; |
| #pragma omp atomic |
| x4 ^= 1; |
| #pragma omp atomic |
| x5 *= 3; |
| #pragma omp atomic |
| x1 /= 3; |
| #pragma omp atomic |
| x2 /= 3; |
| #pragma omp atomic |
| x3 <<= 3; |
| #pragma omp atomic |
| x4 >>= 3; |
| } |
| |
| void |
| f2 (void) |
| { |
| #pragma omp atomic |
| y6++; |
| #pragma omp atomic |
| y2--; |
| #pragma omp atomic |
| ++y3; |
| #pragma omp atomic |
| --y4; |
| #pragma omp atomic |
| y5 += 1; |
| #pragma omp atomic |
| y6 -= x1; |
| #pragma omp atomic |
| y2 |= 1; |
| #pragma omp atomic |
| y3 &= 1; |
| #pragma omp atomic |
| y4 ^= 1; |
| #pragma omp atomic |
| y5 *= 3; |
| #pragma omp atomic |
| y6 /= 3; |
| #pragma omp atomic |
| y2 /= 3; |
| #pragma omp atomic |
| y3 <<= 3; |
| #pragma omp atomic |
| y4 >>= 3; |
| } |
| |
| void |
| f3 (void) |
| { |
| #pragma omp atomic |
| z1++; |
| #pragma omp atomic |
| z2--; |
| #pragma omp atomic |
| ++z3; |
| #pragma omp atomic |
| --z4; |
| #pragma omp atomic |
| z5 += 1; |
| #pragma omp atomic |
| z1 |= 1; |
| #pragma omp atomic |
| z2 &= 1; |
| #pragma omp atomic |
| z3 ^= 1; |
| #pragma omp atomic |
| z4 *= 3; |
| #pragma omp atomic |
| z5 /= 3; |
| #pragma omp atomic |
| z1 /= 3; |
| #pragma omp atomic |
| z2 <<= 3; |
| #pragma omp atomic |
| z3 >>= 3; |
| } |
| |
| void |
| f4 (void) |
| { |
| #pragma omp atomic |
| a1 += 8.0; |
| #pragma omp atomic |
| a2 *= 3.5; |
| #pragma omp atomic |
| a3 -= a1 + a2; |
| #pragma omp atomic |
| a4 /= 2.0; |
| } |
| |
| int |
| main (void) |
| { |
| f1 (); |
| if (x1 != -2 || x2 != 0 || x3 != 8 || x4 != -1 || x5 != 3) |
| abort (); |
| f2 (); |
| if (y6 != 4 || y2 != 0 || y3 != 8 || y4 != -1 || y5 != 3) |
| abort (); |
| f3 (); |
| if (z1 != 0 || z2 != 8 || z3 != 0 || z4 != 253 || z5 != 0) |
| abort (); |
| a1 = 7; |
| a2 = 10; |
| a3 = 11; |
| a4 = 13; |
| f4 (); |
| if (a1 != 15.0 || a2 != 35.0 || a3 != -39.0 || a4 != 6.5) |
| abort (); |
| return 0; |
| } |