diff options
author | Timur Iskhodzhanov <timurrrr@google.com> | 2013-10-16 18:24:06 +0000 |
---|---|---|
committer | Timur Iskhodzhanov <timurrrr@google.com> | 2013-10-16 18:24:06 +0000 |
commit | 62082b7e0b0b7a299524f6191ddbfd62ed6b17d8 (patch) | |
tree | a9d6f794874454fd7ef804838ab554867a3aa9e6 /clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp | |
parent | 84355db7f9dc50cec5de4127d03fc40a84772f78 (diff) | |
download | bcm5719-llvm-62082b7e0b0b7a299524f6191ddbfd62ed6b17d8.tar.gz bcm5719-llvm-62082b7e0b0b7a299524f6191ddbfd62ed6b17d8.zip |
[-cxx-abi microsoft] Fix this argument/parameter offsets for virtual destructors in the presence of virtual bases
Reviewed at http://llvm-reviews.chandlerc.com/D1939
llvm-svn: 192822
Diffstat (limited to 'clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp b/clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp index 5d73536c2de..dc479f4eff8 100644 --- a/clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp +++ b/clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp @@ -181,3 +181,21 @@ void emit_ctors() { // CHECK: store [1 x i8*]* @"\01??_7GrandchildOverride@@6BRight@@@", [1 x i8*]** %[[VFPTR]] // CHECK: ret } + +struct LeftWithNonVirtualDtor { + virtual void left(); + ~LeftWithNonVirtualDtor(); +}; + +struct AsymmetricChild : LeftWithNonVirtualDtor, Right { + virtual ~AsymmetricChild(); +}; + +void call_asymmetric_child_complete_dtor() { + // CHECK-LABEL: define void @"\01?call_asymmetric_child_complete_dtor@@YAXXZ" + AsymmetricChild obj; + // CHECK: call x86_thiscallcc %struct.AsymmetricChild* @"\01??0AsymmetricChild@@QAE@XZ"(%struct.AsymmetricChild* %[[OBJ:.*]]) + // CHECK-NOT: getelementptr + // CHECK: call x86_thiscallcc void @"\01??1AsymmetricChild@@UAE@XZ"(%struct.AsymmetricChild* %[[OBJ]]) + // CHECK: ret +} |