1// { dg-do compile }
2
3extern void baz(int);
4void foo (int j, int k)
5{
6  int i;
7
8  /* Valid loops.  */
9  #pragma omp for
10  for (i = 0; i < 10; i++)
11    baz (i);
12
13  #pragma omp for
14  for (i = j; i <= 10; i+=4)
15    baz (i);
16
17  #pragma omp for
18  for (i = j; i > 0; i = i - 1)
19    baz (j);
20
21  #pragma omp for
22  for (i = j; i >= k; i--)
23    baz (i);
24
25  // Malformed parallel loops.
26  #pragma omp for
27  i = 0;		// { dg-error "for statement expected" }
28  for ( ; i < 10; )
29    {
30      baz (i);
31      i++;
32    }
33
34  #pragma omp for
35  for (i = 0; ; i--)	// { dg-error "missing controlling predicate" }
36    {
37      if (i >= 10)
38	break;		// { dg-error "break" }
39      baz (i);
40    }
41
42  #pragma omp for
43  for (i = 0; i < 10 && j > 4; i-=3)	// { dg-error "invalid controlling predicate" }
44    baz (i);
45
46  #pragma omp for
47  for (i = 0; i < 10; i-=3, j+=2)	// { dg-error "invalid increment expression" }
48    baz (i);
49}
50