/* { dg-do run } */

extern void abort (void);
int x = 6, cnt;

int
foo (void)
{
  return cnt++;
}

int
main ()
{
  int v, *p;
  #pragma omp atomic update
    x = x + 7;
  #pragma omp atomic
    x = x + (7 + 6);
  #pragma omp atomic update
    x = x + 2 * 3;
  #pragma omp atomic
    x = x * (2 - 1);
  #pragma omp atomic read
    v = x;
  if (v != 32)
    abort ();
  #pragma omp atomic write
    x = 0;
  #pragma omp atomic capture
    {
      v = x;
      x = x | 1 ^ 2;
    }
  if (v != 0)
    abort ();
  #pragma omp atomic capture
    {
      v = x;
      x = x | 4 | 2;
    }
  if (v != 3)
    abort ();
  #pragma omp atomic read
    v = x;
  if (v != 7)
    abort ();
  #pragma omp atomic capture
    {
      x = x ^ 6 & 2;
      v = x;
    }
  if (v != 5)
    abort ();
  #pragma omp atomic capture
    { x = x - (6 + 4); v = x; }
  if (v != -5)
    abort ();
  #pragma omp atomic capture
    { v = x; x = x - (1 | 2); }
  if (v != -5)
    abort ();
  #pragma omp atomic read
    v = x;
  if (v != -8)
    abort ();
  #pragma omp atomic
    x = x * (-4 / 2);
  #pragma omp atomic read
    v = x;
  if (v != 16)
    abort ();
  p = &x;
  #pragma omp atomic update
    p[foo (), 0] = p[foo (), 0] - 16;
  #pragma omp atomic read
    v = x;
  if (cnt != 2 || v != 0)
    abort ();
  #pragma omp atomic capture
    {
      p[foo (), 0] += 6;
      v = p[foo (), 0];
    }
  if (cnt != 4 || v != 6)
    abort ();
  #pragma omp atomic capture
    {
      v = p[foo (), 0];
      p[foo (), 0] += 6;
    }
  if (cnt != 6 || v != 6)
    abort ();
  #pragma omp atomic read
    v = x;
  if (v != 12)
    abort ();
  #pragma omp atomic capture
    {
      p[foo (), 0] = p[foo (), 0] + 6;
      v = p[foo (), 0];
    }
  if (cnt != 9 || v != 18)
    abort ();
  #pragma omp atomic capture
    {
      v = p[foo (), 0];
      p[foo (), 0] = p[foo (), 0] + 6;
    }
  if (cnt != 12 || v != 18)
    abort ();
  #pragma omp atomic read
    v = x;
  if (v != 24)
    abort ();
  #pragma omp atomic capture
  { v = p[foo (), 0]; p[foo (), 0]++; }
  #pragma omp atomic capture
  { v = p[foo (), 0]; ++p[foo (), 0]; }
  #pragma omp atomic capture
  { p[foo (), 0]++; v = p[foo (), 0]; }
  #pragma omp atomic capture
  { ++p[foo (), 0]; v = p[foo (), 0]; }
  if (cnt != 20 || v != 28)
    abort ();
  #pragma omp atomic capture
  { v = p[foo (), 0]; p[foo (), 0]--; }
  #pragma omp atomic capture
  { v = p[foo (), 0]; --p[foo (), 0]; }
  #pragma omp atomic capture
  { p[foo (), 0]--; v = p[foo (), 0]; }
  #pragma omp atomic capture
  { --p[foo (), 0]; v = p[foo (), 0]; }
  if (cnt != 28 || v != 24)
    abort ();
  return 0;
}
