1 // RUN: %clang_cc1 -emit-llvm %s -o - -std=c++11 -triple %itanium_abi_triple | FileCheck %s
2 
3 extern "C" int printf(...);
4 
5 struct S {
SS6   S() { printf("S::S\n"); }
7 };
8 
9 struct A {
10   double x;
AA11   A() : x(), y(), s() { printf("x = %f y = %x \n", x, y); }
12   int *y;
13   S s;
14 };
15 
16 A a;
17 
18 struct B {
19   B() = default;
20   B(const B&);
21 };
22 
23 // CHECK-NOT: _ZL1b
24 static B b;
25 
26 struct C {
27   ~C();
28 };
29 
30 // CHECK: _ZL1c
31 static C c[4];
32 
main()33 int main() {
34 }
35 
36 namespace PR22793 {
37 template <typename>
38 struct foo {
39 protected:
40 // CHECK-NOT: _ZN7PR227933fooIiED2Ev
41   ~foo() = default;
42   friend void func();
43 };
44 
func()45 void func() { foo<int> f; }
46 
47 template struct foo<int>;
48 }
49