180d4b898SXinliang David Li // RUN: %clang_profgen -x c++ -fno-exceptions -std=c++11 -fuse-ld=gold -fcoverage-mapping -o %t %s 2abf6d973SXinliang David Li // RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t 3abf6d973SXinliang David Li // RUN: llvm-profdata merge -o %t.profdata %t.profraw 4*f23fae29SFangrui Song // RUN: llvm-cov show %t -instr-profile %t.profdata 2>&1 | FileCheck %s 5abf6d973SXinliang David Li 6a3be895bSXinliang David Li int g = 100; 7abf6d973SXinliang David Li struct Base { 8abf6d973SXinliang David Li int B; BaseBase9abf6d973SXinliang David Li Base(int B_) : B(B_) {} ~BaseBase10a3be895bSXinliang David Li ~Base() { g -= B; } 11abf6d973SXinliang David Li }; 12abf6d973SXinliang David Li 13abf6d973SXinliang David Li struct Derived : public Base { DerivedDerived14a3be895bSXinliang David Li Derived(int K) : Base(K) {} 155e3c5e80SVedant Kumar ~Derived() = default; // CHECK: [[@LINE]]| 2| ~Derived() = default; 16abf6d973SXinliang David Li }; 17abf6d973SXinliang David Li main()18abf6d973SXinliang David Liint main() { 19a3be895bSXinliang David Li { 20abf6d973SXinliang David Li Derived dd(10); 21a3be895bSXinliang David Li Derived dd2(90); 22a3be895bSXinliang David Li } 23a3be895bSXinliang David Li if (g != 0) 245e3c5e80SVedant Kumar return 1; // CHECK: [[@LINE]]| 0| return 1; 25abf6d973SXinliang David Li return 0; 26abf6d973SXinliang David Li } 27