@import templates_top; template class Vector; template class Vector; template class List; template<> class List { public: void push_back(int); }; namespace N { template class Set; } namespace N { template class Set { public: void insert(T); }; } constexpr unsigned List::*size_left = &List::size; List list_left = { 0, 8 }; typedef List ListInt_left; template void pendingInstantiationEmit(T) {} void triggerPendingInstantiation() { pendingInstantiationEmit(12); pendingInstantiationEmit(42.); } void redeclDefinitionEmit(){} typedef Outer::Inner OuterIntInner_left; int defineListDoubleLeft() { List ld; ld.push_back(0.0); return ld.size; } template struct MergePatternDecl; extern template struct ExplicitInstantiation; extern template struct ExplicitInstantiation; extern template struct ExplicitInstantiation; extern template struct ExplicitInstantiation; void useExplicitInstantiation() { ExplicitInstantiation().f(); ExplicitInstantiation().f(); } template struct DelayUpdates; template<> struct DelayUpdates; template struct DelayUpdates; template void testDelayUpdates(DelayUpdates *p = 0) {} void outOfLineInlineUseLeftF(void (OutOfLineInline::*)() = &OutOfLineInline::f); void outOfLineInlineUseLeftG(void (OutOfLineInline::*)() = &OutOfLineInline::g); void outOfLineInlineUseLeftH(void (OutOfLineInline::*)() = &OutOfLineInline::h); namespace EmitDefaultedSpecialMembers { inline void f() { SmallString<256> SS; }; } inline int *getStaticDataMemberLeft() { return WithUndefinedStaticDataMember::undefined; }