Skip to content

Commit aef0d05

Browse files
committed
Prepare for strict type checking in replace_symbolt
The derived class unchecked_replace_symbolt will not do any such type checking and is to be used in all cases where types are expected to change or no type checking can be performed.
1 parent e898729 commit aef0d05

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

src/goto-instrument/model_argc_argv.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ bool model_argc_argv(
130130
{
131131
value = symbol_pair.second.value;
132132

133-
replace_symbolt replace;
133+
unchecked_replace_symbolt replace;
134134
replace.insert(ARGC, ns.lookup("argc'").symbol_expr());
135135
replace.insert(ARGV, ns.lookup("argv'").symbol_expr());
136136
replace(value);

src/linking/linking_class.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class linkingt:public typecheckt
3535
virtual void typecheck();
3636

3737
rename_symbolt rename_symbol;
38-
replace_symbolt object_type_updates;
38+
unchecked_replace_symbolt object_type_updates;
3939

4040
protected:
4141
bool needs_renaming_type(

src/util/replace_symbol.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -245,3 +245,10 @@ bool replace_symbolt::have_to_replace(const typet &dest) const
245245

246246
return false;
247247
}
248+
249+
void unchecked_replace_symbolt::insert(
250+
const symbol_exprt &old_expr,
251+
const exprt &new_expr)
252+
{
253+
expr_map.emplace(old_expr.get_identifier(), new_expr);
254+
}

src/util/replace_symbol.h

+10
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,14 @@ class replace_symbolt
9797
bool have_to_replace(const typet &type) const;
9898
};
9999

100+
class unchecked_replace_symbolt : public replace_symbolt
101+
{
102+
public:
103+
unchecked_replace_symbolt()
104+
{
105+
}
106+
107+
void insert(const symbol_exprt &old_expr, const exprt &new_expr);
108+
};
109+
100110
#endif // CPROVER_UTIL_REPLACE_SYMBOL_H

0 commit comments

Comments
 (0)