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