Skip to content

Commit 3c392bb

Browse files
committed
Cleanup value_set_dereferencet's internal API
Several parameters were no longer used and thus unnecessarily being passed around.
1 parent 09bffe4 commit 3c392bb

File tree

2 files changed

+10
-35
lines changed

2 files changed

+10
-35
lines changed

src/pointer-analysis/value_set_dereference.cpp

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ exprt value_set_dereferencet::dereference(
101101
it!=points_to_set.end();
102102
it++)
103103
{
104-
valuet value=build_reference_to(*it, mode, pointer, guard);
104+
valuet value = build_reference_to(*it, pointer);
105105

106106
#if 0
107107
std::cout << "V: " << format(value.pointer_guard) << " --> ";
@@ -270,9 +270,7 @@ bool value_set_dereferencet::dereference_type_compare(
270270

271271
value_set_dereferencet::valuet value_set_dereferencet::build_reference_to(
272272
const exprt &what,
273-
const modet mode,
274-
const exprt &pointer_expr,
275-
const guardt &guard)
273+
const exprt &pointer_expr)
276274
{
277275
const typet &dereference_type=
278276
ns.follow(pointer_expr.type()).subtype();
@@ -397,9 +395,6 @@ value_set_dereferencet::valuet value_set_dereferencet::build_reference_to(
397395
result.pointer_guard=same_object(pointer_expr, object_pointer);
398396
}
399397

400-
guardt tmp_guard(guard);
401-
tmp_guard.add(result.pointer_guard);
402-
403398
const typet &object_type=ns.follow(object.type());
404399
const exprt &root_object=o.root_object();
405400
const typet &root_object_type=ns.follow(root_object.type());
@@ -492,7 +487,7 @@ value_set_dereferencet::valuet value_set_dereferencet::build_reference_to(
492487
else
493488
offset=o.offset();
494489

495-
if(memory_model(result.value, dereference_type, tmp_guard, offset))
490+
if(memory_model(result.value, dereference_type, offset))
496491
{
497492
// ok, done
498493
}
@@ -519,7 +514,6 @@ static bool is_a_bv_type(const typet &type)
519514
bool value_set_dereferencet::memory_model(
520515
exprt &value,
521516
const typet &to_type,
522-
const guardt &guard,
523517
const exprt &offset)
524518
{
525519
// we will allow more or less arbitrary pointer type cast
@@ -543,7 +537,7 @@ bool value_set_dereferencet::memory_model(
543537
{
544538
}
545539
else
546-
return memory_model_conversion(value, to_type, guard, offset);
540+
return memory_model_conversion(value, to_type);
547541
}
548542
}
549543

@@ -553,19 +547,17 @@ bool value_set_dereferencet::memory_model(
553547
to_type.id()==ID_pointer)
554548
{
555549
if(pointer_offset_bits(from_type, ns) == pointer_offset_bits(to_type, ns))
556-
return memory_model_conversion(value, to_type, guard, offset);
550+
return memory_model_conversion(value, to_type);
557551
}
558552

559553
// otherwise, we will stitch it together from bytes
560554

561-
return memory_model_bytes(value, to_type, guard, offset);
555+
return memory_model_bytes(value, to_type, offset);
562556
}
563557

564558
bool value_set_dereferencet::memory_model_conversion(
565559
exprt &value,
566-
const typet &to_type,
567-
const guardt &guard,
568-
const exprt &offset)
560+
const typet &to_type)
569561
{
570562
// only doing type conversion
571563
// just do the typecast
@@ -576,7 +568,6 @@ bool value_set_dereferencet::memory_model_conversion(
576568
bool value_set_dereferencet::memory_model_bytes(
577569
exprt &value,
578570
const typet &to_type,
579-
const guardt &guard,
580571
const exprt &offset)
581572
{
582573
const typet from_type=value.type();

src/pointer-analysis/value_set_dereference.h

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,7 @@ class value_set_dereferencet
113113
/// \param what: value set entry to convert to an expression: either
114114
/// ID_unknown, ID_invalid, or an object_descriptor_exprt giving a referred
115115
/// object and offset.
116-
/// \param mode: whether the pointer is being read or written; used to create
117-
/// pointer validity checks if need be
118116
/// \param pointer: pointer expression that may point to `what`
119-
/// \param guard: guard under which the pointer is dereferenced
120117
/// \return
121118
/// * If we were explicitly instructed to ignore `what` as a possible
122119
/// pointer target: a `valuet` with `ignore` = true, and `value` and
@@ -128,11 +125,7 @@ class value_set_dereferencet
128125
/// `{.value = global, .pointer_guard = (pointer_expr == &global)}`
129126
/// * Otherwise, if we couldn't build an expression (e.g. for `what` ==
130127
/// ID_unknown), a `valuet` with nil `value` and `ignore` == false.
131-
valuet build_reference_to(
132-
const exprt &what,
133-
const modet mode,
134-
const exprt &pointer,
135-
const guardt &guard);
128+
valuet build_reference_to(const exprt &what, const exprt &pointer);
136129

137130
bool get_value_guard(
138131
const exprt &symbol,
@@ -141,22 +134,13 @@ class value_set_dereferencet
141134

142135
static const exprt &get_symbol(const exprt &object);
143136

144-
bool memory_model(
145-
exprt &value,
146-
const typet &type,
147-
const guardt &guard,
148-
const exprt &offset);
137+
bool memory_model(exprt &value, const typet &type, const exprt &offset);
149138

150-
bool memory_model_conversion(
151-
exprt &value,
152-
const typet &type,
153-
const guardt &guard,
154-
const exprt &offset);
139+
bool memory_model_conversion(exprt &value, const typet &type);
155140

156141
bool memory_model_bytes(
157142
exprt &value,
158143
const typet &type,
159-
const guardt &guard,
160144
const exprt &offset);
161145
};
162146

0 commit comments

Comments
 (0)