diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-05-01 21:35:41 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-05-01 21:35:41 +0000 |
commit | ead97576a962ab9e6dfc3d09e5aafe301acad404 (patch) | |
tree | 84191bb53dd642417b53decdf8c72b46b17edf93 /clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp | |
parent | 0de23468590ba8db68596ac3e84a85978f890f3c (diff) | |
download | bcm5719-llvm-ead97576a962ab9e6dfc3d09e5aafe301acad404.tar.gz bcm5719-llvm-ead97576a962ab9e6dfc3d09e5aafe301acad404.zip |
[MS ABI] NV bases may indirectly contain covariant thunks from V Bases
A class might contain multiple ways of getting to a vbase, some of which
are virtual and other non-virtual. It may be the case that a
non-virtual base contains an override of a method in a vbase. This
means that we must carefully pick between a set of nvbases to determine
which is the best.
As a consequence, the findPathForVPtr algorithm is considerably simpler.
llvm-svn: 236353
Diffstat (limited to 'clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp b/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp index d600ebbf4c2..1a6797c80ec 100644 --- a/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp +++ b/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp @@ -423,7 +423,7 @@ void use(T *obj) { obj->f(); } namespace Test10 { struct X : virtual C, virtual A { - // CHECK-LABEL: VFTable for 'A' in 'Test10::X' (2 entries). + // CHECK-LABEL: VFTable for 'A' in 'C' in 'Test10::X' (2 entries). // CHECK-NEXT: 0 | void Test10::X::f() // CHECK-NEXT: 1 | void A::z() @@ -782,7 +782,7 @@ struct B : virtual A { virtual void g(void); }; struct C : virtual A, B { C(); }; C::C() {} -// CHECK-LABEL: VFTable for 'pr21031_1::A' in 'pr21031_1::B' in 'pr21031_1::C' (1 entry) +// CHECK-LABEL: VFTable for 'pr21031_1::A' in 'pr21031_1::C' (1 entry) // CHECK-NEXT: 0 | void pr21031_1::A::f() // CHECK-LABEL: VFTable for 'pr21031_1::B' in 'pr21031_1::C' (1 entry) |