// PR debug/52260 // { dg-do compile { target c++11 } } // { dg-options "-gdwarf-4" } namespace { typedef decltype (nullptr) T1; } struct B {}; namespace A { template struct C { static constexpr T value = __v; }; typedef C D; template struct E : D {}; template struct F : C ::value)> {}; template struct G { typedef T t; }; } template struct H {}; namespace A { template struct I : H {}; template struct J {}; template struct K; struct L { template struct M { template static bool m2 (T) { return false; } }; }; template struct N; template struct N : L::M {}; template struct K :J <>, L { typedef T O (B4 ...); struct P {}; template K (B2, typename G ::value, P>::t = P ()); }; template template K ::K (B2 __f, typename G ::value, P>::t) { typedef N Q; Q::m2 (__f); }; } enum R { r1 }; const R r2 = r1; namespace A { template struct S {}; template > struct U {}; template struct V { T *operator -> (); }; template struct W : V { W (const W &); W (T1) {} W & operator= (W) {} }; template struct Z; struct AA { struct AB { struct AC { void operator () () {} }; }; template using AD = U ; struct AE { typedef AD AZ; virtual ~AE (); void o3 (K , bool = false) {} template struct AY; struct C1 {}; template struct AY { AZ operator () () { return AZ (); } Z _M_Z; }; template static AY _s1 (B, Z *); }; }; template <> struct Z { typedef AA::AE AF; W o4; void foo (B __p) { auto _s1 = AF::_s1 (__p, this); o4->o3 (_s1); } }; template struct AG {}; template > struct AH : AG { void bar (T) { baz (); } template void baz (_Args && ...); }; template template void AH ::baz (_Args && ...) {} namespace { typedef A::K AI; struct AF { int v2; AI v1; AF (int, unsigned, AI __t) : v2 (), v1 (__t) {} }; struct D3 : A::AH { typedef AF AFT; void v3 (AI __t) { bar (AFT (4, v4, __t)); } int v4; }; } }