a.17.1.c   [plain text]


/* { dg-do compile } */

void
a17_1_wrong ()
{
  union
  {
    int n;
    float x;
  } u;
#pragma omp parallel
  {
#pragma omp atomic
    u.n++;
#pragma omp atomic
    u.x += 1.0;
/* Incorrect because the atomic constructs reference the same location
     through incompatible types */
  }
}