annotate clang/test/Modules/Inputs/templates-top.h @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 template<typename T> class Vector;
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 template<typename T> class List {
anatofuz
parents:
diff changeset
4 public:
anatofuz
parents:
diff changeset
5 void push_back(T);
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 struct node {};
anatofuz
parents:
diff changeset
8 node *head;
anatofuz
parents:
diff changeset
9 unsigned size;
anatofuz
parents:
diff changeset
10 };
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 extern List<double> *instantiateListDoubleDeclaration;
anatofuz
parents:
diff changeset
13 extern List<long> *instantiateListLongDeclaration;
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 namespace A {
anatofuz
parents:
diff changeset
16 class Y {
anatofuz
parents:
diff changeset
17 template <typename T> friend class WhereAmI;
anatofuz
parents:
diff changeset
18 };
anatofuz
parents:
diff changeset
19 }
anatofuz
parents:
diff changeset
20
anatofuz
parents:
diff changeset
21 template <typename T> class A::WhereAmI {
anatofuz
parents:
diff changeset
22 public:
anatofuz
parents:
diff changeset
23 static void func() {}
anatofuz
parents:
diff changeset
24 };
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 template<typename T> struct Outer {
anatofuz
parents:
diff changeset
27 struct Inner {};
anatofuz
parents:
diff changeset
28 };
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 template<bool, bool> struct ExplicitInstantiation {
anatofuz
parents:
diff changeset
31 void f() {}
anatofuz
parents:
diff changeset
32 };
anatofuz
parents:
diff changeset
33
anatofuz
parents:
diff changeset
34 template<typename> struct DelayUpdates {};
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 template<typename T> struct OutOfLineInline {
anatofuz
parents:
diff changeset
37 void f();
anatofuz
parents:
diff changeset
38 void g();
anatofuz
parents:
diff changeset
39 void h();
anatofuz
parents:
diff changeset
40 };
anatofuz
parents:
diff changeset
41 template<typename T> inline void OutOfLineInline<T>::f() {}
anatofuz
parents:
diff changeset
42 template<typename T> inline void OutOfLineInline<T>::g() {}
anatofuz
parents:
diff changeset
43 template<typename T> inline void OutOfLineInline<T>::h() {}
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 namespace EmitDefaultedSpecialMembers {
anatofuz
parents:
diff changeset
46 template<typename T> struct SmallVectorImpl {
anatofuz
parents:
diff changeset
47 SmallVectorImpl() {}
anatofuz
parents:
diff changeset
48 ~SmallVectorImpl() {} // non-trivial dtor
anatofuz
parents:
diff changeset
49 };
anatofuz
parents:
diff changeset
50 template<typename T, unsigned N> struct SmallVector : SmallVectorImpl<T> {
anatofuz
parents:
diff changeset
51 // trivial dtor
anatofuz
parents:
diff changeset
52 };
anatofuz
parents:
diff changeset
53 template<unsigned N> struct SmallString : SmallVector<char, N> {
anatofuz
parents:
diff changeset
54 // trivial dtor
anatofuz
parents:
diff changeset
55 };
anatofuz
parents:
diff changeset
56 }
anatofuz
parents:
diff changeset
57
anatofuz
parents:
diff changeset
58 template<typename T> struct WithUndefinedStaticDataMember {
anatofuz
parents:
diff changeset
59 static T undefined;
anatofuz
parents:
diff changeset
60 };
anatofuz
parents:
diff changeset
61
anatofuz
parents:
diff changeset
62 template<typename T> struct __attribute__((packed, aligned(2))) WithAttributes {
anatofuz
parents:
diff changeset
63 T value;
anatofuz
parents:
diff changeset
64 };
anatofuz
parents:
diff changeset
65 WithAttributes<int> *get_with_attributes();