1 /* { dg-skip-if "not yet" { c++ } } */ 2 3 int i, j, k; 4 extern int foo (void); 5 6 void f1(void)7f1 (void) 8 { 9 #pragma acc parallel 10 #pragma acc loop collapse (2) 11 for (i = 0; i < 5; i++) 12 ; /* { dg-error "not enough perfectly nested" } */ 13 { 14 for (j = 0; j < 5; j++) 15 ; 16 } 17 } 18 19 void f2(void)20f2 (void) 21 { 22 #pragma acc parallel 23 #pragma acc loop collapse (2) 24 for (i = 0; i < 5; i++) 25 { 26 { 27 { 28 for (j = 0; j < 5; j++) 29 { 30 } 31 } 32 } 33 } 34 } 35 36 void f3(void)37f3 (void) 38 { 39 #pragma acc parallel 40 #pragma acc loop collapse (2) 41 for (i = 0; i < 5; i++) 42 { 43 int k = foo (); /* { dg-error "not enough perfectly nested" } */ 44 { 45 { 46 for (j = 0; j < 5; j++) 47 { 48 } 49 } 50 } 51 } 52 } 53 54 void f4(void)55f4 (void) 56 { 57 #pragma acc parallel 58 #pragma acc loop collapse (2) 59 for (i = 0; i < 5; i++) 60 { 61 { 62 for (j = 0; j < 5; j++) 63 ; 64 foo (); /* { dg-error "collapsed loops not perfectly nested before" } */ 65 } 66 } 67 } 68 69 void f5(void)70f5 (void) 71 { 72 #pragma acc parallel 73 #pragma acc loop collapse (2) 74 for (i = 0; i < 5; i++) 75 { 76 { 77 for (j = 0; j < 5; j++) 78 ; 79 } 80 foo (); /* { dg-error "collapsed loops not perfectly nested before" } */ 81 } 82 } 83 84 void f6(void)85f6 (void) 86 { 87 #pragma acc parallel 88 #pragma acc loop collapse (2) 89 for (i = 0; i < 5; i++) 90 { 91 { 92 for (j = 0; j < 5; j++) 93 ; 94 } 95 } 96 foo (); 97 } 98