4b070d2a6f83f55f34a371b10244030c0f2a91c0
[gcc.git] / gcc / testsuite / g++.dg / opt / pr87974.C
1 // { dg-do compile { target c++11 } }
2 // { dg-options "-O3" }
3
4 struct h {
5 typedef int &c;
6 };
7 class i {
8 struct j {
9 using c = int *;
10 };
11 using as = j::c;
12 };
13 template <typename> class k {
14 public:
15 using as = i::as;
16 h::c operator[](long l) {
17 k<int[]>::as d = 0;
18 return d[l];
19 }
20 };
21 class : public k<int[]> { } a;
22 long c, f;
23 void m()
24 {
25 for (long b; b <= 6; b++)
26 for (long g; g < b; g++) {
27 unsigned long e = g;
28 c = 0;
29 for (; c < b; c++)
30 f = e >>= 1;
31 a[g] = f;
32 }
33 }