xref: /llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-synth/main.cpp (revision fdea9a4ec9b0d9585b8fe8a612686d9f44f40ddc)
1*99451b44SJordan Rupprecht #include <stdio.h>
2*99451b44SJordan Rupprecht #include <stdlib.h>
3*99451b44SJordan Rupprecht #include <stdint.h>
4*99451b44SJordan Rupprecht 
5*99451b44SJordan Rupprecht struct BagOfInts
6*99451b44SJordan Rupprecht {
7*99451b44SJordan Rupprecht     int x;
8*99451b44SJordan Rupprecht     int y;
9*99451b44SJordan Rupprecht     int z;
BagOfIntsBagOfInts10*99451b44SJordan Rupprecht     BagOfInts(int X) :
11*99451b44SJordan Rupprecht     x(X),
12*99451b44SJordan Rupprecht     y(X+1),
13*99451b44SJordan Rupprecht     z(X+2) {}
14*99451b44SJordan Rupprecht };
15*99451b44SJordan Rupprecht 
16*99451b44SJordan Rupprecht struct BagOfFloats
17*99451b44SJordan Rupprecht {
18*99451b44SJordan Rupprecht     float x;
19*99451b44SJordan Rupprecht     float y;
20*99451b44SJordan Rupprecht     float z;
BagOfFloatsBagOfFloats21*99451b44SJordan Rupprecht     BagOfFloats(float X) :
22*99451b44SJordan Rupprecht     x(X+0.334),
23*99451b44SJordan Rupprecht     y(X+0.500),
24*99451b44SJordan Rupprecht     z(X+0.667) {}
25*99451b44SJordan Rupprecht };
26*99451b44SJordan Rupprecht 
27*99451b44SJordan Rupprecht struct BagOfBags
28*99451b44SJordan Rupprecht {
29*99451b44SJordan Rupprecht     BagOfInts x;
30*99451b44SJordan Rupprecht     BagOfInts y;
31*99451b44SJordan Rupprecht     BagOfFloats z;
32*99451b44SJordan Rupprecht     BagOfFloats q;
BagOfBagsBagOfBags33*99451b44SJordan Rupprecht     BagOfBags() :
34*99451b44SJordan Rupprecht     x('E'),
35*99451b44SJordan Rupprecht     y('B'),
36*99451b44SJordan Rupprecht     z(1.1),
37*99451b44SJordan Rupprecht     q(20.11) {}
38*99451b44SJordan Rupprecht };
39*99451b44SJordan Rupprecht 
40*99451b44SJordan Rupprecht struct EmptyStruct {};
41*99451b44SJordan Rupprecht 
42*99451b44SJordan Rupprecht struct Plenty
43*99451b44SJordan Rupprecht {
44*99451b44SJordan Rupprecht     BagOfInts *some_values;
45*99451b44SJordan Rupprecht     int* array;
46*99451b44SJordan Rupprecht     int array_size;
47*99451b44SJordan Rupprecht     int bitfield;
48*99451b44SJordan Rupprecht 
PlentyPlenty49*99451b44SJordan Rupprecht     Plenty(int N, bool flagA, bool flagB) :
50*99451b44SJordan Rupprecht     some_values(new BagOfInts(N)),
51*99451b44SJordan Rupprecht     array(new int[N]),
52*99451b44SJordan Rupprecht     array_size(N),
53*99451b44SJordan Rupprecht     bitfield( (flagA ? 0x01 : 0x00) | (flagB ? 0x10 : 0x00) )
54*99451b44SJordan Rupprecht     {
55*99451b44SJordan Rupprecht         for (int j = 0; j < N; j++)
56*99451b44SJordan Rupprecht             array[j] = N-j;
57*99451b44SJordan Rupprecht     }
58*99451b44SJordan Rupprecht };
59*99451b44SJordan Rupprecht 
main(int argc,const char * argv[])60*99451b44SJordan Rupprecht int main (int argc, const char * argv[])
61*99451b44SJordan Rupprecht {
62*99451b44SJordan Rupprecht     BagOfInts int_bag(6);
63*99451b44SJordan Rupprecht     BagOfFloats float_bag(2.71);
64*99451b44SJordan Rupprecht 
65*99451b44SJordan Rupprecht     BagOfBags bag_bag;
66*99451b44SJordan Rupprecht     EmptyStruct es;
67*99451b44SJordan Rupprecht 
68*99451b44SJordan Rupprecht     Plenty plenty_of_stuff(5,true,false);
69*99451b44SJordan Rupprecht 
70*99451b44SJordan Rupprecht     plenty_of_stuff.bitfield = 0x11; // Set break point at this line.
71*99451b44SJordan Rupprecht 
72*99451b44SJordan Rupprecht     bag_bag.x.z = 12;
73*99451b44SJordan Rupprecht 
74*99451b44SJordan Rupprecht     return 0;
75*99451b44SJordan Rupprecht 
76*99451b44SJordan Rupprecht }
77*99451b44SJordan Rupprecht 
78