1*67e74705SXin Li // Tests for instrumentation of C++ constructors and destructors. 2*67e74705SXin Li // 3*67e74705SXin Li // RUN: %clang_cc1 -triple x86_64-apple-macosx10.11.0 -x c++ %s -o - -emit-llvm -fprofile-instrument=clang | FileCheck %s 4*67e74705SXin Li 5*67e74705SXin Li struct Foo { FooFoo6*67e74705SXin Li Foo() {} FooFoo7*67e74705SXin Li Foo(int) {} ~FooFoo8*67e74705SXin Li ~Foo() {} 9*67e74705SXin Li }; 10*67e74705SXin Li 11*67e74705SXin Li struct Bar : public Foo { BarBar12*67e74705SXin Li Bar() {} BarBar13*67e74705SXin Li Bar(int x) : Foo(x) {} 14*67e74705SXin Li ~Bar(); 15*67e74705SXin Li }; 16*67e74705SXin Li 17*67e74705SXin Li Foo foo; 18*67e74705SXin Li Foo foo2(1); 19*67e74705SXin Li Bar bar; 20*67e74705SXin Li 21*67e74705SXin Li // Profile data for complete constructors and destructors must absent. 22*67e74705SXin Li 23*67e74705SXin Li // CHECK-NOT: @__profn__ZN3FooC1Ev 24*67e74705SXin Li // CHECK-NOT: @__profn__ZN3FooC1Ei 25*67e74705SXin Li // CHECK-NOT: @__profn__ZN3FooD1Ev 26*67e74705SXin Li // CHECK-NOT: @__profn__ZN3BarC1Ev 27*67e74705SXin Li // CHECK-NOT: @__profn__ZN3BarD1Ev 28*67e74705SXin Li // CHECK-NOT: @__profc__ZN3FooD1Ev 29*67e74705SXin Li // CHECK-NOT: @__profd__ZN3FooD1Ev 30*67e74705SXin Li main()31*67e74705SXin Liint main() { 32*67e74705SXin Li } 33