| // Tests for instrumentation of C++ constructors and destructors. |
| // |
| // RUN: %clang_cc1 -triple x86_64-apple-macosx10.11.0 -x c++ %s -o - -emit-llvm -fprofile-instrument=clang | FileCheck %s |
| |
| struct Foo { |
| Foo() {} |
| Foo(int) {} |
| ~Foo() {} |
| }; |
| |
| struct Bar : public Foo { |
| Bar() {} |
| Bar(int x) : Foo(x) {} |
| ~Bar(); |
| }; |
| |
| Foo foo; |
| Foo foo2(1); |
| Bar bar; |
| |
| // Profile data for complete constructors and destructors must absent. |
| |
| // CHECK-NOT: @__profn__ZN3FooC1Ev |
| // CHECK-NOT: @__profn__ZN3FooC1Ei |
| // CHECK-NOT: @__profn__ZN3FooD1Ev |
| // CHECK-NOT: @__profn__ZN3BarC1Ev |
| // CHECK-NOT: @__profn__ZN3BarD1Ev |
| // CHECK-NOT: @__profc__ZN3FooD1Ev |
| // CHECK-NOT: @__profd__ZN3FooD1Ev |
| |
| int main() { |
| } |