xref: /aosp_15_r20/external/clang/test/Modules/Inputs/cxx-irgen-top.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li template<typename T> struct S {
fS2*67e74705SXin Li   __attribute__((always_inline)) static int f() { return 0; }
gS3*67e74705SXin Li   __attribute__((always_inline, visibility("hidden"))) static int g() { return 0; }
4*67e74705SXin Li };
5*67e74705SXin Li 
6*67e74705SXin Li extern template struct S<int>;
7*67e74705SXin Li 
8*67e74705SXin Li template<typename T> T min(T a, T b) { return a < b ? a : b; }
9*67e74705SXin Li 
10*67e74705SXin Li extern decltype(min(1, 2)) instantiate_min_decl;
11*67e74705SXin Li 
12*67e74705SXin Li template<typename T> struct CtorInit {
13*67e74705SXin Li   static int f() { return 0; }
14*67e74705SXin Li   int a;
15*67e74705SXin Li   CtorInit() : a(f()) {}
16*67e74705SXin Li };
17*67e74705SXin Li 
18*67e74705SXin Li namespace ImplicitSpecialMembers {
19*67e74705SXin Li   struct A {
20*67e74705SXin Li     A(const A&);
21*67e74705SXin Li   };
22*67e74705SXin Li   struct B {
23*67e74705SXin Li     A a;
24*67e74705SXin Li     B(int);
25*67e74705SXin Li   };
26*67e74705SXin Li   struct C {
27*67e74705SXin Li     A a;
28*67e74705SXin Li     C(int);
29*67e74705SXin Li   };
30*67e74705SXin Li   struct D {
31*67e74705SXin Li     A a;
32*67e74705SXin Li     D(int);
33*67e74705SXin Li   };
34*67e74705SXin Li }
35*67e74705SXin Li 
36*67e74705SXin Li namespace OperatorDeleteLookup {
37*67e74705SXin Li   struct A { void operator delete(void*); virtual ~A() = default; };
38*67e74705SXin Li   template<typename T> struct B { void operator delete(void*); virtual ~B() {} typedef int t; };
39*67e74705SXin Li   typedef B<int>::t b_int_instantated;
40*67e74705SXin Li }
41*67e74705SXin Li 
42*67e74705SXin Li namespace EmitInlineMethods {
43*67e74705SXin Li   struct A {
44*67e74705SXin Li     void f() {}
45*67e74705SXin Li     void g();
46*67e74705SXin Li   };
47*67e74705SXin Li   struct B {
48*67e74705SXin Li     void f();
49*67e74705SXin Li     void g() {}
50*67e74705SXin Li   };
51*67e74705SXin Li }
52