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