| REQUIRES: target-windows, lld, diasdk | |
| RUN: %build --compiler=clang-cl --output=%t.exe %S/Inputs/UdtLayoutTest.cpp | |
| RUN: %lldb -b -s %S/Inputs/UdtLayoutTest.script -- %t.exe | FileCheck %s | |
| ; This uses the same input as SymbolFile/NativePDB/udt-layout.test. | |
| ; However, DIA has a different order in which it prints the bases, so the checks are separated. | |
| CHECK:(int) C::abc = 123 | |
| CHECK:(List[16]) ls = { | |
| CHECK: [15] = { | |
| CHECK: Prev = nullptr | |
| CHECK: Next = nullptr | |
| 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:} |