blob: 8fe10476d4ae4dcb0f66265bd427865914667845 [file] [log] [blame]
Daniel Dunbar8fbe78f2009-12-15 20:14:24 +00001// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-apple-darwin10 | FileCheck %s
Anders Carlssonce460522009-12-04 19:33:17 +00002
3struct A {
4 virtual ~A();
5};
6
7struct B : A {
8 virtual ~B();
9};
10
John McCall5c60a6f2010-02-18 19:59:28 +000011// Complete dtor: just an alias because there are no virtual bases.
John McCall67cea742010-02-17 03:52:49 +000012// CHECK: @_ZN1BD1Ev = alias {{.*}} @_ZN1BD2Ev
Anders Carlssone36a6b32010-01-02 01:01:18 +000013
John McCall5c60a6f2010-02-18 19:59:28 +000014// Deleting dtor: defers to the complete dtor.
Anders Carlssonce460522009-12-04 19:33:17 +000015// CHECK: define void @_ZN1BD0Ev
John McCall5c60a6f2010-02-18 19:59:28 +000016// CHECK: call void @_ZN1BD1Ev
17// CHECK: call void @_ZdlPv
Anders Carlssonce460522009-12-04 19:33:17 +000018
John McCall5c60a6f2010-02-18 19:59:28 +000019// Base dtor: actually calls A's base dtor.
Anders Carlssonce460522009-12-04 19:33:17 +000020// CHECK: define void @_ZN1BD2Ev
21// CHECK: call void @_ZN1AD2Ev
22
23B::~B() { }