Skip to content

Commit 1b4744e

Browse files
committed
Remove unused parameter from cpp_destructor and fix types
1 parent 90c56b3 commit 1b4744e

File tree

4 files changed

+5
-14
lines changed

4 files changed

+5
-14
lines changed

src/cpp/cpp_destructor.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ Author: Daniel Kroening, [email protected]
1818
/// \return typechecked code
1919
codet cpp_typecheckt::cpp_destructor(
2020
const source_locationt &source_location,
21-
const typet &type,
2221
const exprt &object)
2322
{
2423
codet new_code;
@@ -74,8 +73,7 @@ codet cpp_typecheckt::cpp_destructor(
7473
index_exprt index(object, constant);
7574
index.add_source_location()=source_location;
7675

77-
exprt i_code =
78-
cpp_destructor(source_location, tmp_type.subtype(), index);
76+
exprt i_code = cpp_destructor(source_location, index);
7977

8078
new_code.move_to_operands(i_code);
8179
}

src/cpp/cpp_typecheck.h

-1
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,6 @@ class cpp_typecheckt:public c_typecheck_baset
432432

433433
codet cpp_destructor(
434434
const source_locationt &source_location,
435-
const typet &type,
436435
const exprt &object);
437436

438437
// expressions

src/cpp/cpp_typecheck_destructor.cpp

+4-9
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,12 @@ codet cpp_typecheckt::dtor(const symbolt &symbol)
134134
cpp_namet cppname;
135135
cppname.get_sub().push_back(name);
136136

137-
exprt member(ID_ptrmember);
137+
exprt member(ID_ptrmember, type);
138138
member.set(ID_component_cpp_name, cppname);
139139
member.operands().push_back(exprt("cpp-this"));
140140
member.add_source_location() = source_location;
141141

142-
codet dtor_code=
143-
cpp_destructor(source_location, cit->type(), member);
142+
codet dtor_code = cpp_destructor(source_location, member);
144143

145144
if(dtor_code.is_not_nil())
146145
block.move_to_operands(dtor_code);
@@ -158,14 +157,10 @@ codet cpp_typecheckt::dtor(const symbolt &symbol)
158157
assert(bit->find(ID_type).id()==ID_symbol);
159158
const symbolt &psymb = lookup(bit->find(ID_type).get(ID_identifier));
160159

161-
// TODO(tautschnig): object is not type checked before passing it to
162-
// cpp_destructor even though cpp_destructor makes heavy use of the .type()
163-
// member
164-
dereference_exprt object(exprt("cpp-this"), nil_typet());
160+
dereference_exprt object(exprt("cpp-this"), psymb.type);
165161
object.add_source_location() = source_location;
166162

167-
exprt dtor_code =
168-
cpp_destructor(source_location, psymb.type, object);
163+
exprt dtor_code = cpp_destructor(source_location, object);
169164

170165
if(dtor_code.is_not_nil())
171166
block.move_to_operands(dtor_code);

src/cpp/cpp_typecheck_expr.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1073,7 +1073,6 @@ void cpp_typecheckt::typecheck_expr_delete(exprt &expr)
10731073

10741074
codet destructor_code=cpp_destructor(
10751075
expr.source_location(),
1076-
pointer_type.subtype(),
10771076
new_object);
10781077

10791078
// this isn't typechecked yet

0 commit comments

Comments
 (0)