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