/* { dg-do run } */

extern void abort (void);
long long l, m;
int i, j;

void
foo (void)
{
  #pragma omp atomic read
    i = l;
  #pragma omp atomic read
    m = j;
  if (i != 77 || m != 88)
    abort ();
  #pragma omp atomic write
    l = 1 + i + 6 * 1;
  #pragma omp atomic write
    j = 170 - 170 + m + 1 * 7;
  #pragma omp atomic capture
    i = l += 4;
  #pragma omp atomic capture
    m = j += 4;
  if (i != 88 || m != 99)
    abort ();
  #pragma omp atomic capture
    {
      i = l;
      l += 4;
    }
  #pragma omp atomic capture
    {
      m = j;
      j += 4;
    }
  if (i != 88 || m != 99)
    abort ();
  #pragma omp atomic capture
    {
      l += 4;
      i = l;
    }
  #pragma omp atomic capture
    {
      j += 4;
      m = j;
    }
  if (i != 96 || m != 107)
    abort ();
}

int
main ()
{
  l = 77;
  j = 88;
  foo ();
  return 0;
}
