1#include <cstdint>
2
3int main(int argc, char **argv) {
4 enum BitFieldEnum : uint32_t { kZero, kOne };
5
6 struct BitFieldStruct {
7 uint16_t a : 10;
8 uint32_t b : 4;
9 bool c : 1;
10 bool d : 1;
11 int32_t e : 32;
12 uint32_t f : 32;
13 uint32_t g : 31;
14 uint64_t h : 31;
15 uint64_t i : 33;
16 BitFieldEnum j : 10;
17 };
18
19 BitFieldStruct bf;
20 bf.a = 0b1111111111;
21 bf.b = 0b1001;
22 bf.c = 0b0;
23 bf.d = 0b1;
24 bf.e = 0b1;
25 bf.f = 0b1;
26 bf.g = 0b1;
27 bf.h = 0b1;
28 bf.i = 0b1;
29 bf.j = BitFieldEnum::kOne;
30
31 struct AlignedBitFieldStruct {
32 uint16_t a : 10;
33 uint8_t b : 4;
34 unsigned char : 0;
35 uint16_t c : 2;
36 };
37
38 uint32_t data = ~0;
39 AlignedBitFieldStruct abf = (AlignedBitFieldStruct &)data;
40
41 return 0; // Set a breakpoint here
42}
43

source code of lldb/test/API/commands/frame/var-dil/basics/BitField/main.cpp