@@ -170,9 +170,12 @@ void statement_list_typecheckt::typecheck_function_declaration(
170
170
function_sym.pretty_name = function_sym.name ;
171
171
function_sym.mode = STATEMENT_LIST_MODE;
172
172
code_typet::parameterst params;
173
- typecheck_function_var_decls (function.var_input , params, function.name );
174
- typecheck_function_var_decls (function.var_inout , params, function.name );
175
- typecheck_function_var_decls (function.var_output , params, function.name );
173
+ typecheck_function_var_decls (
174
+ function.var_input , params, function.name , ID_statement_list_var_input);
175
+ typecheck_function_var_decls (
176
+ function.var_inout , params, function.name , ID_statement_list_var_inout);
177
+ typecheck_function_var_decls (
178
+ function.var_output , params, function.name , ID_statement_list_var_output);
176
179
177
180
code_typet fc_type{params, function.return_type };
178
181
fc_type.set (ID_statement_list_type, ID_statement_list_function);
@@ -204,32 +207,39 @@ struct_typet statement_list_typecheckt::create_instance_data_block_type(
204
207
const statement_list_parse_treet::function_blockt &function_block)
205
208
{
206
209
struct_union_typet::componentst components;
207
- typecheck_function_block_var_decls (function_block.var_input , components);
208
- typecheck_function_block_var_decls (function_block.var_inout , components);
209
- typecheck_function_block_var_decls (function_block.var_output , components);
210
- typecheck_function_block_var_decls (function_block.var_static , components);
210
+ typecheck_function_block_var_decls (
211
+ function_block.var_input , components, ID_statement_list_var_input);
212
+ typecheck_function_block_var_decls (
213
+ function_block.var_inout , components, ID_statement_list_var_inout);
214
+ typecheck_function_block_var_decls (
215
+ function_block.var_output , components, ID_statement_list_var_output);
216
+ typecheck_function_block_var_decls (
217
+ function_block.var_static , components, ID_statement_list_var_static);
211
218
212
219
return struct_typet{components};
213
220
}
214
221
215
222
void statement_list_typecheckt::typecheck_function_block_var_decls (
216
223
const statement_list_parse_treet::var_declarationst &var_decls,
217
- struct_union_typet::componentst &components)
224
+ struct_union_typet::componentst &components,
225
+ const irep_idt &var_property)
218
226
{
219
227
for (const statement_list_parse_treet::var_declarationt &declaration :
220
228
var_decls)
221
229
{
222
230
const irep_idt &var_name{declaration.variable .get_identifier ()};
223
231
const typet &var_type{declaration.variable .type ()};
224
232
struct_union_typet::componentt component{var_name, var_type};
233
+ component.set (ID_statement_list_type, var_property);
225
234
components.push_back (component);
226
235
}
227
236
}
228
237
229
238
void statement_list_typecheckt::typecheck_function_var_decls (
230
239
const statement_list_parse_treet::var_declarationst &var_decls,
231
240
code_typet::parameterst ¶ms,
232
- const irep_idt &function_name)
241
+ const irep_idt &function_name,
242
+ const irep_idt &var_property)
233
243
{
234
244
for (const statement_list_parse_treet::var_declarationt &declaration :
235
245
var_decls)
@@ -247,6 +257,7 @@ void statement_list_typecheckt::typecheck_function_var_decls(
247
257
code_typet::parametert param{declaration.variable .type ()};
248
258
param.set_identifier (param_sym.name );
249
259
param.set_base_name (declaration.variable .get_identifier ());
260
+ param.set (ID_statement_list_type, var_property);
250
261
params.push_back (param);
251
262
}
252
263
}
0 commit comments