/* PR middle-end/99928 */

int v;

void
foo (void)
{
  #pragma omp target parallel firstprivate (v) map(tofrom: v)	/* { dg-bogus "'v' appears both in data and map clauses" } */
  v++;
}

void
bar (void)
{
  #pragma omp target firstprivate (v) map (tofrom: v)	/* { dg-error "'v' appears both in data and map clauses" } */
  v++;
}

void
baz (void)
{
  int j;
  #pragma omp target simd firstprivate (v) map (tofrom: v) private (j)	/* { dg-error "'v' appears both in data and map clauses" } */
  for (int i = 0; i < 1; i++)
    j = v;
}