virtual-destructor-calls.cpp revision 8e51a1f5da6ef4a1a168d14116c6eed3a578a263
1// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-apple-darwin10 | FileCheck %s 2 3struct A { 4 virtual ~A(); 5}; 6 7struct B : A { 8 virtual ~B(); 9}; 10 11// Complete dtor: just defers to base dtor because there are no vbases. 12// CHECK: define void @_ZN1BD1Ev 13// CHECK: call void @_ZN1BD2Ev 14 15// Deleting dtor: defers to the complete dtor. 16// CHECK: define void @_ZN1BD0Ev 17// CHECK: call void @_ZN1BD1Ev 18// CHECK: call void @_ZdlPv 19 20// Base dtor: actually calls A's base dtor. 21// CHECK: define void @_ZN1BD2Ev 22// CHECK: call void @_ZN1AD2Ev 23 24B::~B() { } 25