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