int bar (int);
int baz (int *);

void
f1 (int x)
{
  int i = 0, j = 0;
  #pragma omp for
  for (i = 0; i < 16; i++)
    ;
  #pragma omp for
  for (i = 0; 16 > i; i++)
    ;
  #pragma omp for
  for (i = 0; i < 16; i = i + 2)
    ;
  #pragma omp for
  for (i = 0; i < 16; i = 2 + i)
    ;
  #pragma omp for /* { dg-error "initializer expression refers to iteration variable" } */
  for (i = i; i < 16; i++)
    ;
  #pragma omp for
  for (i = 2 * (i & x); i < 16; i++) /* { dg-error "initializer expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = bar (i); i < 16; i++) /* { dg-error "initializer expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = baz (&i); i < 16; i++) /* { dg-error "initializer expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = 5; i < 2 * i + 17; i++) /* { dg-error "condition expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = 5; 2 * i + 17 > i; i++) /* { dg-error "condition expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = 5; bar (i) > i; i++) /* { dg-error "condition expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = 5; i <= baz (&i); i++) /* { dg-error "condition expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = 5; i <= i; i++) /* { dg-error "invalid controlling predicate|condition expression refers to iteration variable" } */
    ;
  #pragma omp for /* { dg-error "increment expression refers to iteration variable" "" { xfail *-*-* } } */
  for (i = 5; i < 16; i += i) /* { dg-bogus "invalid increment expression" "" { xfail *-*-* } } */
    ;
  #pragma omp for
  for (i = 5; i < 16; i = i + 2 * i) /* { dg-error "invalid increment expression|increment expression refers to iteration variable" } */
    ;
  #pragma omp for /* { dg-error "increment expression refers to iteration variable" "" { xfail *-*-* } } */
  for (i = 5; i < 16; i = i + i) /* { dg-bogus "invalid increment expression" "" { xfail *-*-* } } */
    ;
  #pragma omp for
  for (i = 5; i < 16; i = i + bar (i)) /* { dg-error "increment expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = 5; i < 16; i = baz (&i) + i) /* { dg-error "increment expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = 5; i < 16; i += bar (i)) /* { dg-error "increment expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (i = 5; i < 16; i += baz (&i)) /* { dg-error "increment expression refers to iteration variable" } */
    ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i = i + 2)
    for (j = 0; j < 16; j += 2)
      ;
  #pragma omp for collapse(2) /* { dg-error "initializer expression refers to iteration variable" } */
  for (i = j; i < 16; i = i + 2)
    for (j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i = i + 2)
    for (j = i; j < 16; j += 2)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i = i + 2)
    for (j = i + 3; j < 16; j += 2)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i++)
    for (j = baz (&i); j < 16; j += 2) /* { dg-error "initializer expression refers to iteration variable" } */
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i++)
    for (j = 16; j > (i & x); j--) /* { dg-error "condition expression refers to iteration variable" } */
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i++)
    for (j = 0; j < i; j++)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i++)
    for (j = 0; j < i + 4; j++)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < j + 4; i++) /* { dg-error "condition expression refers to iteration variable" } */
    for (j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < j; i++) /* { dg-error "condition expression refers to iteration variable" } */
    for (j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < bar (j); i++) /* { dg-error "condition expression refers to iteration variable" } */
    for (j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i++)
    for (j = 0; j < baz (&i); j++) /* { dg-error "condition expression refers to iteration variable" } */
      ;
  #pragma omp for collapse(2) /* { dg-error "increment expression refers to iteration variable" } */
  for (i = 0; i < 16; i += j)
    for (j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2) /* { dg-error "increment expression refers to iteration variable" } */
  for (i = 0; i < 16; i++)
    for (j = 0; j < 16; j += i)
      ;
  #pragma omp for collapse(2) /* { dg-error "increment expression refers to iteration variable" } */
  for (i = 0; i < 16; i = j + i)
    for (j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2) /* { dg-error "increment expression refers to iteration variable" } */
  for (i = 0; i < 16; i++)
    for (j = 0; j < 16; j = j + i)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i = bar (j) + i) /* { dg-error "increment expression refers to iteration variable" } */
    for (j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (i = 0; i < 16; i++)
    for (j = 0; j < 16; j = j + baz (&i)) /* { dg-error "increment expression refers to iteration variable" } */
      ;
}

