1 /* { dg-skip-if "ptxas seg faults" { nvptx-*-* } { "-O3*" } { "" } } */ 2 3 extern int f2(void); 4 extern int f3(void); 5 extern void f1(void); 6 7 void ff(int fname,int part,int nparts)8ff(int fname, int part, int nparts) 9 { 10 if (fname) /* bb 0 */ 11 { 12 if (nparts) /* bb 1 */ 13 f1(); /* bb 2 */ 14 } 15 else 16 fname = 2; /* bb 3 */ 17 18 /* bb 4 is the branch to bb 10 19 (bb 10 is physically at the end of the loop) */ 20 while (f3() /* bb 10 */) 21 { 22 if (nparts /* bb 5 */ && f2() /* bb 6 */) 23 { 24 f1(); /* bb 7 ... */ 25 nparts = part; 26 if (f3()) /* ... bb 7 */ 27 f1(); /* bb 8 */ 28 f1(); /* bb 9 */ 29 break; 30 } 31 } 32 33 if (nparts) /* bb 11 */ 34 f1(); /* bb 12 */ 35 return; /* bb 13 */ 36 } 37 main(void)38int main(void) 39 { 40 ff(0, 1, 0); 41 return 0; 42 } 43 f3(void)44int f3(void) { static int x = 0; x = !x; return x; } f1(void)45void f1(void) { abort(); } f2(void)46int f2(void) { abort(); } 47