// { dg-do compile { target c++11 } }
// { dg-options "-O3" }

struct h {
    typedef int &c;
};
class i {
    struct j {
	using c = int *;
    };
public:
    using as = j::c;
};
template <typename> class k {
public:
    using as = i::as;
    h::c operator[](long l) {
	k<int[]>::as d = 0;
	return d[l];
    }
};
class : public k<int[]> { } a;
long c, f;
void m()
{
  for (long b; b <= 6; b++)
    for (long g; g < b; g++) {
	unsigned long e = g;
	c = 0;
	for (; c < b; c++)
	  f = e >>= 1;
	a[g] = f;
    }
}
