brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 4f7abee Raw
75 lines · c
1@import templates_top;2 3template<typename T> class Vector;4 5template<typename T> class Vector;6 7template<typename T> class List;8template<> class List<bool> {9public:10  void push_back(int);11};12namespace N {13  template<typename T> class Set;14}15namespace N {16  template<typename T> class Set {17  public:18    void insert(T);19  };20}21 22constexpr unsigned List<int>::*size_left = &List<int>::size;23List<int> list_left = { 0, 8 };24typedef List<int> ListInt_left;25 26template <typename T>27void pendingInstantiationEmit(T) {}28void triggerPendingInstantiation() {29  pendingInstantiationEmit(12);30  pendingInstantiationEmit(42.);31}32 33void redeclDefinitionEmit(){}34 35typedef Outer<int>::Inner OuterIntInner_left;36 37int defineListDoubleLeft() {38  List<double> ld;39  ld.push_back(0.0);40  return ld.size;41}42 43template<typename T> struct MergePatternDecl;44 45extern template struct ExplicitInstantiation<false, false>;46extern template struct ExplicitInstantiation<false, true>;47extern template struct ExplicitInstantiation<true, false>;48extern template struct ExplicitInstantiation<true, true>;49 50void useExplicitInstantiation() {51  ExplicitInstantiation<true, false>().f();52  ExplicitInstantiation<true, true>().f();53}54 55template<typename> struct DelayUpdates;56template<> struct DelayUpdates<int>;57template<typename T> struct DelayUpdates<T*>;58template<typename T> void testDelayUpdates(DelayUpdates<T> *p = 0) {}59 60void outOfLineInlineUseLeftF(void (OutOfLineInline<int>::*)() = &OutOfLineInline<int>::f);61void outOfLineInlineUseLeftG(void (OutOfLineInline<int>::*)() = &OutOfLineInline<int>::g);62void outOfLineInlineUseLeftH(void (OutOfLineInline<int>::*)() = &OutOfLineInline<int>::h);63 64namespace EmitDefaultedSpecialMembers {65  inline void f() {66    SmallString<256> SS;67  };68}69 70inline int *getStaticDataMemberLeft() {71  return WithUndefinedStaticDataMember<int[]>::undefined;72}73 74inline WithAttributes<int> make_with_attributes_left() { return WithAttributes<int>(); }75