diff options
Diffstat (limited to 'test/profile/Linux/coverage_dtor.cpp')
-rw-r--r-- | test/profile/Linux/coverage_dtor.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/profile/Linux/coverage_dtor.cpp b/test/profile/Linux/coverage_dtor.cpp new file mode 100644 index 000000000000..f35eb100fa12 --- /dev/null +++ b/test/profile/Linux/coverage_dtor.cpp @@ -0,0 +1,26 @@ +// RUN: %clang_profgen -x c++ -fno-exceptions -std=c++11 -fuse-ld=gold -fcoverage-mapping -o %t %s +// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t +// RUN: llvm-profdata merge -o %t.profdata %t.profraw +// RUN: llvm-cov show %t -instr-profile %t.profdata -filename-equivalence 2>&1 | FileCheck %s + +int g = 100; +struct Base { + int B; + Base(int B_) : B(B_) {} + ~Base() { g -= B; } +}; + +struct Derived : public Base { + Derived(int K) : Base(K) {} + ~Derived() = default; // CHECK: 2| [[@LINE]]| ~Derived() = default; +}; + +int main() { + { + Derived dd(10); + Derived dd2(90); + } + if (g != 0) + return 1; // CHECK: 0| [[@LINE]]| return 1; + return 0; +} |