Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace plain string dynamic-object #779

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/cbmc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ OBJ += ../ansi-c/ansi-c$(LIBEXT) \
../pointer-analysis/add_failed_symbols$(OBJEXT) \
../pointer-analysis/rewrite_index$(OBJEXT) \
../pointer-analysis/goto_program_dereference$(OBJEXT) \
../pointer-analysis/dynamic_object_name$(OBJEXT) \
../goto-instrument/full_slicer$(OBJEXT) \
../goto-instrument/nondet_static$(OBJEXT) \
../goto-instrument/cover$(OBJEXT) \
Expand Down
1 change: 1 addition & 0 deletions src/cegis/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ OBJ += ../ansi-c/ansi-c$(LIBEXT) \
../pointer-analysis/add_failed_symbols$(OBJEXT) \
../pointer-analysis/rewrite_index$(OBJEXT) \
../pointer-analysis/goto_program_dereference$(OBJEXT) \
../pointer-analysis/dynamic_object_name$(OBJEXT) \
../goto-instrument/full_slicer$(OBJEXT) \
../analyses/analyses$(LIBEXT) \
../langapi/langapi$(LIBEXT) \
Expand Down
4 changes: 3 additions & 1 deletion src/pointer-analysis/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ SRC = value_set.cpp goto_program_dereference.cpp value_set_analysis.cpp \
value_set_analysis_fivr.cpp value_set_fivr.cpp value_set_domain_fivr.cpp \
value_set_analysis_fivrns.cpp value_set_fivrns.cpp \
value_set_domain_fivrns.cpp value_set_dereference.cpp \
dereference_callback.cpp
dereference_callback.cpp \
dynamic_object_name.cpp \
# No more source files

INCLUDES= -I ..

Expand Down
18 changes: 18 additions & 0 deletions src/pointer-analysis/dynamic_object_name.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*******************************************************************\

Module: Dynamic object name

Author: Marius-Constantin Melemciuc

Date: April 2017

@ Copyright Diffblue, Ltd.

\*******************************************************************/

#include "dynamic_object_name.h"

// We use std::string concatenation regularly with this string
// NOLINTNEXTLINE(runtime/string)
const std::string prefix_dynamic_object="value_set::dynamic_object";

4 changes: 3 additions & 1 deletion src/pointer-analysis/dynamic_object_name.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ Date: April 2017

#include <util/std_expr.h>

extern const std::string prefix_dynamic_object;

/*******************************************************************\

Function: get_dynamic_object_name
Expand All @@ -38,7 +40,7 @@ inline std::string get_dynamic_object_name(
const dynamic_object_exprt &dynamic_object)
{
std::string name=
"value_set::dynamic_object"+
prefix_dynamic_object+
std::to_string(dynamic_object.get_instance());

if(dynamic_object.get_recency()==
Expand Down
4 changes: 2 additions & 2 deletions src/pointer-analysis/value_set.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ bool value_sett::field_sensitive(
const namespacet &ns)
{
// we always track fields on these
if(has_prefix(id2string(id), "value_set::dynamic_object") ||
if(has_prefix(id2string(id), prefix_dynamic_object) ||
id=="value_set::return_value" ||
id=="value_set::memory")
return true;
Expand Down Expand Up @@ -152,7 +152,7 @@ void value_sett::output(

const entryt &e=v_it->second;

if(has_prefix(id2string(e.identifier), "value_set::dynamic_object"))
if(has_prefix(id2string(e.identifier), prefix_dynamic_object))
{
display_name=id2string(e.identifier)+e.suffix;
identifier="";
Expand Down
6 changes: 3 additions & 3 deletions src/pointer-analysis/value_set_fi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ void value_set_fit::output(

const entryt &e=v_it->second;

if(has_prefix(id2string(e.identifier), "value_set::dynamic_object"))
if(has_prefix(id2string(e.identifier), prefix_dynamic_object))
{
display_name=id2string(e.identifier)+e.suffix;
identifier="";
Expand Down Expand Up @@ -316,7 +316,7 @@ bool value_set_fit::make_union(const value_set_fit::valuest &new_values)
{
// we always track these
if(has_prefix(id2string(it->second.identifier),
"value_set::dynamic_object") ||
prefix_dynamic_object) ||
has_prefix(id2string(it->second.identifier),
"value_set::return_value"))
{
Expand Down Expand Up @@ -1434,7 +1434,7 @@ void value_set_fit::assign_rec(
const irep_idt &identifier=lhs.get(ID_identifier);

if(has_prefix(id2string(identifier),
"value_set::dynamic_object") ||
prefix_dynamic_object) ||
has_prefix(id2string(identifier),
"value_set::return_value") ||
values.find(id2string(identifier)+suffix)!=values.end())
Expand Down
2 changes: 1 addition & 1 deletion src/pointer-analysis/value_set_fivr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1562,7 +1562,7 @@ void value_set_fivrt::assign_rec(
const irep_idt &identifier=lhs.get(ID_identifier);

if(has_prefix(id2string(identifier),
"value_set::dynamic_object") ||
prefix_dynamic_object) ||
has_prefix(id2string(identifier),
"value_set::return_value") ||
values.find(id2string(identifier)+suffix)!=values.end())
Expand Down
2 changes: 1 addition & 1 deletion src/pointer-analysis/value_set_fivrns.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1202,7 +1202,7 @@ void value_set_fivrnst::assign_rec(
const irep_idt &identifier=lhs.get(ID_identifier);

if(has_prefix(id2string(identifier),
"value_set::dynamic_object") ||
prefix_dynamic_object) ||
has_prefix(id2string(identifier),
"value_set::return_value") ||
values.find(id2string(identifier)+suffix)!=values.end())
Expand Down