File tree 2 files changed +17
-0
lines changed
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
136
136
137
137
array_poolt array_pool;
138
138
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
+
139
145
// Type used by primitives to signal errors
140
146
const signedbv_typet get_return_code_type ()
141
147
{
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)
438
438
: to_symbol_expr (name).get_identifier ();
439
439
}
440
440
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
+
441
452
// / strings contained in this call are converted to objects of type
442
453
// / `string_exprt`, through adding axioms. Axioms are then added to enforce that
443
454
// / the result corresponds to the function application.
You can’t perform that action at this time.
0 commit comments