@@ -63,7 +63,9 @@ class variable_sensitivity_dependence_domaint:
63
63
typedef grapht<vs_dep_nodet>::node_indext node_indext;
64
64
65
65
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 )
67
69
{}
68
70
69
71
void transform (
@@ -72,6 +74,41 @@ class variable_sensitivity_dependence_domaint:
72
74
ai_baset &ai,
73
75
const namespacet &ns) override ;
74
76
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
+
75
112
virtual bool merge (
76
113
const variable_sensitivity_domaint &b,
77
114
locationt from,
0 commit comments