// PR c++/86099 // { dg-do compile { target c++11 } } template struct e { static constexpr int c = a; }; template using d = e; template struct aa; template struct j; template struct j : aa::h {}; template struct n : d {}; template l m(int); template auto ab() -> decltype(m(0)); template struct p; template struct p : e()))> {}; template struct r; class s; template struct ac : j, p, q...>> {}; template struct ae : ac {}; template struct aa { typedef ad h; }; template struct w : j>, d> {}; template struct r { t f; int af; r(r &&) = default; }; template ::c, k>::h> void v(k *); template ah aj(ag x, ah, ai) { v(x); return 0; } template struct y { typedef int ak; }; template class z { public: template void al(); }; template template void z::al() { r *u; typename y::ak a = aj(u, a, int()); } class s { char *an = nullptr; }; void ao() { z b; b.al(); }