OSDN Git Service

Backported from mainline
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / 981019-1.c
1 extern int f2(void);
2 extern int f3(void);
3 extern void f1(void);
4
5 void
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
36 int main(void)
37 {
38   ff(0, 1, 0);
39   return 0;
40 }
41
42 int f3(void) { static int x = 0; x = !x; return x; }
43 void f1(void) { abort(); }
44 int f2(void) { abort(); }