File tree Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -136,6 +136,12 @@ class string_constraint_generatort final
136136
137137 array_poolt array_pool;
138138
139+ // / Associate array to pointer, and array to length
140+ // / \return an expression if the given function application is one of
141+ // / associate pointer and associate length
142+ optionalt<exprt>
143+ make_array_pointer_association (const function_application_exprt &expr);
144+
139145 // Type used by primitives to signal errors
140146 const signedbv_typet get_return_code_type ()
141147 {
Original file line number Diff line number Diff line change @@ -438,6 +438,17 @@ static irep_idt get_function_name(const function_application_exprt &expr)
438438 : to_symbol_expr (name).get_identifier ();
439439}
440440
441+ optionalt<exprt> string_constraint_generatort::make_array_pointer_association (
442+ const function_application_exprt &expr)
443+ {
444+ const irep_idt &id = get_function_name (expr);
445+ if (id == ID_cprover_associate_array_to_pointer_func)
446+ return associate_array_to_pointer (expr);
447+ else if (id == ID_cprover_associate_length_to_array_func)
448+ return associate_length_to_array (expr);
449+ return {};
450+ }
451+
441452// / strings contained in this call are converted to objects of type
442453// / `string_exprt`, through adding axioms. Axioms are then added to enforce that
443454// / the result corresponds to the function application.
You can’t perform that action at this time.
0 commit comments