| // 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>; |
| } |