[MS ABI] NV bases may indirectly contain covariant thunks from V Bases
authorDavid Majnemer <david.majnemer@gmail.com>
Fri, 1 May 2015 21:35:41 +0000 (21:35 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Fri, 1 May 2015 21:35:41 +0000 (21:35 +0000)
commitead97576a962ab9e6dfc3d09e5aafe301acad404
tree84191bb53dd642417b53decdf8c72b46b17edf93
parent0de23468590ba8db68596ac3e84a85978f890f3c
[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
clang/lib/AST/VTableBuilder.cpp
clang/test/CodeGenCXX/microsoft-abi-vtables-return-thunks.cpp
clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp