Handle unsigned constants for module I/O.
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr58277-1.c
blob811988f43711e60b6d568a3331951fb462420d1c
1 /* PR tree-optimization/58277 */
3 extern void abort (void);
4 static int a[2];
5 int b, c, d, *e, f, g, h, **i = &e, k, l = 1, n, o, p;
6 static int **volatile j = &e;
7 const int m;
8 char u;
10 int
11 bar ()
13 u = 0;
14 return m;
17 __attribute__((noinline, noclone)) void
18 baz ()
20 asm ("");
23 static int
24 foo ()
26 int t1;
27 g = bar ();
28 if (l)
30 else
31 for (;; h++)
33 *i = 0;
34 o = *e = 0;
35 if (p)
37 f = 0;
38 return 0;
40 for (;; k++)
42 int *t2 = 0;
43 int *const *t3[] = {
44 0, 0, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, &t2, &t2, &t2,
45 &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0,
46 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, &t2,
47 &t2, &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0,
48 &t2, 0, 0, 0, &t2, 0, &t2, 0, 0, &t2, 0, 0, 0, 0,
49 0, &t2, 0, 0, 0, 0, &t2, &t2, 0, 0, 0, 0, &t2, 0,
50 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, &t2, 0, 0, 0,
51 &t2, &t2
53 int *const **t4[] = {&t3[0]};
54 **i = 0;
55 if (**j)
56 break;
57 u = 0;
59 *i = *j;
60 t1 = 0;
61 for (; t1 < 5; t1++)
62 *i = *j;
64 *j = 0;
65 return 1;
68 int
69 main ()
71 int t5;
72 a[0] = 1;
74 int *t6[6] = {&d, &d};
75 for (n = 1; n; n--)
76 if (foo())
78 int *t7[] = {0};
79 d = 0;
80 for (; u < 1; u++)
81 *i = *j;
82 *i = 0;
83 *i = 0;
84 int t8[5] = {0};
85 *i = &t8[0];
86 int *const *t9 = &t6[0];
87 int *const **t10 = &t9;
88 *t10 = &t7[0];
91 u = 0;
92 for (; b; b++)
93 for (t5 = 0; t5 < 10; t5++)
94 c = a[a[a[a[a[a[a[a[c]]]]]]]];
96 baz ();
98 if (!a[a[a[a[a[a[a[a[a[a[a[a[a[a[a[u]]]]]]]]]]]]]]])
99 abort ();
101 return 0;