1 //===-- main.cpp ------------------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <stdint.h>
13 
14 struct i_am_cool
15 {
16 	int integer;
17 	float floating;
18 	char character;
i_am_cooli_am_cool19 	i_am_cool(int I, float F, char C) :
20     integer(I), floating(F), character(C) {}
i_am_cooli_am_cool21 	i_am_cool() : integer(1), floating(2), character('3') {}
22 
23 };
24 
25 struct i_am_cooler
26 {
27 	i_am_cool first_cool;
28 	i_am_cool second_cool;
29 	float floating;
30 
i_am_cooleri_am_cooler31 	i_am_cooler(int I1, int I2, float F1, float F2, char C1, char C2) :
32     first_cool(I1,F1,C1),
33     second_cool(I2,F2,C2),
34     floating((F1 + F2)/2) {}
35 };
36 
37 struct IWrapPointers
38 {
39     int* int_pointer;
40     float* float_pointer;
IWrapPointersIWrapPointers41 	IWrapPointers() : int_pointer(new int(4)), float_pointer(new float(1.111)) {}
42 };
43 
44 struct Simple
45 {
46 	int x;
47 	float y;
48 	char z;
SimpleSimple49 	Simple(int X, float Y, char Z) :
50 	x(X),
51 	y(Y),
52 	z(Z)
53 	{}
54 };
55 
56 struct SimpleWithPointers
57 {
58 	int *x;
59 	float *y;
60 	char *z;
SimpleWithPointersSimpleWithPointers61 	SimpleWithPointers(int X, float Y, char Z) :
62 	x(new int (X)),
63 	y(new float (Y)),
64 	z(new char[2])
65 	{
66           z[0] = Z;
67           z[1] = '\0';
68         }
69 };
70 
71 struct Couple
72 {
73 	SimpleWithPointers sp;
74 	Simple* s;
CoupleCouple75 	Couple(int X, float Y, char Z) : sp(X,Y,Z),
76 	s(new Simple(X,Y,Z)) {}
77 };
78 
79 struct VeryLong
80 {
81     int a_1;
82     int b_1;
83     int c_1;
84     int d_1;
85     int e_1;
86     int f_1;
87     int g_1;
88     int h_1;
89     int i_1;
90     int j_1;
91     int k_1;
92     int l_1;
93     int m_1;
94     int n_1;
95     int o_1;
96     int p_1;
97     int q_1;
98     int r_1;
99     int s_1;
100     int t_1;
101     int u_1;
102     int v_1;
103     int w_1;
104     int x_1;
105     int y_1;
106     int z_1;
107 
108     int a_2;
109     int b_2;
110     int c_2;
111     int d_2;
112     int e_2;
113     int f_2;
114     int g_2;
115     int h_2;
116     int i_2;
117     int j_2;
118     int k_2;
119     int l_2;
120     int m_2;
121     int n_2;
122     int o_2;
123     int p_2;
124     int q_2;
125     int r_2;
126     int s_2;
127     int t_2;
128     int u_2;
129     int v_2;
130     int w_2;
131     int x_2;
132     int y_2;
133     int z_2;
134 };
135 
main(int argc,const char * argv[])136 int main (int argc, const char * argv[])
137 {
138 
139     int iAmInt = 9;
140 
141     i_am_cool cool_boy(1,0.5,3);
142     i_am_cooler cooler_boy(1,2,0.1,0.2,'A','B');
143 
144 	i_am_cool *cool_pointer = new i_am_cool(3,-3.141592,'E');
145 
146     i_am_cool cool_array[5];
147 
148     cool_array[3].floating = 5.25;
149     cool_array[4].integer = 6;
150     cool_array[2].character = 'Q';
151 
152     int int_array[] = {1,2,3,4,5};
153 
154     IWrapPointers wrapper;
155 
156     *int_array = -1;
157 
158     int* pointer = &cool_array[4].integer;
159 
160     IWrapPointers *wrap_pointer = &wrapper;
161 
162     Couple couple(9,9.99,'X');
163 
164 	SimpleWithPointers sparray[] =
165         {SimpleWithPointers(-1,-2,'3'),
166         SimpleWithPointers(-4,-5,'6'),
167         SimpleWithPointers(-7,-8,'9')};
168 
169     Simple a_simple_object(3,0.14,'E');
170 
171     VeryLong a_long_guy;
172 
173     return 0; // Set break point at this line.
174 }
175