
Summary: In this patch I've tried to combine the best ideas from D49368 and D49410, so it implements following: - Completion of UDTs from a PDB with a filling of a layout info; - Pointers to members; - Fixes the bug relating to a virtual base offset reading from `vbtable`. The offset was treated as an unsigned, but it can be a negative sometimes. - Support of MSInheritance attribute Reviewers: asmith, zturner, rnk, labath, clayborg, lldb-commits Reviewed By: zturner Subscribers: aleksandr.urakov, stella.stamenova, JDevlieghere, lldb-commits Differential Revision: https://reviews.llvm.org/D49980 llvm-svn: 339649
52 lines
1.2 KiB
Plaintext
52 lines
1.2 KiB
Plaintext
REQUIRES: windows
|
|
RUN: clang-cl /Zi %S/Inputs/UdtLayoutTest.cpp /o %t.exe
|
|
RUN: %lldb -b -s %S/Inputs/UdtLayoutTest.script -- %t.exe | FileCheck %s
|
|
|
|
CHECK:(int) int C::abc = 123
|
|
CHECK:(List [16]) ls = {
|
|
CHECK: [15] = {
|
|
CHECK: Prev = 0x00000000
|
|
CHECK: Next = 0x00000000
|
|
CHECK: Value = {
|
|
CHECK: B<0> = {
|
|
CHECK: A = {
|
|
CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2)
|
|
CHECK: }
|
|
CHECK: _a = '\x01'
|
|
CHECK: _b = 2
|
|
CHECK: _c = 3
|
|
CHECK: }
|
|
CHECK: B<1> = {
|
|
CHECK: A = {
|
|
CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2)
|
|
CHECK: }
|
|
CHECK: _a = '\x02'
|
|
CHECK: _b = 4
|
|
CHECK: _c = 6
|
|
CHECK: }
|
|
CHECK: B<2> = {
|
|
CHECK: A = {
|
|
CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2)
|
|
CHECK: }
|
|
CHECK: _a = '\x03'
|
|
CHECK: _b = 6
|
|
CHECK: _c = 9
|
|
CHECK: }
|
|
CHECK: B<3> = {
|
|
CHECK: A = {
|
|
CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2)
|
|
CHECK: }
|
|
CHECK: _a = '\x04'
|
|
CHECK: _b = 8
|
|
CHECK: _c = 12
|
|
CHECK: }
|
|
CHECK: A = {
|
|
CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2)
|
|
CHECK: }
|
|
CHECK: _x = 5
|
|
CHECK: _y = 10
|
|
CHECK: _z = '\x0f'
|
|
CHECK: }
|
|
CHECK: }
|
|
CHECK:}
|