1 // PR rtl-optimization/82778
2 // { dg-do compile }
3 // { dg-options "-O2" }
4 
5 template <typename a, int b> struct c {
6   typedef a d[b];
ec7   static a e(d f, int g) { return f[g]; }
8 };
9 template <typename a, int b> struct B {
10   typedef c<a, b> h;
11   typename h::d i;
12   long j;
atB13   a at() { return h::e(i, j); }
14 };
15 int k, m, r, s, t;
16 char l, n, q;
17 short o, p, w;
18 struct C {
19   int u;
20 };
21 B<C, 4> v;
x()22 void x() {
23   if (((p > (q ? v.at().u : k)) >> l - 226) + !(n ^ r * m))
24     s = ((-(((p > (q ? v.at().u : k)) >> l - 226) + !(n ^ r * m)) < 0) /
25              (-(((p > (q ? v.at().u : k)) >> l - 226) + !(n ^ r * m)) ^
26               -25 & o) &&
27          p) >>
28         (0 <= 0
29              ? 0 ||
30                    (-(((p > (q ? v.at().u : k)) >> l - 226) + !(n ^ r * m)) <
31                     0) /
32                        (-(((p > (q ? v.at().u : k)) >> l - 226) +
33                           !(n ^ r * m)) ^ -25 & o)
34              : 0);
35   w = (p > (q ? v.at().u : k)) >> l - 226;
36   t = !(n ^ r * m);
37 }
38