annotate gcc/testsuite/gcc.c-torture/execute/20180921-1.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* PR tree-optimization/86990 */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 /* Testcase by Zhendong Su <su@cs.ucdavis.edu> */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 const char *ss;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 int __attribute__((noipa)) dummy (const char *s, ...)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 ss = s;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 int i[6];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 static int j, v, e, f, h = 5, k, l, n, o, p, q, r, s, u, w, x, y, z, aa, ab, ac,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 ad, ae, af, ag = 8, ah, ai, aj, ak, al;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 char c;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 struct a {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 unsigned b;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 int c : 9;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 int d;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 } static g = {9, 5};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 static short m[1], t = 95, am;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 int an, ao, ap;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 void aq(int ar) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 j = j & 5 ^ i[j ^ v & 5];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 j = j & 5 ^ i[(j ^ v) & 5];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 j = j & 4095 ^ (j ^ v) & 5;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 void as(int ar) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 if (n)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 s = 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 static unsigned at() {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 int au[] = {2080555007, 0};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 for (; al; al--) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 if (r)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 --x;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 if (g.d)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 l++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 dummy("", j);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 if (u)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 ae = n = au[al];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 r = 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 int aw(int ar) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 int ax[] = {9, 5, 5, 9, 5}, ay = 3;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 struct a az = {1, 3};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 av:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 an = (as((at(), ax)[2]), ax[4]);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51 int ba[] = {5, 5, 9, 8, 1, 0, 5, 5, 9, 8, 1, 0,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 5, 5, 9, 8, 1, 0, 5, 5, 9, 8, 1};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 int a[] = {8, 2, 8, 2, 8, 2, 8};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 int b[] = {1027239, 8, 1, 7, 9, 2, 9, 4, 4, 2, 8, 1, 0, 4, 4, 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55 4, 4, 2, 9, 2, 9, 8, 1, 7, 9, 2, 9, 4, 4, 2};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56 if (z) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
57 struct a bc;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
58 bb:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
59 for (; e; e++)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
60 for (; q;)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
61 return ax[e];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
62 if (bc.c < g.d <= a[7])
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
63 aa--;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
64 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
65 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
66 struct a bd = {5};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
67 int d[20] = {1, 9, 7, 7, 8, 4, 4, 4, 4, 8, 1, 9, 7, 7, 8, 4, 4, 4, 4};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
68 c = h | r % g.c ^ x;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
69 dummy("", g);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
70 am -= t | x;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
71 if (h)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
72 while (1) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
73 if (a[o]) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
74 struct a be;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
75 if (ar) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
76 struct a bf = {908, 5, 3};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
77 int bg[3], bh = k, bj = ag | ae, bk = aj + 3, bl = u << e;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
78 if (f)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
79 if (ac)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
80 ak = w;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
81 ag = -(ag & t);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
82 af = ag ^ af;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
83 if (8 < af)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
84 break;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
85 if (bj)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
86 goto bi;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
87 if (s)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
88 dummy("", 6);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
89 be.d = k;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
90 w = f - bh;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
91 dummy("", be);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
92 if (w)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
93 goto bb;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
94 ao = r - aa && g.b;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
95 if (y)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
96 k++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
97 goto av;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
98 bi:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
99 if (aa)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
100 continue;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
101 if (f)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
102 if (k)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
103 dummy("", g);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
104 aj = ac + k ^ g.c;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
105 g.c = bk;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
106 ah = 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
107 for (; ah < 3; ah++)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
108 if (s)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
109 bg[ah] = 8;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
110 if (!ay)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
111 dummy("", ai);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
112 u = bl;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
113 g = bf;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
114 } else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
115 for (;; o += a[ap])
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
116 ;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
117 int bm[] = {0};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
118 for (; p; p++)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
119 c = ad;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
120 ad = l;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
121 if (bd.c) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
122 dummy(" ");
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
123 goto bi;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
124 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
125 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
126 int bn[] = {5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
127 2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
128 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
129 struct a a[] = {3440025416, 2, 8, 4, 2, 8, 4, 4, 2, 8, 4};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
130 struct a b = {3075920};
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
131 if (f) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
132 aq(m[am + e]);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
133 dummy("", j);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
134 dummy("", e);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
135 ab--;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
136 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
137 if (ax[4]) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
138 if (l)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
139 goto av;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
140 ++f;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
141 } else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
142 ay = az.c && a;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
143 for (; ac; ac++)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
144 m[f] = 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
145 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
146 h = 9;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
147 for (; y; y = 1)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
148 if (f)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
149 goto av;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
150 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
151 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
152 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
153 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
154
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
155 int main (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
156 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
157 aw(1);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
158 if (g.c!= 5)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
159 __builtin_abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
160 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
161 }