ea6aeb4088a529dd201bdd64a9540df3688e8686
[scilab.git] / scilab / modules / jit / src / cpp / llvm-wrapper-generated.cpp
1 // Generated by llvm2cpp - DO NOT MODIFY!
2
3
4 Module* makeLLVMModuleContents(Module *mod)
5 {
6
7     mod->setModuleIdentifier("<stdin>");
8
9     // Type Definitions
10     StructType *StructTy_class_std__ios_base__Init = mod->getTypeByName("class.std::ios_base::Init");
11     if (!StructTy_class_std__ios_base__Init)
12     {
13         StructTy_class_std__ios_base__Init = StructType::create(mod->getContext(), "class.std::ios_base::Init");
14     }
15     std::vector<Type*>StructTy_class_std__ios_base__Init_fields;
16     StructTy_class_std__ios_base__Init_fields.push_back(IntegerType::get(mod->getContext(), 8));
17     if (StructTy_class_std__ios_base__Init->isOpaque())
18     {
19         StructTy_class_std__ios_base__Init->setBody(StructTy_class_std__ios_base__Init_fields, /*isPacked=*/false);
20     }
21
22     PointerType* PointerTy_0 = PointerType::get(StructTy_class_std__ios_base__Init, 0);
23
24     PointerType* PointerTy_1 = PointerType::get(IntegerType::get(mod->getContext(), 8), 0);
25
26     std::vector<Type*>StructTy_3_fields;
27     StructTy_3_fields.push_back(IntegerType::get(mod->getContext(), 32));
28     std::vector<Type*>FuncTy_5_args;
29     FunctionType* FuncTy_5 = FunctionType::get(
30                                  /*Result=*/Type::getVoidTy(mod->getContext()),
31                                  /*Params=*/FuncTy_5_args,
32                                  /*isVarArg=*/false);
33
34     PointerType* PointerTy_4 = PointerType::get(FuncTy_5, 0);
35
36     StructTy_3_fields.push_back(PointerTy_4);
37     StructType *StructTy_3 = StructType::get(mod->getContext(), StructTy_3_fields, /*isPacked=*/false);
38
39     ArrayType* ArrayTy_2 = ArrayType::get(StructTy_3, 1);
40
41     PointerType* PointerTy_6 = PointerType::get(ArrayTy_2, 0);
42
43     std::vector<Type*>FuncTy_8_args;
44     FuncTy_8_args.push_back(PointerTy_0);
45     FunctionType* FuncTy_8 = FunctionType::get(
46                                  /*Result=*/Type::getVoidTy(mod->getContext()),
47                                  /*Params=*/FuncTy_8_args,
48                                  /*isVarArg=*/false);
49
50     PointerType* PointerTy_7 = PointerType::get(FuncTy_8, 0);
51
52     std::vector<Type*>FuncTy_10_args;
53     FuncTy_10_args.push_back(PointerTy_1);
54     FunctionType* FuncTy_10 = FunctionType::get(
55                                   /*Result=*/Type::getVoidTy(mod->getContext()),
56                                   /*Params=*/FuncTy_10_args,
57                                   /*isVarArg=*/false);
58
59     PointerType* PointerTy_9 = PointerType::get(FuncTy_10, 0);
60
61     std::vector<Type*>FuncTy_12_args;
62     FuncTy_12_args.push_back(PointerTy_9);
63     FuncTy_12_args.push_back(PointerTy_1);
64     FuncTy_12_args.push_back(PointerTy_1);
65     FunctionType* FuncTy_12 = FunctionType::get(
66                                   /*Result=*/IntegerType::get(mod->getContext(), 32),
67                                   /*Params=*/FuncTy_12_args,
68                                   /*isVarArg=*/false);
69
70     PointerType* PointerTy_11 = PointerType::get(FuncTy_12, 0);
71
72     std::vector<Type*>FuncTy_13_args;
73     FunctionType* FuncTy_13 = FunctionType::get(
74                                   /*Result=*/IntegerType::get(mod->getContext(), 32),
75                                   /*Params=*/FuncTy_13_args,
76                                   /*isVarArg=*/false);
77
78     StructType *StructTy_class_types__Double = mod->getTypeByName("class.types::Double");
79     if (!StructTy_class_types__Double)
80     {
81         StructTy_class_types__Double = StructType::create(mod->getContext(), "class.types::Double");
82     }
83     std::vector<Type*>StructTy_class_types__Double_fields;
84     StructType *StructTy_class_types__ArrayOf = mod->getTypeByName("class.types::ArrayOf");
85     if (!StructTy_class_types__ArrayOf)
86     {
87         StructTy_class_types__ArrayOf = StructType::create(mod->getContext(), "class.types::ArrayOf");
88     }
89     std::vector<Type*>StructTy_class_types__ArrayOf_fields;
90     StructType *StructTy_class_types__GenericType = mod->getTypeByName("class.types::GenericType");
91     if (!StructTy_class_types__GenericType)
92     {
93         StructTy_class_types__GenericType = StructType::create(mod->getContext(), "class.types::GenericType");
94     }
95     std::vector<Type*>StructTy_class_types__GenericType_fields;
96     ArrayType* ArrayTy_16 = ArrayType::get(IntegerType::get(mod->getContext(), 8), 36);
97
98     StructTy_class_types__GenericType_fields.push_back(ArrayTy_16);
99     StructTy_class_types__GenericType_fields.push_back(IntegerType::get(mod->getContext(), 32));
100     StructTy_class_types__GenericType_fields.push_back(IntegerType::get(mod->getContext(), 32));
101     StructTy_class_types__GenericType_fields.push_back(IntegerType::get(mod->getContext(), 32));
102     StructTy_class_types__GenericType_fields.push_back(IntegerType::get(mod->getContext(), 32));
103     ArrayType* ArrayTy_17 = ArrayType::get(IntegerType::get(mod->getContext(), 32), 50);
104
105     StructTy_class_types__GenericType_fields.push_back(ArrayTy_17);
106     StructTy_class_types__GenericType_fields.push_back(IntegerType::get(mod->getContext(), 32));
107     if (StructTy_class_types__GenericType->isOpaque())
108     {
109         StructTy_class_types__GenericType->setBody(StructTy_class_types__GenericType_fields, /*isPacked=*/false);
110     }
111
112     StructTy_class_types__ArrayOf_fields.push_back(StructTy_class_types__GenericType);
113     StructTy_class_types__ArrayOf_fields.push_back(IntegerType::get(mod->getContext(), 8));
114     PointerType* PointerTy_18 = PointerType::get(Type::getDoubleTy(mod->getContext()), 0);
115
116     StructTy_class_types__ArrayOf_fields.push_back(PointerTy_18);
117     StructTy_class_types__ArrayOf_fields.push_back(PointerTy_18);
118     if (StructTy_class_types__ArrayOf->isOpaque())
119     {
120         StructTy_class_types__ArrayOf->setBody(StructTy_class_types__ArrayOf_fields, /*isPacked=*/false);
121     }
122
123     StructTy_class_types__Double_fields.push_back(StructTy_class_types__ArrayOf);
124     StructTy_class_types__Double_fields.push_back(IntegerType::get(mod->getContext(), 8));
125     StructTy_class_types__Double_fields.push_back(IntegerType::get(mod->getContext(), 8));
126     if (StructTy_class_types__Double->isOpaque())
127     {
128         StructTy_class_types__Double->setBody(StructTy_class_types__Double_fields, /*isPacked=*/false);
129     }
130
131     PointerType* PointerTy_15 = PointerType::get(StructTy_class_types__Double, 0);
132
133     PointerType* PointerTy_14 = PointerType::get(PointerTy_15, 0);
134
135     StructType *StructTy_class_types__Bool = mod->getTypeByName("class.types::Bool");
136     if (!StructTy_class_types__Bool)
137     {
138         StructTy_class_types__Bool = StructType::create(mod->getContext(), "class.types::Bool");
139     }
140     std::vector<Type*>StructTy_class_types__Bool_fields;
141     StructType *StructTy_class_types__ArrayOf_0 = mod->getTypeByName("class.types::ArrayOf.0");
142     if (!StructTy_class_types__ArrayOf_0)
143     {
144         StructTy_class_types__ArrayOf_0 = StructType::create(mod->getContext(), "class.types::ArrayOf.0");
145     }
146     std::vector<Type*>StructTy_class_types__ArrayOf_0_fields;
147     StructTy_class_types__ArrayOf_0_fields.push_back(StructTy_class_types__GenericType);
148     StructTy_class_types__ArrayOf_0_fields.push_back(IntegerType::get(mod->getContext(), 8));
149     PointerType* PointerTy_21 = PointerType::get(IntegerType::get(mod->getContext(), 32), 0);
150
151     StructTy_class_types__ArrayOf_0_fields.push_back(PointerTy_21);
152     StructTy_class_types__ArrayOf_0_fields.push_back(PointerTy_21);
153     if (StructTy_class_types__ArrayOf_0->isOpaque())
154     {
155         StructTy_class_types__ArrayOf_0->setBody(StructTy_class_types__ArrayOf_0_fields, /*isPacked=*/false);
156     }
157
158     StructTy_class_types__Bool_fields.push_back(StructTy_class_types__ArrayOf_0);
159     if (StructTy_class_types__Bool->isOpaque())
160     {
161         StructTy_class_types__Bool->setBody(StructTy_class_types__Bool_fields, /*isPacked=*/false);
162     }
163
164     PointerType* PointerTy_20 = PointerType::get(StructTy_class_types__Bool, 0);
165
166     PointerType* PointerTy_19 = PointerType::get(PointerTy_20, 0);
167
168     StructType *StructTy_class_symbol__Symbol = mod->getTypeByName("class.symbol::Symbol");
169     if (!StructTy_class_symbol__Symbol)
170     {
171         StructTy_class_symbol__Symbol = StructType::create(mod->getContext(), "class.symbol::Symbol");
172     }
173     std::vector<Type*>StructTy_class_symbol__Symbol_fields;
174     StructType *StructTy_struct_std___Rb_tree_const_iterator = mod->getTypeByName("struct.std::_Rb_tree_const_iterator");
175     if (!StructTy_struct_std___Rb_tree_const_iterator)
176     {
177         StructTy_struct_std___Rb_tree_const_iterator = StructType::create(mod->getContext(), "struct.std::_Rb_tree_const_iterator");
178     }
179     std::vector<Type*>StructTy_struct_std___Rb_tree_const_iterator_fields;
180     StructType *StructTy_struct_std___Rb_tree_node_base = mod->getTypeByName("struct.std::_Rb_tree_node_base");
181     if (!StructTy_struct_std___Rb_tree_node_base)
182     {
183         StructTy_struct_std___Rb_tree_node_base = StructType::create(mod->getContext(), "struct.std::_Rb_tree_node_base");
184     }
185     std::vector<Type*>StructTy_struct_std___Rb_tree_node_base_fields;
186     StructTy_struct_std___Rb_tree_node_base_fields.push_back(IntegerType::get(mod->getContext(), 32));
187     PointerType* PointerTy_24 = PointerType::get(StructTy_struct_std___Rb_tree_node_base, 0);
188
189     StructTy_struct_std___Rb_tree_node_base_fields.push_back(PointerTy_24);
190     StructTy_struct_std___Rb_tree_node_base_fields.push_back(PointerTy_24);
191     StructTy_struct_std___Rb_tree_node_base_fields.push_back(PointerTy_24);
192     if (StructTy_struct_std___Rb_tree_node_base->isOpaque())
193     {
194         StructTy_struct_std___Rb_tree_node_base->setBody(StructTy_struct_std___Rb_tree_node_base_fields, /*isPacked=*/false);
195     }
196
197
198     StructTy_struct_std___Rb_tree_const_iterator_fields.push_back(PointerTy_24);
199     if (StructTy_struct_std___Rb_tree_const_iterator->isOpaque())
200     {
201         StructTy_struct_std___Rb_tree_const_iterator->setBody(StructTy_struct_std___Rb_tree_const_iterator_fields, /*isPacked=*/false);
202     }
203
204     StructTy_class_symbol__Symbol_fields.push_back(StructTy_struct_std___Rb_tree_const_iterator);
205     if (StructTy_class_symbol__Symbol->isOpaque())
206     {
207         StructTy_class_symbol__Symbol->setBody(StructTy_class_symbol__Symbol_fields, /*isPacked=*/false);
208     }
209
210     PointerType* PointerTy_23 = PointerType::get(StructTy_class_symbol__Symbol, 0);
211
212     PointerType* PointerTy_22 = PointerType::get(PointerTy_23, 0);
213
214     std::vector<Type*>FuncTy_26_args;
215     FunctionType* FuncTy_26 = FunctionType::get(
216                                   /*Result=*/PointerTy_15,
217                                   /*Params=*/FuncTy_26_args,
218                                   /*isVarArg=*/false);
219
220     PointerType* PointerTy_25 = PointerType::get(FuncTy_26, 0);
221
222     std::vector<Type*>FuncTy_28_args;
223     FuncTy_28_args.push_back(PointerTy_15);
224     FuncTy_28_args.push_back(PointerTy_15);
225     FuncTy_28_args.push_back(PointerTy_14);
226     FunctionType* FuncTy_28 = FunctionType::get(
227                                   /*Result=*/IntegerType::get(mod->getContext(), 32),
228                                   /*Params=*/FuncTy_28_args,
229                                   /*isVarArg=*/false);
230
231     PointerType* PointerTy_27 = PointerType::get(FuncTy_28, 0);
232
233     StructType *StructTy_class_symbol__Context = mod->getTypeByName("class.symbol::Context");
234     if (!StructTy_class_symbol__Context)
235     {
236         StructTy_class_symbol__Context = StructType::create(mod->getContext(), "class.symbol::Context");
237     }
238     std::vector<Type*>StructTy_class_symbol__Context_fields;
239     StructType *StructTy_class_symbol__Stack = mod->getTypeByName("class.symbol::Stack");
240     if (!StructTy_class_symbol__Stack)
241     {
242         StructTy_class_symbol__Stack = StructType::create(mod->getContext(), "class.symbol::Stack");
243     }
244     std::vector<Type*>StructTy_class_symbol__Stack_fields;
245     StructType *StructTy_class_symbol__Table = mod->getTypeByName("class.symbol::Table");
246     if (!StructTy_class_symbol__Table)
247     {
248         StructTy_class_symbol__Table = StructType::create(mod->getContext(), "class.symbol::Table");
249     }
250     std::vector<Type*>StructTy_class_symbol__Table_fields;
251     std::vector<Type*>FuncTy_32_args;
252     FunctionType* FuncTy_32 = FunctionType::get(
253                                   /*Result=*/IntegerType::get(mod->getContext(), 32),
254                                   /*Params=*/FuncTy_32_args,
255                                   /*isVarArg=*/true);
256
257     PointerType* PointerTy_31 = PointerType::get(FuncTy_32, 0);
258
259     PointerType* PointerTy_30 = PointerType::get(PointerTy_31, 0);
260
261     StructTy_class_symbol__Table_fields.push_back(PointerTy_30);
262     StructType *StructTy_class_std__list = mod->getTypeByName("class.std::list");
263     if (!StructTy_class_std__list)
264     {
265         StructTy_class_std__list = StructType::create(mod->getContext(), "class.std::list");
266     }
267     std::vector<Type*>StructTy_class_std__list_fields;
268     StructType *StructTy_class_std___List_base = mod->getTypeByName("class.std::_List_base");
269     if (!StructTy_class_std___List_base)
270     {
271         StructTy_class_std___List_base = StructType::create(mod->getContext(), "class.std::_List_base");
272     }
273     std::vector<Type*>StructTy_class_std___List_base_fields;
274     StructType *StructTy_struct_std___List_base_symbol__Scope____std__allocator_symbol__Scope________List_impl = mod->getTypeByName("struct.std::_List_base<symbol::Scope *, std::allocator<symbol::Scope *> >::_List_impl");
275     if (!StructTy_struct_std___List_base_symbol__Scope____std__allocator_symbol__Scope________List_impl)
276     {
277         StructTy_struct_std___List_base_symbol__Scope____std__allocator_symbol__Scope________List_impl = StructType::create(mod->getContext(), "struct.std::_List_base<symbol::Scope *, std::allocator<symbol::Scope *> >::_List_impl");
278     }
279     std::vector<Type*>StructTy_struct_std___List_base_symbol__Scope____std__allocator_symbol__Scope________List_impl_fields;
280     StructType *StructTy_struct_std____detail___List_node_base = mod->getTypeByName("struct.std::__detail::_List_node_base");
281     if (!StructTy_struct_std____detail___List_node_base)
282     {
283         StructTy_struct_std____detail___List_node_base = StructType::create(mod->getContext(), "struct.std::__detail::_List_node_base");
284     }
285     std::vector<Type*>StructTy_struct_std____detail___List_node_base_fields;
286     PointerType* PointerTy_33 = PointerType::get(StructTy_struct_std____detail___List_node_base, 0);
287
288     StructTy_struct_std____detail___List_node_base_fields.push_back(PointerTy_33);
289     StructTy_struct_std____detail___List_node_base_fields.push_back(PointerTy_33);
290     if (StructTy_struct_std____detail___List_node_base->isOpaque())
291     {
292         StructTy_struct_std____detail___List_node_base->setBody(StructTy_struct_std____detail___List_node_base_fields, /*isPacked=*/false);
293     }
294
295     StructTy_struct_std___List_base_symbol__Scope____std__allocator_symbol__Scope________List_impl_fields.push_back(StructTy_struct_std____detail___List_node_base);
296     if (StructTy_struct_std___List_base_symbol__Scope____std__allocator_symbol__Scope________List_impl->isOpaque())
297     {
298         StructTy_struct_std___List_base_symbol__Scope____std__allocator_symbol__Scope________List_impl->setBody(StructTy_struct_std___List_base_symbol__Scope____std__allocator_symbol__Scope________List_impl_fields, /*isPacked=*/false);
299     }
300
301     StructTy_class_std___List_base_fields.push_back(StructTy_struct_std___List_base_symbol__Scope____std__allocator_symbol__Scope________List_impl);
302     if (StructTy_class_std___List_base->isOpaque())
303     {
304         StructTy_class_std___List_base->setBody(StructTy_class_std___List_base_fields, /*isPacked=*/false);
305     }
306
307     StructTy_class_std__list_fields.push_back(StructTy_class_std___List_base);
308     if (StructTy_class_std__list->isOpaque())
309     {
310         StructTy_class_std__list->setBody(StructTy_class_std__list_fields, /*isPacked=*/false);
311     }
312
313     StructTy_class_symbol__Table_fields.push_back(StructTy_class_std__list);
314     if (StructTy_class_symbol__Table->isOpaque())
315     {
316         StructTy_class_symbol__Table->setBody(StructTy_class_symbol__Table_fields, /*isPacked=*/false);
317     }
318
319     StructTy_class_symbol__Stack_fields.push_back(StructTy_class_symbol__Table);
320     if (StructTy_class_symbol__Stack->isOpaque())
321     {
322         StructTy_class_symbol__Stack->setBody(StructTy_class_symbol__Stack_fields, /*isPacked=*/false);
323     }
324
325     StructTy_class_symbol__Context_fields.push_back(StructTy_class_symbol__Stack);
326     StructType *StructTy_class_symbol__Heap = mod->getTypeByName("class.symbol::Heap");
327     if (!StructTy_class_symbol__Heap)
328     {
329         StructTy_class_symbol__Heap = StructType::create(mod->getContext(), "class.symbol::Heap");
330     }
331     std::vector<Type*>StructTy_class_symbol__Heap_fields;
332     StructTy_class_symbol__Heap_fields.push_back(PointerTy_20);
333     StructType *StructTy_class_std__map = mod->getTypeByName("class.std::map");
334     if (!StructTy_class_std__map)
335     {
336         StructTy_class_std__map = StructType::create(mod->getContext(), "class.std::map");
337     }
338     std::vector<Type*>StructTy_class_std__map_fields;
339     StructType *StructTy_class_std___Rb_tree = mod->getTypeByName("class.std::_Rb_tree");
340     if (!StructTy_class_std___Rb_tree)
341     {
342         StructTy_class_std___Rb_tree = StructType::create(mod->getContext(), "class.std::_Rb_tree");
343     }
344     std::vector<Type*>StructTy_class_std___Rb_tree_fields;
345     StructType *StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl = mod->getTypeByName("struct.std::_Rb_tree<symbol::Symbol, std::pair<const symbol::Symbol, std::list<symbol::Scope *, std::allocator<symbol::Scope *> > *>, std::_Select1st<std::pair<const symbol::Symbol, std::list<symbol::Scope *, std::allocator<symbol::Scope *> > *> >, std::less<symbol::Symbol>, std::allocator<std::pair<const symbol::Symbol, std::list<symbol::Scope *, std::allocator<symbol::Scope *> > *> > >::_Rb_tree_impl");
346     if (!StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl)
347     {
348         StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl = StructType::create(mod->getContext(), "struct.std::_Rb_tree<symbol::Symbol, std::pair<const symbol::Symbol, std::list<symbol::Scope *, std::allocator<symbol::Scope *> > *>, std::_Select1st<std::pair<const symbol::Symbol, std::list<symbol::Scope *, std::allocator<symbol::Scope *> > *> >, std::less<symbol::Symbol>, std::allocator<std::pair<const symbol::Symbol, std::list<symbol::Scope *, std::allocator<symbol::Scope *> > *> > >::_Rb_tree_impl");
349     }
350     std::vector<Type*>StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl_fields;
351     StructType *StructTy_struct_std__less = mod->getTypeByName("struct.std::less");
352     if (!StructTy_struct_std__less)
353     {
354         StructTy_struct_std__less = StructType::create(mod->getContext(), "struct.std::less");
355     }
356     std::vector<Type*>StructTy_struct_std__less_fields;
357     StructTy_struct_std__less_fields.push_back(IntegerType::get(mod->getContext(), 8));
358     if (StructTy_struct_std__less->isOpaque())
359     {
360         StructTy_struct_std__less->setBody(StructTy_struct_std__less_fields, /*isPacked=*/false);
361     }
362
363     StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl_fields.push_back(StructTy_struct_std__less);
364     StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl_fields.push_back(StructTy_struct_std___Rb_tree_node_base);
365     StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl_fields.push_back(IntegerType::get(mod->getContext(), 64));
366     if (StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl->isOpaque())
367     {
368         StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl->setBody(StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl_fields, /*isPacked=*/false);
369     }
370
371     StructTy_class_std___Rb_tree_fields.push_back(StructTy_struct_std___Rb_tree_symbol__Symbol__std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope__________std___Select1st_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope____________std__less_symbol__Symbol___std__allocator_std__pair_const_symbol__Symbol__std__list_symbol__Scope____std__allocator_symbol__Scope_______________Rb_tree_impl);
372     if (StructTy_class_std___Rb_tree->isOpaque())
373     {
374         StructTy_class_std___Rb_tree->setBody(StructTy_class_std___Rb_tree_fields, /*isPacked=*/false);
375     }
376
377     StructTy_class_std__map_fields.push_back(StructTy_class_std___Rb_tree);
378     if (StructTy_class_std__map->isOpaque())
379     {
380         StructTy_class_std__map->setBody(StructTy_class_std__map_fields, /*isPacked=*/false);
381     }
382
383     StructTy_class_symbol__Heap_fields.push_back(StructTy_class_std__map);
384     StructTy_class_symbol__Heap_fields.push_back(StructTy_class_std__list);
385     if (StructTy_class_symbol__Heap->isOpaque())
386     {
387         StructTy_class_symbol__Heap->setBody(StructTy_class_symbol__Heap_fields, /*isPacked=*/false);
388     }
389
390     StructTy_class_symbol__Context_fields.push_back(StructTy_class_symbol__Heap);
391     StructTy_class_symbol__Context_fields.push_back(StructTy_class_symbol__Stack);
392     if (StructTy_class_symbol__Context->isOpaque())
393     {
394         StructTy_class_symbol__Context->setBody(StructTy_class_symbol__Context_fields, /*isPacked=*/false);
395     }
396
397     PointerType* PointerTy_29 = PointerType::get(StructTy_class_symbol__Context, 0);
398
399     std::vector<Type*>FuncTy_35_args;
400     FunctionType* FuncTy_35 = FunctionType::get(
401                                   /*Result=*/PointerTy_29,
402                                   /*Params=*/FuncTy_35_args,
403                                   /*isVarArg=*/false);
404
405     PointerType* PointerTy_34 = PointerType::get(FuncTy_35, 0);
406
407     StructType *StructTy_class_types__InternalType = mod->getTypeByName("class.types::InternalType");
408     if (!StructTy_class_types__InternalType)
409     {
410         StructTy_class_types__InternalType = StructType::create(mod->getContext(), "class.types::InternalType");
411     }
412     std::vector<Type*>StructTy_class_types__InternalType_fields;
413     StructTy_class_types__InternalType_fields.push_back(PointerTy_30);
414     StructTy_class_types__InternalType_fields.push_back(IntegerType::get(mod->getContext(), 32));
415     StructTy_class_types__InternalType_fields.push_back(IntegerType::get(mod->getContext(), 8));
416     StructTy_class_types__InternalType_fields.push_back(IntegerType::get(mod->getContext(), 8));
417     StructTy_class_types__InternalType_fields.push_back(IntegerType::get(mod->getContext(), 32));
418     StructTy_class_types__InternalType_fields.push_back(IntegerType::get(mod->getContext(), 32));
419     StructTy_class_types__InternalType_fields.push_back(IntegerType::get(mod->getContext(), 32));
420     StructTy_class_types__InternalType_fields.push_back(IntegerType::get(mod->getContext(), 32));
421     StructTy_class_types__InternalType_fields.push_back(IntegerType::get(mod->getContext(), 32));
422     if (StructTy_class_types__InternalType->isOpaque())
423     {
424         StructTy_class_types__InternalType->setBody(StructTy_class_types__InternalType_fields, /*isPacked=*/false);
425     }
426
427     PointerType* PointerTy_36 = PointerType::get(StructTy_class_types__InternalType, 0);
428
429     std::vector<Type*>FuncTy_38_args;
430     FuncTy_38_args.push_back(PointerTy_29);
431     FuncTy_38_args.push_back(PointerTy_23);
432     FuncTy_38_args.push_back(PointerTy_36);
433     FunctionType* FuncTy_38 = FunctionType::get(
434                                   /*Result=*/IntegerType::get(mod->getContext(), 1),
435                                   /*Params=*/FuncTy_38_args,
436                                   /*isVarArg=*/false);
437
438     PointerType* PointerTy_37 = PointerType::get(FuncTy_38, 0);
439
440     std::vector<Type*>FuncTy_40_args;
441     FuncTy_40_args.push_back(PointerTy_29);
442     FuncTy_40_args.push_back(PointerTy_23);
443     FunctionType* FuncTy_40 = FunctionType::get(
444                                   /*Result=*/PointerTy_36,
445                                   /*Params=*/FuncTy_40_args,
446                                   /*isVarArg=*/false);
447
448     PointerType* PointerTy_39 = PointerType::get(FuncTy_40, 0);
449
450     std::vector<Type*>FuncTy_42_args;
451     FuncTy_42_args.push_back(PointerTy_15);
452     FuncTy_42_args.push_back(PointerTy_15);
453     FuncTy_42_args.push_back(PointerTy_19);
454     FunctionType* FuncTy_42 = FunctionType::get(
455                                   /*Result=*/IntegerType::get(mod->getContext(), 32),
456                                   /*Params=*/FuncTy_42_args,
457                                   /*isVarArg=*/false);
458
459     PointerType* PointerTy_41 = PointerType::get(FuncTy_42, 0);
460
461     PointerType* PointerTy_43 = PointerType::get(StructTy_class_types__ArrayOf_0, 0);
462
463     std::vector<Type*>FuncTy_45_args;
464     FuncTy_45_args.push_back(PointerTy_43);
465     FuncTy_45_args.push_back(IntegerType::get(mod->getContext(), 32));
466     FunctionType* FuncTy_45 = FunctionType::get(
467                                   /*Result=*/IntegerType::get(mod->getContext(), 32),
468                                   /*Params=*/FuncTy_45_args,
469                                   /*isVarArg=*/false);
470
471     PointerType* PointerTy_44 = PointerType::get(FuncTy_45, 0);
472
473     PointerType* PointerTy_46 = PointerType::get(PointerTy_43, 0);
474
475     PointerType* PointerTy_47 = PointerType::get(PointerTy_21, 0);
476
477
478     // Function Declarations
479
480     Function* func___cxx_global_var_init = mod->getFunction("__cxx_global_var_init");
481     if (!func___cxx_global_var_init)
482     {
483         func___cxx_global_var_init = Function::Create(
484                                          /*Type=*/FuncTy_5,
485                                          /*Linkage=*/GlobalValue::InternalLinkage,
486                                          /*Name=*/"__cxx_global_var_init", mod);
487         func___cxx_global_var_init->setCallingConv(CallingConv::C);
488         func___cxx_global_var_init->setSection(".text.startup");
489     }
490     AttributeSet func___cxx_global_var_init_PAL;
491     func___cxx_global_var_init->setAttributes(func___cxx_global_var_init_PAL);
492
493     Function* func__ZNSt8ios_base4InitC1Ev = mod->getFunction("_ZNSt8ios_base4InitC1Ev");
494     if (!func__ZNSt8ios_base4InitC1Ev)
495     {
496         func__ZNSt8ios_base4InitC1Ev = Function::Create(
497                                            /*Type=*/FuncTy_8,
498                                            /*Linkage=*/GlobalValue::ExternalLinkage,
499                                            /*Name=*/"_ZNSt8ios_base4InitC1Ev", mod); // (external, no body)
500         func__ZNSt8ios_base4InitC1Ev->setCallingConv(CallingConv::C);
501     }
502     AttributeSet func__ZNSt8ios_base4InitC1Ev_PAL;
503     {
504         SmallVector<AttributeSet, 4> Attrs;
505         AttributeSet PAS;
506         {
507             AttrBuilder B;
508             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
509         }
510
511         Attrs.push_back(PAS);
512         func__ZNSt8ios_base4InitC1Ev_PAL = AttributeSet::get(mod->getContext(), Attrs);
513
514     }
515     func__ZNSt8ios_base4InitC1Ev->setAttributes(func__ZNSt8ios_base4InitC1Ev_PAL);
516
517     Function* func__ZNSt8ios_base4InitD1Ev = mod->getFunction("_ZNSt8ios_base4InitD1Ev");
518     if (!func__ZNSt8ios_base4InitD1Ev)
519     {
520         func__ZNSt8ios_base4InitD1Ev = Function::Create(
521                                            /*Type=*/FuncTy_8,
522                                            /*Linkage=*/GlobalValue::ExternalLinkage,
523                                            /*Name=*/"_ZNSt8ios_base4InitD1Ev", mod); // (external, no body)
524         func__ZNSt8ios_base4InitD1Ev->setCallingConv(CallingConv::C);
525     }
526     AttributeSet func__ZNSt8ios_base4InitD1Ev_PAL;
527     {
528         SmallVector<AttributeSet, 4> Attrs;
529         AttributeSet PAS;
530         {
531             AttrBuilder B;
532             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
533         }
534
535         Attrs.push_back(PAS);
536         func__ZNSt8ios_base4InitD1Ev_PAL = AttributeSet::get(mod->getContext(), Attrs);
537
538     }
539     func__ZNSt8ios_base4InitD1Ev->setAttributes(func__ZNSt8ios_base4InitD1Ev_PAL);
540
541     Function* func___cxa_atexit = mod->getFunction("__cxa_atexit");
542     if (!func___cxa_atexit)
543     {
544         func___cxa_atexit = Function::Create(
545                                 /*Type=*/FuncTy_12,
546                                 /*Linkage=*/GlobalValue::ExternalLinkage,
547                                 /*Name=*/"__cxa_atexit", mod); // (external, no body)
548         func___cxa_atexit->setCallingConv(CallingConv::C);
549     }
550     AttributeSet func___cxa_atexit_PAL;
551     {
552         SmallVector<AttributeSet, 4> Attrs;
553         AttributeSet PAS;
554         {
555             AttrBuilder B;
556             B.addAttribute(Attribute::NoUnwind);
557             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
558         }
559
560         Attrs.push_back(PAS);
561         func___cxa_atexit_PAL = AttributeSet::get(mod->getContext(), Attrs);
562
563     }
564     func___cxa_atexit->setAttributes(func___cxa_atexit_PAL);
565
566     Function* func__Z3foov = mod->getFunction("_Z3foov");
567     if (!func__Z3foov)
568     {
569         func__Z3foov = Function::Create(
570                            /*Type=*/FuncTy_13,
571                            /*Linkage=*/GlobalValue::ExternalLinkage,
572                            /*Name=*/"_Z3foov", mod);
573         func__Z3foov->setCallingConv(CallingConv::C);
574     }
575     AttributeSet func__Z3foov_PAL;
576     {
577         SmallVector<AttributeSet, 4> Attrs;
578         AttributeSet PAS;
579         {
580             AttrBuilder B;
581             B.addAttribute(Attribute::UWTable);
582             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
583         }
584
585         Attrs.push_back(PAS);
586         func__Z3foov_PAL = AttributeSet::get(mod->getContext(), Attrs);
587
588     }
589     func__Z3foov->setAttributes(func__Z3foov_PAL);
590
591     Function* func__ZN5types6Double5EmptyEv = mod->getFunction("_ZN5types6Double5EmptyEv");
592     if (!func__ZN5types6Double5EmptyEv)
593     {
594         func__ZN5types6Double5EmptyEv = Function::Create(
595                                             /*Type=*/FuncTy_26,
596                                             /*Linkage=*/GlobalValue::ExternalLinkage,
597                                             /*Name=*/"_ZN5types6Double5EmptyEv", mod); // (external, no body)
598         func__ZN5types6Double5EmptyEv->setCallingConv(CallingConv::C);
599     }
600     AttributeSet func__ZN5types6Double5EmptyEv_PAL;
601     {
602         SmallVector<AttributeSet, 4> Attrs;
603         AttributeSet PAS;
604         {
605             AttrBuilder B;
606             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
607         }
608
609         Attrs.push_back(PAS);
610         func__ZN5types6Double5EmptyEv_PAL = AttributeSet::get(mod->getContext(), Attrs);
611
612     }
613     func__ZN5types6Double5EmptyEv->setAttributes(func__ZN5types6Double5EmptyEv_PAL);
614
615     Function* func__Z17AddDoubleToDoublePN5types6DoubleES1_PS1_ = mod->getFunction("_Z17AddDoubleToDoublePN5types6DoubleES1_PS1_");
616     if (!func__Z17AddDoubleToDoublePN5types6DoubleES1_PS1_)
617     {
618         func__Z17AddDoubleToDoublePN5types6DoubleES1_PS1_ = Function::Create(
619                     /*Type=*/FuncTy_28,
620                     /*Linkage=*/GlobalValue::ExternalLinkage,
621                     /*Name=*/"_Z17AddDoubleToDoublePN5types6DoubleES1_PS1_", mod); // (external, no body)
622         func__Z17AddDoubleToDoublePN5types6DoubleES1_PS1_->setCallingConv(CallingConv::C);
623     }
624     AttributeSet func__Z17AddDoubleToDoublePN5types6DoubleES1_PS1__PAL;
625     {
626         SmallVector<AttributeSet, 4> Attrs;
627         AttributeSet PAS;
628         {
629             AttrBuilder B;
630             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
631         }
632
633         Attrs.push_back(PAS);
634         func__Z17AddDoubleToDoublePN5types6DoubleES1_PS1__PAL = AttributeSet::get(mod->getContext(), Attrs);
635
636     }
637     func__Z17AddDoubleToDoublePN5types6DoubleES1_PS1_->setAttributes(func__Z17AddDoubleToDoublePN5types6DoubleES1_PS1__PAL);
638
639     Function* func__ZN6symbol7Context11getInstanceEv = mod->getFunction("_ZN6symbol7Context11getInstanceEv");
640     if (!func__ZN6symbol7Context11getInstanceEv)
641     {
642         func__ZN6symbol7Context11getInstanceEv = Function::Create(
643                     /*Type=*/FuncTy_35,
644                     /*Linkage=*/GlobalValue::ExternalLinkage,
645                     /*Name=*/"_ZN6symbol7Context11getInstanceEv", mod); // (external, no body)
646         func__ZN6symbol7Context11getInstanceEv->setCallingConv(CallingConv::C);
647     }
648     AttributeSet func__ZN6symbol7Context11getInstanceEv_PAL;
649     {
650         SmallVector<AttributeSet, 4> Attrs;
651         AttributeSet PAS;
652         {
653             AttrBuilder B;
654             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
655         }
656
657         Attrs.push_back(PAS);
658         func__ZN6symbol7Context11getInstanceEv_PAL = AttributeSet::get(mod->getContext(), Attrs);
659
660     }
661     func__ZN6symbol7Context11getInstanceEv->setAttributes(func__ZN6symbol7Context11getInstanceEv_PAL);
662
663     Function* func__ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE = mod->getFunction("_ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE");
664     if (!func__ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE)
665     {
666         func__ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE = Function::Create(
667                     /*Type=*/FuncTy_38,
668                     /*Linkage=*/GlobalValue::ExternalLinkage,
669                     /*Name=*/"_ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE", mod); // (external, no body)
670         func__ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE->setCallingConv(CallingConv::C);
671     }
672     AttributeSet func__ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE_PAL;
673     {
674         SmallVector<AttributeSet, 4> Attrs;
675         AttributeSet PAS;
676         {
677             AttrBuilder B;
678             B.addAttribute(Attribute::ZExt);
679             PAS = AttributeSet::get(mod->getContext(), 0U, B);
680         }
681
682         Attrs.push_back(PAS);
683         {
684             AttrBuilder B;
685             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
686         }
687
688         Attrs.push_back(PAS);
689         func__ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE_PAL = AttributeSet::get(mod->getContext(), Attrs);
690
691     }
692     func__ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE->setAttributes(func__ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE_PAL);
693
694     Function* func__ZNK6symbol7Context3getERKNS_6SymbolE = mod->getFunction("_ZNK6symbol7Context3getERKNS_6SymbolE");
695     if (!func__ZNK6symbol7Context3getERKNS_6SymbolE)
696     {
697         func__ZNK6symbol7Context3getERKNS_6SymbolE = Function::Create(
698                     /*Type=*/FuncTy_40,
699                     /*Linkage=*/GlobalValue::ExternalLinkage,
700                     /*Name=*/"_ZNK6symbol7Context3getERKNS_6SymbolE", mod); // (external, no body)
701         func__ZNK6symbol7Context3getERKNS_6SymbolE->setCallingConv(CallingConv::C);
702     }
703     AttributeSet func__ZNK6symbol7Context3getERKNS_6SymbolE_PAL;
704     {
705         SmallVector<AttributeSet, 4> Attrs;
706         AttributeSet PAS;
707         {
708             AttrBuilder B;
709             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
710         }
711
712         Attrs.push_back(PAS);
713         func__ZNK6symbol7Context3getERKNS_6SymbolE_PAL = AttributeSet::get(mod->getContext(), Attrs);
714
715     }
716     func__ZNK6symbol7Context3getERKNS_6SymbolE->setAttributes(func__ZNK6symbol7Context3getERKNS_6SymbolE_PAL);
717
718     Function* func__Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE = mod->getFunction("_Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE");
719     if (!func__Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE)
720     {
721         func__Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE = Function::Create(
722                     /*Type=*/FuncTy_42,
723                     /*Linkage=*/GlobalValue::ExternalLinkage,
724                     /*Name=*/"_Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE", mod); // (external, no body)
725         func__Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE->setCallingConv(CallingConv::C);
726     }
727     AttributeSet func__Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE_PAL;
728     {
729         SmallVector<AttributeSet, 4> Attrs;
730         AttributeSet PAS;
731         {
732             AttrBuilder B;
733             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
734         }
735
736         Attrs.push_back(PAS);
737         func__Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE_PAL = AttributeSet::get(mod->getContext(), Attrs);
738
739     }
740     func__Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE->setAttributes(func__Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE_PAL);
741
742     Function* func__ZN5types7ArrayOfIiE3getEi = mod->getFunction("_ZN5types7ArrayOfIiE3getEi");
743     if (!func__ZN5types7ArrayOfIiE3getEi)
744     {
745         func__ZN5types7ArrayOfIiE3getEi = Function::Create(
746                                               /*Type=*/FuncTy_45,
747                                               /*Linkage=*/GlobalValue::LinkOnceODRLinkage ,
748                                               /*Name=*/"_ZN5types7ArrayOfIiE3getEi", mod);
749         func__ZN5types7ArrayOfIiE3getEi->setCallingConv(CallingConv::C);
750         func__ZN5types7ArrayOfIiE3getEi->setAlignment(2);
751     }
752     AttributeSet func__ZN5types7ArrayOfIiE3getEi_PAL;
753     {
754         SmallVector<AttributeSet, 4> Attrs;
755         AttributeSet PAS;
756         {
757             AttrBuilder B;
758             B.addAttribute(Attribute::NoUnwind);
759             B.addAttribute(Attribute::UWTable);
760             PAS = AttributeSet::get(mod->getContext(), ~0U, B);
761         }
762
763         Attrs.push_back(PAS);
764         func__ZN5types7ArrayOfIiE3getEi_PAL = AttributeSet::get(mod->getContext(), Attrs);
765
766     }
767     func__ZN5types7ArrayOfIiE3getEi->setAttributes(func__ZN5types7ArrayOfIiE3getEi_PAL);
768
769     Function* func__GLOBAL__I_a = mod->getFunction("_GLOBAL__I_a");
770     if (!func__GLOBAL__I_a)
771     {
772         func__GLOBAL__I_a = Function::Create(
773                                 /*Type=*/FuncTy_5,
774                                 /*Linkage=*/GlobalValue::InternalLinkage,
775                                 /*Name=*/"_GLOBAL__I_a", mod);
776         func__GLOBAL__I_a->setCallingConv(CallingConv::C);
777         func__GLOBAL__I_a->setSection(".text.startup");
778     }
779     AttributeSet func__GLOBAL__I_a_PAL;
780     func__GLOBAL__I_a->setAttributes(func__GLOBAL__I_a_PAL);
781
782     // Global Variable Declarations
783
784
785     GlobalVariable* gvar_struct__ZStL8__ioinit = new GlobalVariable(/*Module=*/*mod,
786             /*Type=*/StructTy_class_std__ios_base__Init,
787             /*isConstant=*/false,
788             /*Linkage=*/GlobalValue::InternalLinkage,
789             /*Initializer=*/0, // has initializer, specified below
790             /*Name=*/"_ZStL8__ioinit");
791     gvar_struct__ZStL8__ioinit->setAlignment(1);
792
793     GlobalVariable* gvar_int8___dso_handle = new GlobalVariable(/*Module=*/*mod,
794             /*Type=*/IntegerType::get(mod->getContext(), 8),
795             /*isConstant=*/false,
796             /*Linkage=*/GlobalValue::ExternalLinkage,
797             /*Initializer=*/0,
798             /*Name=*/"__dso_handle");
799
800     GlobalVariable* gvar_array_llvm_global_ctors = new GlobalVariable(/*Module=*/*mod,
801             /*Type=*/ArrayTy_2,
802             /*isConstant=*/false,
803             /*Linkage=*/GlobalValue::AppendingLinkage,
804             /*Initializer=*/0, // has initializer, specified below
805             /*Name=*/"llvm.global_ctors");
806
807     // Constant Definitions
808     ConstantAggregateZero* const_struct_48 = ConstantAggregateZero::get(StructTy_class_std__ios_base__Init);
809     std::vector<Constant*> const_array_49_elems;
810     std::vector<Constant*> const_struct_50_fields;
811     ConstantInt* const_int32_51 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("65535"), 10));
812     const_struct_50_fields.push_back(const_int32_51);
813     const_struct_50_fields.push_back(func__GLOBAL__I_a);
814     Constant* const_struct_50 = ConstantStruct::get(StructTy_3, const_struct_50_fields);
815     const_array_49_elems.push_back(const_struct_50);
816     Constant* const_array_49 = ConstantArray::get(ArrayTy_2, const_array_49_elems);
817     Constant* const_ptr_52 = ConstantExpr::getCast(Instruction::BitCast, func__ZNSt8ios_base4InitD1Ev, PointerTy_9);
818     std::vector<Constant*> const_ptr_53_indices;
819     ConstantInt* const_int32_54 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("0"), 10));
820     const_ptr_53_indices.push_back(const_int32_54);
821     const_ptr_53_indices.push_back(const_int32_54);
822     Constant* const_ptr_53 = ConstantExpr::getGetElementPtr(gvar_struct__ZStL8__ioinit, const_ptr_53_indices);
823     ConstantInt* const_int32_55 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("1"), 10));
824     ConstantPointerNull* const_ptr_56 = ConstantPointerNull::get(PointerTy_20);
825     ConstantPointerNull* const_ptr_57 = ConstantPointerNull::get(PointerTy_23);
826     ConstantPointerNull* const_ptr_58 = ConstantPointerNull::get(PointerTy_19);
827     ConstantInt* const_int32_59 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("2"), 10));
828     ConstantPointerNull* const_ptr_60 = ConstantPointerNull::get(PointerTy_21);
829
830     // Global Variable Definitions
831     gvar_struct__ZStL8__ioinit->setInitializer(const_struct_48);
832     gvar_array_llvm_global_ctors->setInitializer(const_array_49);
833
834     // Function Definitions
835
836     // Function: __cxx_global_var_init (func___cxx_global_var_init)
837     {
838
839         BasicBlock* label_61 = BasicBlock::Create(mod->getContext(), "", func___cxx_global_var_init, 0);
840
841         // Block  (label_61)
842         CallInst* void_62 = CallInst::Create(func__ZNSt8ios_base4InitC1Ev, gvar_struct__ZStL8__ioinit, "", label_61);
843         void_62->setCallingConv(CallingConv::C);
844         void_62->setTailCall(false);
845         AttributeSet void_62_PAL;
846         void_62->setAttributes(void_62_PAL);
847
848         std::vector<Value*> int32_63_params;
849         int32_63_params.push_back(const_ptr_52);
850         int32_63_params.push_back(const_ptr_53);
851         int32_63_params.push_back(gvar_int8___dso_handle);
852         CallInst* int32_63 = CallInst::Create(func___cxa_atexit, int32_63_params, "", label_61);
853         int32_63->setCallingConv(CallingConv::C);
854         int32_63->setTailCall(false);
855         AttributeSet int32_63_PAL;
856         {
857             SmallVector<AttributeSet, 4> Attrs;
858             AttributeSet PAS;
859             {
860                 AttrBuilder B;
861                 B.addAttribute(Attribute::NoUnwind);
862                 PAS = AttributeSet::get(mod->getContext(), ~0U, B);
863             }
864
865             Attrs.push_back(PAS);
866             int32_63_PAL = AttributeSet::get(mod->getContext(), Attrs);
867
868         }
869         int32_63->setAttributes(int32_63_PAL);
870
871         ReturnInst::Create(mod->getContext(), label_61);
872
873     }
874
875     // Function: _Z3foov (func__Z3foov)
876     {
877
878         BasicBlock* label_65 = BasicBlock::Create(mod->getContext(), "", func__Z3foov, 0);
879
880         // Block  (label_65)
881         AllocaInst* ptr_pdbl = new AllocaInst(PointerTy_15, "pdbl", label_65);
882         ptr_pdbl->setAlignment(8);
883         AllocaInst* ptr_pb = new AllocaInst(PointerTy_20, "pb", label_65);
884         ptr_pb->setAlignment(8);
885         AllocaInst* ptr_res = new AllocaInst(IntegerType::get(mod->getContext(), 32), "res", label_65);
886         ptr_res->setAlignment(4);
887         AllocaInst* ptr_sym = new AllocaInst(PointerTy_23, "sym", label_65);
888         ptr_sym->setAlignment(8);
889         CallInst* ptr_66 = CallInst::Create(func__ZN5types6Double5EmptyEv, "", label_65);
890         ptr_66->setCallingConv(CallingConv::C);
891         ptr_66->setTailCall(false);
892         AttributeSet ptr_66_PAL;
893         ptr_66->setAttributes(ptr_66_PAL);
894
895         StoreInst* void_67 = new StoreInst(ptr_66, ptr_pdbl, false, label_65);
896         void_67->setAlignment(8);
897         StoreInst* void_68 = new StoreInst(const_ptr_56, ptr_pb, false, label_65);
898         void_68->setAlignment(8);
899         LoadInst* ptr_69 = new LoadInst(ptr_pdbl, "", false, label_65);
900         ptr_69->setAlignment(8);
901         LoadInst* ptr_70 = new LoadInst(ptr_pdbl, "", false, label_65);
902         ptr_70->setAlignment(8);
903         std::vector<Value*> int32_71_params;
904         int32_71_params.push_back(ptr_69);
905         int32_71_params.push_back(ptr_70);
906         int32_71_params.push_back(ptr_pdbl);
907         CallInst* int32_71 = CallInst::Create(func__Z17AddDoubleToDoublePN5types6DoubleES1_PS1_, int32_71_params, "", label_65);
908         int32_71->setCallingConv(CallingConv::C);
909         int32_71->setTailCall(false);
910         AttributeSet int32_71_PAL;
911         int32_71->setAttributes(int32_71_PAL);
912
913         StoreInst* void_72 = new StoreInst(int32_71, ptr_res, false, label_65);
914         void_72->setAlignment(4);
915         StoreInst* void_73 = new StoreInst(const_ptr_57, ptr_sym, false, label_65);
916         void_73->setAlignment(8);
917         CallInst* ptr_74 = CallInst::Create(func__ZN6symbol7Context11getInstanceEv, "", label_65);
918         ptr_74->setCallingConv(CallingConv::C);
919         ptr_74->setTailCall(false);
920         AttributeSet ptr_74_PAL;
921         ptr_74->setAttributes(ptr_74_PAL);
922
923         LoadInst* ptr_75 = new LoadInst(ptr_sym, "", false, label_65);
924         ptr_75->setAlignment(8);
925         LoadInst* ptr_76 = new LoadInst(ptr_pdbl, "", false, label_65);
926         ptr_76->setAlignment(8);
927         CastInst* ptr_77 = new BitCastInst(ptr_76, PointerTy_36, "", label_65);
928         std::vector<Value*> int1_78_params;
929         int1_78_params.push_back(ptr_74);
930         int1_78_params.push_back(ptr_75);
931         int1_78_params.push_back(ptr_77);
932         CallInst* int1_78 = CallInst::Create(func__ZN6symbol7Context3putERKNS_6SymbolERN5types12InternalTypeE, int1_78_params, "", label_65);
933         int1_78->setCallingConv(CallingConv::C);
934         int1_78->setTailCall(false);
935         AttributeSet int1_78_PAL;
936         {
937             SmallVector<AttributeSet, 4> Attrs;
938             AttributeSet PAS;
939             {
940                 AttrBuilder B;
941                 B.addAttribute(Attribute::ZExt);
942                 PAS = AttributeSet::get(mod->getContext(), 0U, B);
943             }
944
945             Attrs.push_back(PAS);
946             int1_78_PAL = AttributeSet::get(mod->getContext(), Attrs);
947
948         }
949         int1_78->setAttributes(int1_78_PAL);
950
951         CallInst* ptr_79 = CallInst::Create(func__ZN6symbol7Context11getInstanceEv, "", label_65);
952         ptr_79->setCallingConv(CallingConv::C);
953         ptr_79->setTailCall(false);
954         AttributeSet ptr_79_PAL;
955         ptr_79->setAttributes(ptr_79_PAL);
956
957         LoadInst* ptr_80 = new LoadInst(ptr_sym, "", false, label_65);
958         ptr_80->setAlignment(8);
959         std::vector<Value*> ptr_81_params;
960         ptr_81_params.push_back(ptr_79);
961         ptr_81_params.push_back(ptr_80);
962         CallInst* ptr_81 = CallInst::Create(func__ZNK6symbol7Context3getERKNS_6SymbolE, ptr_81_params, "", label_65);
963         ptr_81->setCallingConv(CallingConv::C);
964         ptr_81->setTailCall(false);
965         AttributeSet ptr_81_PAL;
966         ptr_81->setAttributes(ptr_81_PAL);
967
968         LoadInst* ptr_82 = new LoadInst(ptr_pdbl, "", false, label_65);
969         ptr_82->setAlignment(8);
970         LoadInst* ptr_83 = new LoadInst(ptr_pdbl, "", false, label_65);
971         ptr_83->setAlignment(8);
972         std::vector<Value*> int32_84_params;
973         int32_84_params.push_back(ptr_82);
974         int32_84_params.push_back(ptr_83);
975         int32_84_params.push_back(const_ptr_58);
976         CallInst* int32_84 = CallInst::Create(func__Z16DoubleLessDoublePN5types6DoubleES1_PPNS_4BoolE, int32_84_params, "", label_65);
977         int32_84->setCallingConv(CallingConv::C);
978         int32_84->setTailCall(false);
979         AttributeSet int32_84_PAL;
980         int32_84->setAttributes(int32_84_PAL);
981
982         LoadInst* ptr_85 = new LoadInst(ptr_pb, "", false, label_65);
983         ptr_85->setAlignment(8);
984         CastInst* ptr_86 = new BitCastInst(ptr_85, PointerTy_43, "", label_65);
985         std::vector<Value*> int32_87_params;
986         int32_87_params.push_back(ptr_86);
987         int32_87_params.push_back(const_int32_54);
988         CallInst* int32_87 = CallInst::Create(func__ZN5types7ArrayOfIiE3getEi, int32_87_params, "", label_65);
989         int32_87->setCallingConv(CallingConv::C);
990         int32_87->setTailCall(false);
991         AttributeSet int32_87_PAL;
992         int32_87->setAttributes(int32_87_PAL);
993
994         LoadInst* int32_88 = new LoadInst(ptr_res, "", false, label_65);
995         int32_88->setAlignment(4);
996         ReturnInst::Create(mod->getContext(), int32_88, label_65);
997
998     }
999
1000     // Function: _ZN5types7ArrayOfIiE3getEi (func__ZN5types7ArrayOfIiE3getEi)
1001     {
1002         Function::arg_iterator args = func__ZN5types7ArrayOfIiE3getEi->arg_begin();
1003         Value* ptr_this = args++;
1004         ptr_this->setName("this");
1005         Value* int32__iPos = args++;
1006         int32__iPos->setName("_iPos");
1007
1008         BasicBlock* label_90 = BasicBlock::Create(mod->getContext(), "", func__ZN5types7ArrayOfIiE3getEi, 0);
1009         BasicBlock* label_91 = BasicBlock::Create(mod->getContext(), "", func__ZN5types7ArrayOfIiE3getEi, 0);
1010         BasicBlock* label_92 = BasicBlock::Create(mod->getContext(), "", func__ZN5types7ArrayOfIiE3getEi, 0);
1011         BasicBlock* label_93 = BasicBlock::Create(mod->getContext(), "", func__ZN5types7ArrayOfIiE3getEi, 0);
1012
1013         // Block  (label_90)
1014         AllocaInst* ptr_94 = new AllocaInst(IntegerType::get(mod->getContext(), 32), "", label_90);
1015         ptr_94->setAlignment(4);
1016         AllocaInst* ptr_95 = new AllocaInst(PointerTy_43, "", label_90);
1017         ptr_95->setAlignment(8);
1018         AllocaInst* ptr_96 = new AllocaInst(IntegerType::get(mod->getContext(), 32), "", label_90);
1019         ptr_96->setAlignment(4);
1020         StoreInst* void_97 = new StoreInst(ptr_this, ptr_95, false, label_90);
1021         void_97->setAlignment(8);
1022         StoreInst* void_98 = new StoreInst(int32__iPos, ptr_96, false, label_90);
1023         void_98->setAlignment(4);
1024         LoadInst* ptr_99 = new LoadInst(ptr_95, "", false, label_90);
1025         std::vector<Value*> ptr_100_indices;
1026         ptr_100_indices.push_back(const_int32_54);
1027         ptr_100_indices.push_back(const_int32_59);
1028         Instruction* ptr_100 = GetElementPtrInst::Create(ptr_99, ptr_100_indices, "", label_90);
1029         LoadInst* ptr_101 = new LoadInst(ptr_100, "", false, label_90);
1030         ptr_101->setAlignment(8);
1031         ICmpInst* int1_102 = new ICmpInst(*label_90, ICmpInst::ICMP_NE, ptr_101, const_ptr_60, "");
1032         BranchInst::Create(label_91, label_92, int1_102, label_90);
1033
1034         // Block  (label_91)
1035         LoadInst* int32_104 = new LoadInst(ptr_96, "", false, label_91);
1036         int32_104->setAlignment(4);
1037         CastInst* int64_105 = new SExtInst(int32_104, IntegerType::get(mod->getContext(), 64), "", label_91);
1038         std::vector<Value*> ptr_106_indices;
1039         ptr_106_indices.push_back(const_int32_54);
1040         ptr_106_indices.push_back(const_int32_59);
1041         Instruction* ptr_106 = GetElementPtrInst::Create(ptr_99, ptr_106_indices, "", label_91);
1042         LoadInst* ptr_107 = new LoadInst(ptr_106, "", false, label_91);
1043         ptr_107->setAlignment(8);
1044         GetElementPtrInst* ptr_108 = GetElementPtrInst::Create(ptr_107, int64_105, "", label_91);
1045         LoadInst* int32_109 = new LoadInst(ptr_108, "", false, label_91);
1046         int32_109->setAlignment(4);
1047         StoreInst* void_110 = new StoreInst(int32_109, ptr_94, false, label_91);
1048         BranchInst::Create(label_93, label_91);
1049
1050         // Block  (label_92)
1051         StoreInst* void_112 = new StoreInst(const_int32_54, ptr_94, false, label_92);
1052         BranchInst::Create(label_93, label_92);
1053
1054         // Block  (label_93)
1055         LoadInst* int32_114 = new LoadInst(ptr_94, "", false, label_93);
1056         ReturnInst::Create(mod->getContext(), int32_114, label_93);
1057
1058     }
1059
1060     // Function: _GLOBAL__I_a (func__GLOBAL__I_a)
1061     {
1062
1063         BasicBlock* label_116 = BasicBlock::Create(mod->getContext(), "", func__GLOBAL__I_a, 0);
1064
1065         // Block  (label_116)
1066         CallInst* void_117 = CallInst::Create(func___cxx_global_var_init, "", label_116);
1067         void_117->setCallingConv(CallingConv::C);
1068         void_117->setTailCall(false);
1069         AttributeSet void_117_PAL;
1070         void_117->setAttributes(void_117_PAL);
1071
1072         ReturnInst::Create(mod->getContext(), label_116);
1073
1074     }
1075
1076     return mod;
1077
1078 }