HomePhabricator

[NativePDB] Process virtual bases in the correct order

Authored by aleksandr.urakov on Feb 12 2019, 12:17 AM.

Description

[NativePDB] Process virtual bases in the correct order

Summary:
This patch makes virtual bases to be added in the correct order to the bases
list. It is important because VTableContext (MicrosoftVTableContext in our
case) uses then the order of virtual bases in the list to restore the virtual
table indexes. These indexes are used then to resolve the layout of the virtual
bases.

We haven't enough information about offsets of virtual bases regarding to the
object (moreover, in a common case we can't rely on such information, see the
example here: https://reviews.llvm.org/D53506#1272306 ), but there should be
enough information to restore the layout of the virtual bases from the indexes
in runtime. After D53506 this information is used whenever possible, so there
should be no problems with virtual bases' fields reading.

Reviewers: zturner, rnk, stella.stamenova

Subscribers: abidh, teemperor, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D56904

llvm-svn: 353806