1/* { dg-skip-if "not yet" { c++ } } */
2
3int test1()
4{
5  int i, j, k, b[10];
6  int a[30];
7  double d;
8  float r;
9  i = 0;
10  #pragma acc loop
11  while(1)  /* { dg-error "for statement expected" } */
12    {
13      if (i > 0) break;
14      i = i + 1;
15    }
16  i = 0;
17  #pragma acc loop
18  for(;;)  /* { dg-error "expected iteration declaration or initialization" } */
19    {
20      if (i > 0) break; /* { dg-error "break statement used" } */
21      i = i + 1;
22    }
23  i = 0;
24  #pragma acc loop
25  do  /* { dg-error "for statement expected" } */
26    {
27      i = i + 1;
28    }
29  while (i < 4);
30  #pragma acc loop
31  while (i < 8)  /* { dg-error "for statement expected" } */
32    {
33      i = i + 1;
34    }
35  #pragma acc loop
36  for (d = 1; d < 30; d+= 6)  /* { dg-error "invalid type for iteration variable" } */
37    {
38      i = d;
39      a[i] = 1;
40    }
41  #pragma acc loop
42  for (i = 1; i < 30; i++ )
43    if (i == 16) break; /* { dg-error "break statement used" } */
44
45/* different types of for loop are allowed */
46  #pragma acc loop
47  for (i = 1; i < 10; i++)
48    {
49    }
50  #pragma acc loop
51  for (i = 1; i < 10; i+=2)
52    {
53      a[i] = i;
54    }
55
56  /* after loop directive must be loop */
57  #pragma acc loop
58    a[1] = 1; /* { dg-error "for statement expected" } */
59    for (i = 1; i < 10; i++)
60      ;
61  /* combined directives may be used*/
62  #pragma acc parallel loop
63  for(i = 1; i < 10; i++)
64    {
65    }
66  #pragma acc kernels loop
67  for(i = 1; i < 10; i++)
68    {
69    }
70  return 0;
71}
72/* { dg-prune-output "sorry, unimplemented: directive not yet implemented" } */
73