// RUN: %clang_cc1 -emit-llvm %s -o - -std=c++11 -triple %itanium_abi_triple | FileCheck %s extern "C" int printf(...); struct S { S() { printf("S::S\n"); } }; struct A { double x; A() : x(), y(), s() { printf("x = %f y = %x \n", x, y); } int *y; S s; }; A a; struct B { B() = default; B(const B&); }; // CHECK-NOT: _ZL1b static B b; struct C { ~C(); }; // CHECK: _ZL1c static C c[4]; int main() { } namespace PR22793 { template <typename> struct foo { protected: // CHECK-NOT: _ZN7PR227933fooIiED2Ev ~foo() = default; friend void func(); }; void func() { foo<int> f; } template struct foo<int>; }