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