xref: /llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/no_unique_address-base-alignment.cpp (revision 4e6fa78f4dc8ba01eb63ccaf010f985df6e4a361)
1 // XFAIL: *
2 
3 // RUN: %clang --target=x86_64-apple-macosx -c -gdwarf -o %t %s
4 // RUN: %lldb %t \
5 // RUN:   -o "expr alignof(OverlappingDerived)" \
6 // RUN:   -o "expr sizeof(OverlappingDerived)" \
7 // RUN:   -o exit | FileCheck %s
8 
9 struct Empty {};
10 
11 struct OverlappingBase {
12   [[no_unique_address]] Empty e;
13 };
14 static_assert(sizeof(OverlappingBase) == 1);
15 static_assert(alignof(OverlappingBase) == 1);
16 
17 struct Base {
18   int mem;
19 };
20 
21 struct OverlappingDerived : Base, OverlappingBase {};
22 static_assert(alignof(OverlappingDerived) == 4);
23 static_assert(sizeof(OverlappingDerived) == 4);
24 
25 // CHECK:      (lldb) expr alignof(OverlappingDerived)
26 // CHECK-NEXT: ${{.*}} = 4
27 // CHECK:      (lldb) expr sizeof(OverlappingDerived)
28 // CHECK-NEXT: ${{.*}} = 4
29 
30 int main() { OverlappingDerived d; }
31