1 /* PR target/91854 */
2 /* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
3 /* { dg-do assemble } */
4 /* { dg-options "-O2 -Wno-int-conversion" }  */
5 /* { dg-additional-options "-fPIE -mcpu=niagara4" { target sparc*-*-* } } */
6 
7 typedef struct {
8   long a;
9 } __attribute__((packed)) c;
10 void *e, *f;
11 int i, j, ab, k, l, m, o;
g(int p)12 inline int g(int p) {
13   if (__builtin_expect(p, 1)) {
14     const int aa = ((c *)e)->a ^ ((c *)f)->a;
15     if (aa)
16       f = sizeof(long);
17     return f;
18   }
19 }
20 void d();
21 int am ();
n(char p,int u)22 inline int n(char p, int u) {
23   int q, r, ac = i;
24   short b = m;
25   while (r && u) {
26     if (l) {
27       if (k) {
28         void *h = i;
29         if (__builtin_expect(p, 1)) {
30           const int aa = ((c *)e)->a ^ ((c *)h)->a;
31           if (aa)
32             h = sizeof(long);
33           q = h;
34         }
35       }
36       ab = q;
37       char s;
38       if (s) {
39         char t = l = g(t);
40       }
41     }
42     if (j && b)
43       if (ac)
44         d();
45   }
46 }
v()47 void v() {
48   const int al = am();
49   if (al)
50     n(am, v);
51 an:
52   n(am, v);
53   if (o)
54     goto an;
55 }
56