llvm-project/lldb/lit/SymbolFile/PDB/udt-layout.test
Aleksandr Urakov 7d2a74fc54 [PDB] Parse UDT symbols and pointers to members (combined patch)
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
2018-08-14 07:57:44 +00:00

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:}