virtual-destructor-calls.cpp revision 3b47733ceac33306bd54ce9d6c7d8eeeae52c7ca
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 an alias because there are no virtual bases. 12// CHECK: @_ZN1BD1Ev = alias {{.*}} @_ZN1BD2Ev 13 14// Deleting dtor: defers to the complete dtor. 15// CHECK: define void @_ZN1BD0Ev 16// CHECK: call void @_ZN1BD1Ev 17// CHECK: call void @_ZdlPv 18 19// Base dtor: actually calls A's base dtor. 20// CHECK: define void @_ZN1BD2Ev 21// CHECK: call void @_ZN1AD2Ev 22 23B::~B() { } 24