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