Skip to content

Commit e626cd1

Browse files
committed
Add specialised ai domain methods for variable sensitivity dependence graph
1 parent d51a65c commit e626cd1

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

src/analyses/variable-sensitivity/variable_sensitivity_dependence_graph.h

+38-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ class variable_sensitivity_dependence_domaint:
6363
typedef grapht<vs_dep_nodet>::node_indext node_indext;
6464

6565
explicit variable_sensitivity_dependence_domaint():
66-
node_id(std::numeric_limits<node_indext>::max())
66+
node_id(std::numeric_limits<node_indext>::max()),
67+
has_values(false),
68+
has_changed(false)
6769
{}
6870

6971
void transform(
@@ -72,6 +74,41 @@ class variable_sensitivity_dependence_domaint:
7274
ai_baset &ai,
7375
const namespacet &ns) override;
7476

77+
virtual void make_bottom() override
78+
{
79+
variable_sensitivity_domaint::make_bottom();
80+
has_values = tvt(false);
81+
has_changed = false;
82+
domain_data_deps.clear();
83+
control_deps.clear();
84+
control_dep_candidates.clear();
85+
}
86+
87+
virtual void make_top() override
88+
{
89+
variable_sensitivity_domaint::make_top();
90+
has_values = tvt(true);
91+
has_changed = false;
92+
domain_data_deps.clear();
93+
control_deps.clear();
94+
control_dep_candidates.clear();
95+
}
96+
97+
virtual void make_entry() override
98+
{
99+
make_top();
100+
}
101+
102+
bool is_bottom() const override
103+
{
104+
return variable_sensitivity_domaint::is_bottom() && has_values.is_false();
105+
}
106+
107+
bool is_top() const override
108+
{
109+
return variable_sensitivity_domaint::is_top() && has_values.is_true();
110+
}
111+
75112
virtual bool merge(
76113
const variable_sensitivity_domaint &b,
77114
locationt from,

0 commit comments

Comments
 (0)