Skip to content

Commit 82c54e7

Browse files
committed
Constify dereference_callbackt
has_failed_symbol is renamed to get_or_create_failed_symbol to emphasise that that method really *may* have side-effects.
1 parent eef01a1 commit 82c54e7

File tree

6 files changed

+18
-18
lines changed

6 files changed

+18
-18
lines changed

src/goto-symex/symex_dereference_state.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Author: Daniel Kroening, [email protected]
1313

1414
#include <util/symbol_table.h>
1515

16-
bool symex_dereference_statet::has_failed_symbol(
16+
bool symex_dereference_statet::get_or_create_failed_symbol(
1717
const exprt &expr,
1818
const symbolt *&symbol)
1919
{
@@ -70,7 +70,7 @@ bool symex_dereference_statet::has_failed_symbol(
7070

7171
void symex_dereference_statet::get_value_set(
7272
const exprt &expr,
73-
value_setst::valuest &value_set)
73+
value_setst::valuest &value_set) const
7474
{
7575
state.value_set.get_value_set(expr, value_set, goto_symex.ns);
7676

src/goto-symex/symex_dereference_state.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@ class symex_dereference_statet:
2929
}
3030

3131
protected:
32-
goto_symext &goto_symex;
32+
const goto_symext &goto_symex;
3333
goto_symext::statet &state;
3434

35-
void
36-
get_value_set(const exprt &expr, value_setst::valuest &value_set) override;
35+
void get_value_set(const exprt &expr, value_setst::valuest &value_set)
36+
const override;
3737

38-
bool has_failed_symbol(const exprt &expr, const symbolt *&symbol) override;
38+
bool get_or_create_failed_symbol(const exprt &expr, const symbolt *&symbol)
39+
override;
3940
};
4041

4142
#endif // CPROVER_GOTO_SYMEX_SYMEX_DEREFERENCE_STATE_H

src/pointer-analysis/dereference_callback.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,11 @@ class dereference_callbackt
2929
public:
3030
virtual ~dereference_callbackt() = default;
3131

32-
virtual void get_value_set(
33-
const exprt &expr,
34-
value_setst::valuest &value_set)=0;
32+
virtual void
33+
get_value_set(const exprt &expr, value_setst::valuest &value_set) const = 0;
3534

36-
virtual bool has_failed_symbol(
37-
const exprt &expr,
38-
const symbolt *&symbol)=0;
35+
virtual bool
36+
get_or_create_failed_symbol(const exprt &expr, const symbolt *&symbol) = 0;
3937
};
4038

4139
#endif // CPROVER_POINTER_ANALYSIS_DEREFERENCE_CALLBACK_H

src/pointer-analysis/goto_program_dereference.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Author: Daniel Kroening, [email protected]
2424
/// `failed_symbol` comment
2525
/// \return true when `expr` is a symbol, whose type contains a `failed_symbol`
2626
/// comment which exists in the namespace.
27-
bool goto_program_dereferencet::has_failed_symbol(
27+
bool goto_program_dereferencet::get_or_create_failed_symbol(
2828
const exprt &expr,
2929
const symbolt *&symbol)
3030
{
@@ -225,7 +225,7 @@ void goto_program_dereferencet::dereference_rec(
225225
/// \param [out] dest: gets the value set
226226
void goto_program_dereferencet::get_value_set(
227227
const exprt &expr,
228-
value_setst::valuest &dest)
228+
value_setst::valuest &dest) const
229229
{
230230
value_sets.get_values(current_function, current_target, expr, dest);
231231
}

src/pointer-analysis/goto_program_dereference.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,17 @@ class goto_program_dereferencet:protected dereference_callbackt
6969
DEPRECATED("Unused")
7070
virtual bool is_valid_object(const irep_idt &identifier);
7171

72-
bool has_failed_symbol(const exprt &expr, const symbolt *&symbol) override;
72+
bool get_or_create_failed_symbol(const exprt &expr, const symbolt *&symbol)
73+
override;
7374

7475
DEPRECATED("Unused")
7576
virtual void dereference_failure(
7677
const std::string &property,
7778
const std::string &msg,
7879
const guardt &guard);
7980

80-
void get_value_set(const exprt &expr, value_setst::valuest &dest) override;
81+
void
82+
get_value_set(const exprt &expr, value_setst::valuest &dest) const override;
8183

8284
void dereference_instruction(
8385
goto_programt::targett target,

src/pointer-analysis/value_set_dereference.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,7 @@ exprt value_set_dereferencet::dereference(
126126
const symbolt *failed_symbol;
127127
exprt failure_value;
128128

129-
if(dereference_callback.has_failed_symbol(
130-
pointer, failed_symbol))
129+
if(dereference_callback.get_or_create_failed_symbol(pointer, failed_symbol))
131130
{
132131
// yes!
133132
failure_value=failed_symbol->symbol_expr();

0 commit comments

Comments
 (0)