xref: /llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/main.cpp (revision f4461cf4f30417be118487142bca6635e07ed1e6)
1*f4461cf4SMichael Buch #include <stdint.h>
299451b44SJordan Rupprecht #include <stdio.h>
399451b44SJordan Rupprecht #include <stdlib.h>
4*f4461cf4SMichael Buch #include <string>
599451b44SJordan Rupprecht 
699451b44SJordan Rupprecht struct i_am_cool
799451b44SJordan Rupprecht {
899451b44SJordan Rupprecht 	int integer;
999451b44SJordan Rupprecht 	float floating;
1099451b44SJordan Rupprecht 	char character;
i_am_cooli_am_cool1199451b44SJordan Rupprecht 	i_am_cool(int I, float F, char C) :
1299451b44SJordan Rupprecht     integer(I), floating(F), character(C) {}
i_am_cooli_am_cool1399451b44SJordan Rupprecht 	i_am_cool() : integer(1), floating(2), character('3') {}
1499451b44SJordan Rupprecht 
1599451b44SJordan Rupprecht };
1699451b44SJordan Rupprecht 
1799451b44SJordan Rupprecht struct i_am_cooler
1899451b44SJordan Rupprecht {
1999451b44SJordan Rupprecht 	i_am_cool first_cool;
2099451b44SJordan Rupprecht 	i_am_cool second_cool;
2199451b44SJordan Rupprecht 	float floating;
2299451b44SJordan Rupprecht 
i_am_cooleri_am_cooler2399451b44SJordan Rupprecht 	i_am_cooler(int I1, int I2, float F1, float F2, char C1, char C2) :
2499451b44SJordan Rupprecht     first_cool(I1,F1,C1),
2599451b44SJordan Rupprecht     second_cool(I2,F2,C2),
2699451b44SJordan Rupprecht     floating((F1 + F2)/2) {}
2799451b44SJordan Rupprecht };
2899451b44SJordan Rupprecht 
2999451b44SJordan Rupprecht struct IWrapPointers
3099451b44SJordan Rupprecht {
3199451b44SJordan Rupprecht     int* int_pointer;
3299451b44SJordan Rupprecht     float* float_pointer;
IWrapPointersIWrapPointers3399451b44SJordan Rupprecht 	IWrapPointers() : int_pointer(new int(4)), float_pointer(new float(1.111)) {}
3499451b44SJordan Rupprecht };
3599451b44SJordan Rupprecht 
3699451b44SJordan Rupprecht struct Simple
3799451b44SJordan Rupprecht {
3899451b44SJordan Rupprecht 	int x;
3999451b44SJordan Rupprecht 	float y;
4099451b44SJordan Rupprecht 	char z;
SimpleSimple4199451b44SJordan Rupprecht 	Simple(int X, float Y, char Z) :
4299451b44SJordan Rupprecht 	x(X),
4399451b44SJordan Rupprecht 	y(Y),
4499451b44SJordan Rupprecht 	z(Z)
4599451b44SJordan Rupprecht 	{}
4699451b44SJordan Rupprecht };
4799451b44SJordan Rupprecht 
4899451b44SJordan Rupprecht struct SimpleWithPointers
4999451b44SJordan Rupprecht {
5099451b44SJordan Rupprecht 	int *x;
5199451b44SJordan Rupprecht 	float *y;
5299451b44SJordan Rupprecht 	char *z;
SimpleWithPointersSimpleWithPointers5399451b44SJordan Rupprecht 	SimpleWithPointers(int X, float Y, char Z) :
5499451b44SJordan Rupprecht 	x(new int (X)),
5599451b44SJordan Rupprecht 	y(new float (Y)),
5699451b44SJordan Rupprecht 	z(new char[2])
5799451b44SJordan Rupprecht 	{
5899451b44SJordan Rupprecht           z[0] = Z;
5999451b44SJordan Rupprecht           z[1] = '\0';
6099451b44SJordan Rupprecht         }
6199451b44SJordan Rupprecht };
6299451b44SJordan Rupprecht 
6399451b44SJordan Rupprecht struct Couple
6499451b44SJordan Rupprecht {
6599451b44SJordan Rupprecht 	SimpleWithPointers sp;
6699451b44SJordan Rupprecht 	Simple* s;
CoupleCouple6799451b44SJordan Rupprecht 	Couple(int X, float Y, char Z) : sp(X,Y,Z),
6899451b44SJordan Rupprecht 	s(new Simple(X,Y,Z)) {}
6999451b44SJordan Rupprecht };
7099451b44SJordan Rupprecht 
7199451b44SJordan Rupprecht struct VeryLong
7299451b44SJordan Rupprecht {
7399451b44SJordan Rupprecht     int a_1;
7499451b44SJordan Rupprecht     int b_1;
7599451b44SJordan Rupprecht     int c_1;
7699451b44SJordan Rupprecht     int d_1;
7799451b44SJordan Rupprecht     int e_1;
7899451b44SJordan Rupprecht     int f_1;
7999451b44SJordan Rupprecht     int g_1;
8099451b44SJordan Rupprecht     int h_1;
8199451b44SJordan Rupprecht     int i_1;
8299451b44SJordan Rupprecht     int j_1;
8399451b44SJordan Rupprecht     int k_1;
8499451b44SJordan Rupprecht     int l_1;
8599451b44SJordan Rupprecht     int m_1;
8699451b44SJordan Rupprecht     int n_1;
8799451b44SJordan Rupprecht     int o_1;
8899451b44SJordan Rupprecht     int p_1;
8999451b44SJordan Rupprecht     int q_1;
9099451b44SJordan Rupprecht     int r_1;
9199451b44SJordan Rupprecht     int s_1;
9299451b44SJordan Rupprecht     int t_1;
9399451b44SJordan Rupprecht     int u_1;
9499451b44SJordan Rupprecht     int v_1;
9599451b44SJordan Rupprecht     int w_1;
9699451b44SJordan Rupprecht     int x_1;
9799451b44SJordan Rupprecht     int y_1;
9899451b44SJordan Rupprecht     int z_1;
9999451b44SJordan Rupprecht 
10099451b44SJordan Rupprecht     int a_2;
10199451b44SJordan Rupprecht     int b_2;
10299451b44SJordan Rupprecht     int c_2;
10399451b44SJordan Rupprecht     int d_2;
10499451b44SJordan Rupprecht     int e_2;
10599451b44SJordan Rupprecht     int f_2;
10699451b44SJordan Rupprecht     int g_2;
10799451b44SJordan Rupprecht     int h_2;
10899451b44SJordan Rupprecht     int i_2;
10999451b44SJordan Rupprecht     int j_2;
11099451b44SJordan Rupprecht     int k_2;
11199451b44SJordan Rupprecht     int l_2;
11299451b44SJordan Rupprecht     int m_2;
11399451b44SJordan Rupprecht     int n_2;
11499451b44SJordan Rupprecht     int o_2;
11599451b44SJordan Rupprecht     int p_2;
11699451b44SJordan Rupprecht     int q_2;
11799451b44SJordan Rupprecht     int r_2;
11899451b44SJordan Rupprecht     int s_2;
11999451b44SJordan Rupprecht     int t_2;
12099451b44SJordan Rupprecht     int u_2;
12199451b44SJordan Rupprecht     int v_2;
12299451b44SJordan Rupprecht     int w_2;
12399451b44SJordan Rupprecht     int x_2;
12499451b44SJordan Rupprecht     int y_2;
12599451b44SJordan Rupprecht     int z_2;
12699451b44SJordan Rupprecht };
12799451b44SJordan Rupprecht 
main(int argc,const char * argv[])12899451b44SJordan Rupprecht int main (int argc, const char * argv[])
12999451b44SJordan Rupprecht {
13099451b44SJordan Rupprecht 
13199451b44SJordan Rupprecht     int iAmInt = 9;
13279ac5bbbSShafik Yaghmour     const int constInt = 42;
13379ac5bbbSShafik Yaghmour     volatile int volatileInt = 43;
13479ac5bbbSShafik Yaghmour     const volatile int constVolatileInt = 44;
13599451b44SJordan Rupprecht 
13699451b44SJordan Rupprecht     i_am_cool cool_boy(1,0.5,3);
13799451b44SJordan Rupprecht     i_am_cooler cooler_boy(1,2,0.1,0.2,'A','B');
13899451b44SJordan Rupprecht 
13999451b44SJordan Rupprecht 	i_am_cool *cool_pointer = new i_am_cool(3,-3.141592,'E');
14099451b44SJordan Rupprecht 
14199451b44SJordan Rupprecht     i_am_cool cool_array[5];
14299451b44SJordan Rupprecht 
14399451b44SJordan Rupprecht     cool_array[3].floating = 5.25;
14499451b44SJordan Rupprecht     cool_array[4].integer = 6;
14599451b44SJordan Rupprecht     cool_array[2].character = 'Q';
14699451b44SJordan Rupprecht 
14799451b44SJordan Rupprecht     int int_array[] = {1,2,3,4,5};
1483abd063fSPavel Labath     const int const_int_array[] = {11, 12, 13, 14, 15};
14999451b44SJordan Rupprecht 
15099451b44SJordan Rupprecht     IWrapPointers wrapper;
15199451b44SJordan Rupprecht 
15299451b44SJordan Rupprecht     *int_array = -1;
15399451b44SJordan Rupprecht 
15499451b44SJordan Rupprecht     int* pointer = &cool_array[4].integer;
15599451b44SJordan Rupprecht 
15699451b44SJordan Rupprecht     IWrapPointers *wrap_pointer = &wrapper;
15799451b44SJordan Rupprecht 
15899451b44SJordan Rupprecht     Couple couple(9,9.99,'X');
15999451b44SJordan Rupprecht 
16099451b44SJordan Rupprecht 	SimpleWithPointers sparray[] =
16199451b44SJordan Rupprecht         {SimpleWithPointers(-1,-2,'3'),
16299451b44SJordan Rupprecht         SimpleWithPointers(-4,-5,'6'),
16399451b44SJordan Rupprecht         SimpleWithPointers(-7,-8,'9')};
16499451b44SJordan Rupprecht 
16599451b44SJordan Rupprecht     Simple a_simple_object(3,0.14,'E');
16699451b44SJordan Rupprecht 
16799451b44SJordan Rupprecht     VeryLong a_long_guy;
16899451b44SJordan Rupprecht 
169*f4461cf4SMichael Buch     std::string some_string = "012345678901234567890123456789"
170*f4461cf4SMichael Buch                               "012345678901234567890123456789"
171*f4461cf4SMichael Buch                               "012345678901234567890123456789"
172*f4461cf4SMichael Buch                               "012345678901234567890123456789";
173*f4461cf4SMichael Buch     char const *some_cstring = some_string.c_str();
174*f4461cf4SMichael Buch 
175*f4461cf4SMichael Buch     char const some_carr[] = "012345678901234567890123456789"
176*f4461cf4SMichael Buch                              "012345678901234567890123456789"
177*f4461cf4SMichael Buch                              "012345678901234567890123456789"
178*f4461cf4SMichael Buch                              "012345678901234567890123456789";
179*f4461cf4SMichael Buch 
18099451b44SJordan Rupprecht     return 0; // Set break point at this line.
18199451b44SJordan Rupprecht }
182