OSDN Git Service

PR rtl-optimization/34628
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / 20010129-1.c
1 long baz1 (void *a)
2 {
3   static long l;
4   return l++;
5 }
6
7 int baz2 (const char *a)
8 {
9   return 0;
10 }
11
12 int baz3 (int i)
13 {
14   if (!i)
15     abort ();
16   return 1;
17 }
18
19 void **bar;
20
21 int foo (void *a, long b, int c)
22 {
23   int d = 0, e, f = 0, i;
24   char g[256];
25   void **h;
26
27   g[0] = '\n';
28   g[1] = 0;
29
30   while (baz1 (a) < b) {
31     if (g[0] != ' ' && g[0] != '\t') {
32       f = 1;
33       e = 0;
34       if (!d && baz2 (g) == 0) {
35         if ((c & 0x10) == 0)
36           continue;
37         e = d = 1;
38       }
39       if (!((c & 0x10) && (c & 0x4000) && e) && (c & 2))
40         continue;
41       if ((c & 0x2000) && baz2 (g) == 0)
42         continue;
43       if ((c & 0x1408) && baz2 (g) == 0)
44         continue;
45       if ((c & 0x200) && baz2 (g) == 0)
46         continue;
47       if (c & 0x80) {
48         for (h = bar, i = 0; h; h = (void **)*h, i++)
49           if (baz3 (i))
50             break;
51       }
52       f = 0;
53     }
54   }
55   return 0;
56 }
57
58 int main ()
59 {
60   void *n = 0;
61   bar = &n;
62   foo (&n, 1, 0xc811);
63   exit (0);
64 }