Skip to content

Commit 7c136ef

Browse files
committed
Remove abstract_objectt::read member function
Now we've moved some work into expression_transform, we don't need a read member on the base class.
1 parent 5e51e4c commit 7c136ef

16 files changed

+7
-177
lines changed

src/analyses/variable-sensitivity/abstract_object.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,6 @@ abstract_object_pointert abstract_objectt::expression_transform(
136136
return environment.abstract_object_factory(copy.type(), copy, ns);
137137
}
138138

139-
abstract_object_pointert abstract_objectt::read(
140-
const abstract_environmentt &env,
141-
const exprt &specifier,
142-
const namespacet &ns) const
143-
{
144-
return shared_from_this();
145-
}
146-
147139
abstract_object_pointert abstract_objectt::write(
148140
abstract_environmentt &environment,
149141
const namespacet &ns,

src/analyses/variable-sensitivity/abstract_object.h

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -177,23 +177,6 @@ class abstract_objectt : public std::enable_shared_from_this<abstract_objectt>
177177
/// that allows an object to be built from a value.
178178
virtual exprt to_constant() const;
179179

180-
/**
181-
* A helper function to evaluate an abstract object contained
182-
* within a container object. More precise abstractions may override this
183-
* to return more precise results.
184-
*
185-
* \param env the abstract environment
186-
* \param specifier a modifier expression, such as an array index or field
187-
* specifier used to indicate access to a specific component
188-
* \param ns the current namespace
189-
*
190-
* \return the abstract_objectt representing the value of the read component.
191-
*/
192-
virtual abstract_object_pointert read(
193-
const abstract_environmentt &env,
194-
const exprt &specifier,
195-
const namespacet &ns) const;
196-
197180
/**
198181
* A helper function to evaluate writing to a component of an
199182
* abstract object. More precise abstractions may override this to

src/analyses/variable-sensitivity/array_abstract_object.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,13 @@ abstract_object_pointert array_abstract_objectt::expression_transform(
4343
{
4444
if(expr.id() == ID_index)
4545
{
46-
return read(environment, expr, ns);
46+
return read_index(environment, to_index_expr(expr), ns);
4747
}
4848

4949
return abstract_objectt::expression_transform(
5050
expr, operands, environment, ns);
5151
}
5252

53-
abstract_object_pointert array_abstract_objectt::read(
54-
const abstract_environmentt &env,
55-
const exprt &specifier,
56-
const namespacet &ns) const
57-
{
58-
return this->read_index(env, to_index_expr(specifier), ns);
59-
}
60-
6153
abstract_object_pointert array_abstract_objectt::write(
6254
abstract_environmentt &environment,
6355
const namespacet &ns,

src/analyses/variable-sensitivity/array_abstract_object.h

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,23 +63,6 @@ class array_abstract_objectt : public abstract_objectt
6363
const abstract_environmentt &environment,
6464
const namespacet &ns) const override;
6565

66-
/**
67-
* A helper function to evaluate an abstract object contained
68-
* within a container object. More precise abstractions may override this
69-
* to return more precise results.
70-
*
71-
* \param env the abstract environment
72-
* \param specifier a modifier expression, such as an array index or field
73-
* specifier used to indicate access to a specific component
74-
* \param ns the current namespace
75-
*
76-
* \return the abstract_objectt representing the value of the read component.
77-
*/
78-
abstract_object_pointert read(
79-
const abstract_environmentt &env,
80-
const exprt &specifier,
81-
const namespacet &ns) const override;
82-
8366
/**
8467
* A helper function to evaluate writing to a component of an
8568
* abstract object. More precise abstractions may override this to

src/analyses/variable-sensitivity/context_abstract_object.cpp

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,28 +30,6 @@ void context_abstract_objectt::set_not_top_internal()
3030
set_child(child_abstract_object->clear_top());
3131
}
3232

33-
/**
34-
* A helper function to evaluate an abstract object contained
35-
* within a container object. More precise abstractions may override this
36-
* to return more precise results.
37-
*
38-
* \param env the abstract environment
39-
* \param specifier a modifier expression, such as an array index or field
40-
* specifier used to indicate access to a specific component
41-
* \param ns the current namespace
42-
*
43-
* \return the abstract_objectt representing the value of the read component.
44-
* For the dependency context, the operation is simply delegated to the
45-
* child object
46-
*/
47-
abstract_object_pointert context_abstract_objectt::read(
48-
const abstract_environmentt &env,
49-
const exprt &specifier,
50-
const namespacet &ns) const
51-
{
52-
return child_abstract_object->read(env, specifier, ns);
53-
}
54-
5533
/**
5634
* A helper function to evaluate writing to a component of an
5735
* abstract object. More precise abstractions may override this to

src/analyses/variable-sensitivity/context_abstract_object.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,6 @@ class context_abstract_objectt : public abstract_objectt
107107
void set_top_internal() override;
108108
void set_not_top_internal() override;
109109

110-
abstract_object_pointert read(
111-
const abstract_environmentt &env,
112-
const exprt &specifier,
113-
const namespacet &ns) const override;
114-
115110
abstract_object_pointert write(
116111
abstract_environmentt &environment,
117112
const namespacet &ns,

src/analyses/variable-sensitivity/pointer_abstract_object.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,13 @@ abstract_object_pointert pointer_abstract_objectt::expression_transform(
4444
{
4545
if(expr.id() == ID_dereference)
4646
{
47-
return read(environment, expr, ns);
47+
return read_dereference(environment, ns);
4848
}
4949

5050
return abstract_objectt::expression_transform(
5151
expr, operands, environment, ns);
5252
}
5353

54-
abstract_object_pointert pointer_abstract_objectt::read(
55-
const abstract_environmentt &env,
56-
const exprt &specifier,
57-
const namespacet &ns) const
58-
{
59-
return read_dereference(env, ns);
60-
}
61-
6254
abstract_object_pointert pointer_abstract_objectt::write(
6355
abstract_environmentt &environment,
6456
const namespacet &ns,

src/analyses/variable-sensitivity/pointer_abstract_object.h

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -64,23 +64,6 @@ class pointer_abstract_objectt : public abstract_objectt
6464
const abstract_environmentt &environment,
6565
const namespacet &ns);
6666

67-
/**
68-
* A helper function to evaluate an abstract object contained
69-
* within a container object. More precise abstractions may override this
70-
* to return more precise results.
71-
*
72-
* \param env the abstract environment
73-
* \param specifier a modifier expression, such as an array index or field
74-
* specifier used to indicate access to a specific component
75-
* \param ns the current namespace
76-
*
77-
* \return the abstract_objectt representing the value of the read component.
78-
*/
79-
abstract_object_pointert read(
80-
const abstract_environmentt &env,
81-
const exprt &specifier,
82-
const namespacet &ns) const override;
83-
8467
/**
8568
* A helper function to evaluate writing to a component of an
8669
* abstract object. More precise abstractions may override this to

src/analyses/variable-sensitivity/struct_abstract_object.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,13 @@ abstract_object_pointert struct_abstract_objectt::expression_transform(
4545
{
4646
if(expr.id() == ID_member)
4747
{
48-
return read(environment, expr, ns);
48+
return read_component(environment, to_member_expr(expr), ns);
4949
}
5050

5151
return abstract_objectt::expression_transform(
5252
expr, operands, environment, ns);
5353
}
5454

55-
abstract_object_pointert struct_abstract_objectt::read(
56-
const abstract_environmentt &env,
57-
const exprt &specifier,
58-
const namespacet &ns) const
59-
{
60-
return this->read_component(env, to_member_expr(specifier), ns);
61-
}
62-
6355
abstract_object_pointert struct_abstract_objectt::write(
6456
abstract_environmentt &environment,
6557
const namespacet &ns,

src/analyses/variable-sensitivity/struct_abstract_object.h

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,23 +63,6 @@ class struct_abstract_objectt : public abstract_objectt
6363
const abstract_environmentt &environment,
6464
const namespacet &ns);
6565

66-
/**
67-
* A helper function to evaluate an abstract object contained
68-
* within a container object. More precise abstractions may override this
69-
* to return more precise results.
70-
*
71-
* \param env the abstract environment
72-
* \param specifier a modifier expression, such as an array index or field
73-
* specifier used to indicate access to a specific component
74-
* \param ns the current namespace
75-
*
76-
* \return the abstract_objectt representing the value of the read component.
77-
*/
78-
abstract_object_pointert read(
79-
const abstract_environmentt &env,
80-
const exprt &specifier,
81-
const namespacet &ns) const override;
82-
8366
/**
8467
* A helper function to evaluate writing to a component of an
8568
* abstract object. More precise abstractions may override this to

0 commit comments

Comments
 (0)