Skip to content

Commit 0838c70

Browse files
author
Enrico Steffinlongo
authored
Merge pull request #7939 from esteffin/esteffin/shadow-memory-docs-and-tests
Non functional improvements to shadow memory utility functions
2 parents f840cd0 + e4f174f commit 0838c70

File tree

5 files changed

+728
-246
lines changed

5 files changed

+728
-246
lines changed

src/goto-symex/shadow_memory.cpp

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -103,20 +103,20 @@ void shadow_memoryt::symex_set_field(
103103
irep_pretty_diagnosticst{expr_type});
104104

105105
exprt value = arguments[2];
106-
log_set_field(ns, log, field_name, expr, value);
106+
shadow_memory_log_set_field(ns, log, field_name, expr, value);
107107
INVARIANT(
108108
state.shadow_memory.address_fields.count(field_name) == 1,
109109
id2string(field_name) + " should exist");
110110
const auto &addresses = state.shadow_memory.address_fields.at(field_name);
111111

112112
// get value set
113113
replace_invalid_object_by_null(expr);
114-
#ifdef DEBUG_SM
115-
log_set_field(ns, log, field_name, expr, value);
116-
#endif
114+
115+
shadow_memory_log_set_field(ns, log, field_name, expr, value);
116+
117117
std::vector<exprt> value_set = state.value_set.get_value_set(expr, ns);
118-
log_value_set(ns, log, value_set);
119-
if(set_field_check_null(ns, log, value_set, expr))
118+
shadow_memory_log_value_set(ns, log, value_set);
119+
if(check_value_set_contains_only_null_ptr(ns, log, value_set, expr))
120120
{
121121
log.warning() << "Shadow memory: cannot set shadow memory of NULL"
122122
<< messaget::eom;
@@ -143,9 +143,9 @@ void shadow_memoryt::symex_set_field(
143143
<< messaget::eom;
144144
}
145145
const exprt lhs = deref_expr(*maybe_lhs);
146-
#ifdef DEBUG_SM
147-
log.debug() << "Shadow memory: LHS: " << format(lhs) << messaget::eom;
148-
#endif
146+
147+
shadow_memory_log_text_and_expr(ns, log, "LHS", lhs);
148+
149149
if(lhs.type().id() == ID_empty)
150150
{
151151
std::stringstream s;
@@ -168,10 +168,7 @@ void shadow_memoryt::symex_set_field(
168168
expr_initializer(lhs.type(), expr.source_location(), ns, casted_rhs);
169169
CHECK_RETURN(per_byte_rhs.has_value());
170170

171-
#ifdef DEBUG_SM
172-
log.debug() << "Shadow memory: RHS: " << format(per_byte_rhs.value())
173-
<< messaget::eom;
174-
#endif
171+
shadow_memory_log_text_and_expr(ns, log, "RHS", per_byte_rhs.value());
175172
symex_assign(
176173
state,
177174
lhs,
@@ -206,7 +203,7 @@ void shadow_memoryt::symex_get_field(
206203
DATA_INVARIANT(
207204
expr_type.id() == ID_pointer,
208205
"shadow memory requires a pointer expression");
209-
log_get_field(ns, log, field_name, expr);
206+
shadow_memory_log_get_field(ns, log, field_name, expr);
210207

211208
INVARIANT(
212209
state.shadow_memory.address_fields.count(field_name) == 1,
@@ -218,7 +215,7 @@ void shadow_memoryt::symex_get_field(
218215
replace_invalid_object_by_null(expr);
219216

220217
std::vector<exprt> value_set = state.value_set.get_value_set(expr, ns);
221-
log_value_set(ns, log, value_set);
218+
shadow_memory_log_value_set(ns, log, value_set);
222219

223220
std::vector<std::pair<exprt, exprt>> rhs_conds_values;
224221
const null_pointer_exprt null_pointer(to_pointer_type(expr.type()));
@@ -227,7 +224,7 @@ void shadow_memoryt::symex_get_field(
227224

228225
if(contains_null_or_invalid(value_set, null_pointer))
229226
{
230-
log_value_set_match(ns, log, null_pointer, expr);
227+
shadow_memory_log_value_set_match(ns, log, null_pointer, expr);
231228
// If we have an invalid pointer, then return the default value of the
232229
// shadow memory as dereferencing it would fail
233230
rhs_conds_values.emplace_back(
@@ -312,10 +309,10 @@ void shadow_memoryt::symex_get_field(
312309
log.debug() << "Shadow memory: mux size get_field: " << mux_size
313310
<< messaget::eom;
314311
}
315-
#ifdef DEBUG_SM
316-
log.debug() << "Shadow memory: RHS: " << format(rhs) << messaget::eom;
317-
#endif
318-
// TODO: create the assignment of __CPROVER_shadow_memory_get_field
312+
313+
shadow_memory_log_text_and_expr(ns, log, "RHS", rhs);
314+
315+
// create the assignment of __CPROVER_shadow_memory_get_field
319316
symex_assign(state, lhs, typecast_exprt::conditional_cast(rhs, lhs.type()));
320317
}
321318
else

0 commit comments

Comments
 (0)