diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-04-30 17:15:48 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-04-30 17:15:48 +0000 |
commit | 46e27226b78f5fe9beb9690e04f6a1c100c513ab (patch) | |
tree | 6df1d28b25cdccc102c3f0cf4d10702ced385713 /test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp | |
parent | b2381f3017382952c8b611e580d2a804d1212c9c (diff) |
[MS ABI] Correctly make paths through covariant virtual bases
There can be multiple virtual bases which are on the path to a vfptr
when one vbase virtually inherits from another. We should prefer the
most derived virtual base which covariantly overrides a method in the
vfptr class; if we do not lengthen the path this way, we will end up
with too few vftable entries.
This fixes PR21073.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@236239 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp')
-rw-r--r-- | test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp b/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp index 83f8114bae..d600ebbf4c 100644 --- a/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp +++ b/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 'C' in 'Test10::X' (2 entries). + // CHECK-LABEL: VFTable for 'A' in 'Test10::X' (2 entries). // CHECK-NEXT: 0 | void Test10::X::f() // CHECK-NEXT: 1 | void A::z() |