@@ -22,7 +22,8 @@ Author: Daniel Kroening, kroening@kroening.com
2222exprt::operandst build_function_environment (
2323 const code_typet::parameterst ¶meters,
2424 code_blockt &init_code,
25- symbol_tablet &symbol_table)
25+ symbol_tablet &symbol_table,
26+ const c_object_factory_parameterst &object_factory_parameters)
2627{
2728 exprt::operandst main_arguments;
2829 main_arguments.resize (parameters.size ());
@@ -35,14 +36,14 @@ exprt::operandst build_function_environment(
3536 const irep_idt base_name=p.get_base_name ().empty ()?
3637 (" argument#" +std::to_string (param_number)):p.get_base_name ();
3738
38- main_arguments[param_number]=
39- c_nondet_symbol_factory (
40- init_code ,
41- symbol_table ,
42- base_name ,
43- p. type (),
44- p. source_location () ,
45- true );
39+ main_arguments[param_number] = c_nondet_symbol_factory (
40+ init_code,
41+ symbol_table ,
42+ base_name ,
43+ p. type () ,
44+ p. source_location (),
45+ true ,
46+ object_factory_parameters );
4647 }
4748
4849 return main_arguments;
@@ -111,7 +112,8 @@ void record_function_outputs(
111112
112113bool ansi_c_entry_point (
113114 symbol_tablet &symbol_table,
114- message_handlert &message_handler)
115+ message_handlert &message_handler,
116+ const c_object_factory_parameterst &object_factory_parameters)
115117{
116118 // check if entry point is already there
117119 if (symbol_table.symbols .find (goto_functionst::entry_point ())!=
@@ -179,7 +181,8 @@ bool ansi_c_entry_point(
179181
180182 static_lifetime_init (symbol_table, symbol.location , message_handler);
181183
182- return generate_ansi_c_start_function (symbol, symbol_table, message_handler);
184+ return generate_ansi_c_start_function (
185+ symbol, symbol_table, message_handler, object_factory_parameters);
183186}
184187
185188
@@ -193,7 +196,8 @@ bool ansi_c_entry_point(
193196bool generate_ansi_c_start_function (
194197 const symbolt &symbol,
195198 symbol_tablet &symbol_table,
196- message_handlert &message_handler)
199+ message_handlert &message_handler,
200+ const c_object_factory_parameterst &object_factory_parameters)
197201{
198202 PRECONDITION (!symbol.value .is_nil ());
199203 code_blockt init_code;
@@ -423,11 +427,8 @@ bool generate_ansi_c_start_function(
423427 else
424428 {
425429 // produce nondet arguments
426- call_main.arguments ()=
427- build_function_environment (
428- parameters,
429- init_code,
430- symbol_table);
430+ call_main.arguments () = build_function_environment (
431+ parameters, init_code, symbol_table, object_factory_parameters);
431432 }
432433
433434 init_code.move (call_main);
0 commit comments