Skip to content

Commit 4aa65ff

Browse files
committed
Stripped down value_set_abstract_objectt::resolve_values
No longer convert large value sets into an interval.
1 parent eafa13e commit 4aa65ff

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

src/analyses/variable-sensitivity/value_set_abstract_object.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,15 @@ value_set_abstract_objectt::value_set_abstract_objectt(
139139
verify();
140140
}
141141

142+
value_set_abstract_objectt::value_set_abstract_objectt(
143+
const typet &type,
144+
abstract_object_sett initial_values)
145+
: abstract_value_objectt(type, false, false),
146+
values(std::move(initial_values))
147+
{
148+
verify();
149+
}
150+
142151
index_range_implementation_ptrt
143152
value_set_abstract_objectt::index_range_implementation(
144153
const namespacet &ns) const
@@ -245,16 +254,7 @@ abstract_object_pointert value_set_abstract_objectt::resolve_values(
245254

246255
auto unwrapped_values = unwrap_and_extract_values(new_values);
247256

248-
if(unwrapped_values.size() > max_value_set_size)
249-
{
250-
return std::make_shared<interval_abstract_valuet>(
251-
unwrapped_values.to_interval());
252-
}
253-
254-
auto result =
255-
std::dynamic_pointer_cast<value_set_abstract_objectt>(mutable_clone());
256-
result->set_values(unwrapped_values);
257-
return result;
257+
return std::make_shared<value_set_abstract_objectt>(type(), unwrapped_values);
258258
}
259259

260260
void value_set_abstract_objectt::set_top_internal()

src/analyses/variable-sensitivity/value_set_abstract_object.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ class value_set_abstract_objectt : public abstract_value_objectt,
3030
const abstract_environmentt &environment,
3131
const namespacet &ns);
3232

33+
value_set_abstract_objectt(
34+
const typet &type,
35+
abstract_object_sett initial_values);
36+
3337
index_range_implementation_ptrt
3438
index_range_implementation(const namespacet &ns) const override;
3539

0 commit comments

Comments
 (0)