xref: /minix3/external/bsd/llvm/dist/clang/test/Layout/itanium-union-bitfield.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -emit-llvm-only -triple %itanium_abi_triple -fdump-record-layouts %s 2>/dev/null \
2*0a6a1f1dSLionel Sambuc // RUN:            | FileCheck %s
3*0a6a1f1dSLionel Sambuc 
4*0a6a1f1dSLionel Sambuc union A {
5*0a6a1f1dSLionel Sambuc   int f1: 3;
6*0a6a1f1dSLionel Sambuc   A();
7*0a6a1f1dSLionel Sambuc };
8*0a6a1f1dSLionel Sambuc 
A()9*0a6a1f1dSLionel Sambuc A::A() {}
10*0a6a1f1dSLionel Sambuc 
11*0a6a1f1dSLionel Sambuc union B {
12*0a6a1f1dSLionel Sambuc   char f1: 35;
13*0a6a1f1dSLionel Sambuc   B();
14*0a6a1f1dSLionel Sambuc };
15*0a6a1f1dSLionel Sambuc 
B()16*0a6a1f1dSLionel Sambuc B::B() {}
17*0a6a1f1dSLionel Sambuc 
18*0a6a1f1dSLionel Sambuc // CHECK:*** Dumping AST Record Layout
19*0a6a1f1dSLionel Sambuc // CHECK-NEXT:   0 | union A
20*0a6a1f1dSLionel Sambuc // CHECK-NEXT:   0 |   int f1
21*0a6a1f1dSLionel Sambuc // CHECK-NEXT:     | [sizeof=4, dsize=1, align=4
22*0a6a1f1dSLionel Sambuc // CHECK-NEXT:     |  nvsize=1, nvalign=4]
23*0a6a1f1dSLionel Sambuc 
24*0a6a1f1dSLionel Sambuc // CHECK:*** Dumping AST Record Layout
25*0a6a1f1dSLionel Sambuc // CHECK-NEXT:   0 | union B
26*0a6a1f1dSLionel Sambuc // CHECK-NEXT:   0 |   char f1
27*0a6a1f1dSLionel Sambuc // CHECK-NEXT:     | [sizeof=8, dsize=5, align=4
28*0a6a1f1dSLionel Sambuc // CHECK-NEXT:     |  nvsize=5, nvalign=4]
29*0a6a1f1dSLionel Sambuc 
30