void
f2 (int x)
{
  #pragma omp for
  for (int i = 0; i < 16; i++)
    ;
  #pragma omp for
  for (int i = 0; 16 > i; i++)
    ;
  #pragma omp for
  for (int i = 0; i < 16; i = i + 2)
    ;
  #pragma omp for
  for (int i = 0; i < 16; i = 2 + i)
    ;
  #pragma omp for /* { dg-error "initializer expression refers to iteration variable" } */
  for (int i = i; i < 16; i++)
    ;
  #pragma omp for
  for (int i = 2 * (i & x); i < 16; i++) /* { dg-error "initializer expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = bar (i); i < 16; i++) /* { dg-error "initializer expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = baz (&i); i < 16; i++) /* { dg-error "initializer expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = 5; i < 2 * i + 17; i++) /* { dg-error "condition expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = 5; 2 * i + 17 > i; i++) /* { dg-error "condition expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = 5; bar (i) > i; i++) /* { dg-error "condition expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = 5; i <= baz (&i); i++) /* { dg-error "condition expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = 5; i <= i; i++) /* { dg-error "invalid controlling predicate|condition expression refers to iteration variable" } */
    ;
  #pragma omp for /* { dg-error "increment expression refers to iteration variable" "" { xfail *-*-* } } */
  for (int i = 5; i < 16; i += i) /* { dg-bogus "invalid increment expression" "" { xfail *-*-* } } */
    ;
  #pragma omp for
  for (int i = 5; i < 16; i = i + 2 * i) /* { dg-error "invalid increment expression|increment expression refers to iteration variable" } */
    ;
  #pragma omp for /* { dg-error "increment expression refers to iteration variable" "" { xfail *-*-* } } */
  for (int i = 5; i < 16; i = i + i) /* { dg-bogus "invalid increment expression" "" { xfail *-*-* } } */
    ;
  #pragma omp for
  for (int i = 5; i < 16; i = i + bar (i)) /* { dg-error "increment expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = 5; i < 16; i = baz (&i) + i) /* { dg-error "increment expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = 5; i < 16; i += bar (i)) /* { dg-error "increment expression refers to iteration variable" } */
    ;
  #pragma omp for
  for (int i = 5; i < 16; i += baz (&i)) /* { dg-error "increment expression refers to iteration variable" } */
    ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i = i + 2)
    for (int j = 0; j < 16; j += 2)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i = i + 2)
    for (int j = i; j < 16; j += 2)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i = i + 2)
    for (int j = i + 3; j < 16; j += 2)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i++)
    for (int j = baz (&i); j < 16; j += 2) /* { dg-error "initializer expression refers to iteration variable" } */
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i++)
    for (int j = 16; j > (i & x); j--) /* { dg-error "condition expression refers to iteration variable" } */
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i++)
    for (int j = 0; j < i; j++)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i++)
    for (int j = 0; j < i + 4; j++)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i++)
    for (int j = 0; j < baz (&i); j++) /* { dg-error "condition expression refers to iteration variable" } */
      ;
  #pragma omp for collapse(2) /* { dg-error "increment expression refers to iteration variable" } */
  for (int i = 0; i < 16; i++)
    for (int j = 0; j < 16; j += i)
      ;
  #pragma omp for collapse(2) /* { dg-error "increment expression refers to iteration variable" } */
  for (int i = 0; i < 16; i++)
    for (int j = 0; j < 16; j = j + i)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i++)
    for (int j = 0; j < 16; j = j + baz (&i)) /* { dg-error "increment expression refers to iteration variable" } */
      ;
}

void
f3 (void)
{
  int j = 0;
  #pragma omp for collapse(2)
  for (int i = j; i < 16; i = i + 2)
    for (int j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < j + 4; i++)
    for (int j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < j; i++)
    for (int j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < bar (j); i++)
    for (int j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i += j)
    for (int j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i = j + i)
    for (int j = 0; j < 16; j++)
      ;
  #pragma omp for collapse(2)
  for (int i = 0; i < 16; i = bar (j) + i)
    for (int j = 0; j < 16; j++)
      ;
}
