Skip to content

Commit 33561aa

Browse files
authored
Merge pull request diffblue#3366 from tautschnig/vs-member-init
Add missing member initializers of string_constraintst-typed value [blocks: diffblue#2310]
2 parents bd6c79e + c078a69 commit 33561aa

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/solvers/refinement/string_constraint_generator_main.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,8 +571,9 @@ std::pair<exprt, string_constraintst> add_axioms_for_char_at(
571571
PRECONDITION(f.arguments().size() == 2);
572572
array_string_exprt str = get_string_expr(array_pool, f.arguments()[0]);
573573
symbol_exprt char_sym = fresh_symbol("char", str.type().subtype());
574-
const exprt constraint = equal_exprt(char_sym, str[f.arguments()[1]]);
575-
return {char_sym, {{constraint}}};
574+
string_constraintst constraints;
575+
constraints.existential = {equal_exprt(char_sym, str[f.arguments()[1]])};
576+
return {std::move(char_sym), std::move(constraints)};
576577
}
577578

578579
exprt minimum(const exprt &a, const exprt &b)

src/solvers/refinement/string_constraint_generator_testing.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,10 @@ std::pair<exprt, string_constraintst> add_axioms_for_is_empty(
136136

137137
symbol_exprt is_empty = fresh_symbol("is_empty");
138138
array_string_exprt s0 = get_string_expr(array_pool, f.arguments()[0]);
139-
std::vector<exprt> constraints;
140-
constraints.push_back(implies_exprt(is_empty, length_eq(s0, 0)));
141-
constraints.push_back(implies_exprt(length_eq(s0, 0), is_empty));
142-
return {typecast_exprt(is_empty, f.type()), {constraints}};
139+
string_constraintst constraints;
140+
constraints.existential = {implies_exprt(is_empty, length_eq(s0, 0)),
141+
implies_exprt(length_eq(s0, 0), is_empty)};
142+
return {typecast_exprt(is_empty, f.type()), std::move(constraints)};
143143
}
144144

145145
/// Test if the target is a suffix of the string

src/solvers/refinement/string_constraint_generator_valueof.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,10 @@ std::pair<exprt, string_constraintst> add_axioms_from_char(
312312
const array_string_exprt &res,
313313
const exprt &c)
314314
{
315-
const and_exprt lemma(equal_exprt(res[0], c), length_eq(res, 1));
316-
return {from_integer(0, get_return_code_type()), {{lemma}}};
315+
string_constraintst constraints;
316+
constraints.existential = {
317+
and_exprt(equal_exprt(res[0], c), length_eq(res, 1))};
318+
return {from_integer(0, get_return_code_type()), std::move(constraints)};
317319
}
318320

319321
/// Add axioms making the return value true if the given string is a correct

0 commit comments

Comments
 (0)