Skip to content

Commit ab94ef1

Browse files
committed
Pass message_handler to incremental_solver
Signed-off-by: František Nečas <[email protected]>
1 parent eb81cc3 commit ab94ef1

File tree

7 files changed

+25
-12
lines changed

7 files changed

+25
-12
lines changed

src/2ls/summary_checker_base.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class summary_checker_baset:public messaget
6161
{
6262
messaget::set_message_handler(_message_handler);
6363
ssa_inliner.set_message_handler(_message_handler);
64+
ssa_db.set_message_handler(_message_handler);
6465
}
6566

6667
propertiest property_map;

src/domains/incremental_solver.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ class incremental_solvert:public messaget
3737

3838
explicit incremental_solvert(
3939
const namespacet &_ns,
40+
message_handlert &_message_handler,
4041
bool _arith_refinement=false):
42+
messaget(_message_handler),
4143
sat_check(NULL),
4244
solver(NULL),
4345
ns(_ns),
@@ -110,9 +112,10 @@ class incremental_solvert:public messaget
110112

111113
static incremental_solvert *allocate(
112114
const namespacet &_ns,
115+
message_handlert &_message_handler,
113116
bool arith_refinement=false)
114117
{
115-
return new incremental_solvert(_ns, arith_refinement);
118+
return new incremental_solvert(_ns, _message_handler, arith_refinement);
116119
}
117120

118121
inline prop_convt & get_solver() { return *solver; }

src/domains/lexlinrank_domain.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ void lexlinrank_domaint::initialize_value(domaint::valuet &value)
4343
void lexlinrank_domaint::initialize()
4444
{
4545
delete inner_solver;
46-
inner_solver=incremental_solvert::allocate(ns);
46+
inner_solver=incremental_solvert::allocate(ns, message_handler);
4747
}
4848

4949
bool lexlinrank_domaint::edit_row(const rowt &row, valuet &inv, bool improved)
@@ -133,7 +133,7 @@ bool lexlinrank_domaint::edit_row(const rowt &row, valuet &inv, bool improved)
133133
{
134134
number_elements_per_row[row]++;
135135
delete inner_solver;
136-
inner_solver=incremental_solvert::allocate(ns);
136+
inner_solver=incremental_solvert::allocate(ns, message_handler);
137137
reset_refinements();
138138

139139
rank[row].add_element();

src/domains/lexlinrank_domain.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,16 @@ class lexlinrank_domaint:public simple_domaint
102102
replace_mapt &_renaming_map,
103103
unsigned _max_elements, // lexicographic components
104104
unsigned _max_inner_iterations,
105-
const namespacet &_ns):
105+
const namespacet &_ns,
106+
message_handlert &_message_handler):
106107
simple_domaint(_domain_number, _renaming_map, _ns),
107108
refinement_level(0),
108109
max_elements(_max_elements),
109110
max_inner_iterations(_max_inner_iterations),
110-
number_inner_iterations(0)
111+
number_inner_iterations(0),
112+
message_handler(_message_handler)
111113
{
112-
inner_solver=incremental_solvert::allocate(_ns);
114+
inner_solver=incremental_solvert::allocate(_ns, _message_handler);
113115
}
114116

115117

@@ -162,6 +164,7 @@ class lexlinrank_domaint:public simple_domaint
162164
const unsigned max_inner_iterations;
163165
incremental_solvert *inner_solver;
164166
unsigned number_inner_iterations;
167+
message_handlert &message_handler;
165168

166169
std::vector<unsigned> number_elements_per_row;
167170
};

src/domains/linrank_domain.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,16 @@ class linrank_domaint:public simple_domaint
7979
replace_mapt &_renaming_map,
8080
unsigned _max_elements, // lexicographic components
8181
unsigned _max_inner_iterations,
82-
const namespacet &_ns):
82+
const namespacet &_ns,
83+
message_handlert &_message_handler):
8384
simple_domaint(_domain_number, _renaming_map, _ns),
8485
refinement_level(0),
8586
max_elements(_max_elements),
8687
max_inner_iterations(_max_inner_iterations),
87-
number_inner_iterations(0)
88+
number_inner_iterations(0),
89+
message_handler(_message_handler)
8890
{
89-
inner_solver=incremental_solvert::allocate(_ns);
91+
inner_solver=incremental_solvert::allocate(_ns, _message_handler);
9092
}
9193

9294
// initialize value
@@ -132,6 +134,7 @@ class linrank_domaint:public simple_domaint
132134
const unsigned max_inner_iterations;
133135
incremental_solvert *inner_solver;
134136
unsigned number_inner_iterations;
137+
message_handlert &message_handler;
135138
};
136139

137140
#endif // CPROVER_2LS_DOMAINS_LINRANK_DOMAIN_H

src/domains/template_generator_ranking.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ void template_generator_rankingt::operator()(
3838
post_renaming_map,
3939
options.get_unsigned_int_option("lexicographic-ranking-function"),
4040
options.get_unsigned_int_option("max-inner-ranking-iterations"),
41-
SSA.ns));
41+
SSA.ns,
42+
get_message_handler()));
4243
}
4344
else
4445
{
@@ -48,7 +49,8 @@ void template_generator_rankingt::operator()(
4849
post_renaming_map,
4950
options.get_unsigned_int_option("lexicographic-ranking-function"),
5051
options.get_unsigned_int_option("max-inner-ranking-iterations"),
51-
SSA.ns));
52+
SSA.ns,
53+
get_message_handler()));
5254
}
5355
collect_variables_ranking(SSA, forward);
5456

src/ssa/ssa_db.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Author: Peter Schrammel
1818
#include <domains/incremental_solver.h>
1919
#include <goto-programs/goto_functions.h>
2020

21-
class ssa_dbt
21+
class ssa_dbt:public messaget
2222
{
2323
public:
2424
typedef irep_idt function_namet;
@@ -52,6 +52,7 @@ class ssa_dbt
5252
the_solvers[function_name]=
5353
incremental_solvert::allocate(
5454
store.at(function_name)->ns,
55+
get_message_handler(),
5556
options.get_bool_option("refine"));
5657
return *the_solvers.at(function_name);
5758
}

0 commit comments

Comments
 (0)