svf-lib 1.0.1385 → 1.0.1387

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -212,6 +212,12 @@ public:
212
212
  }
213
213
  }
214
214
 
215
+ /// domain widen with other, and return the widened domain
216
+ IntervalExeState widening(const IntervalExeState &other);
217
+
218
+ /// domain narrow with other, and return the narrowed domain
219
+ IntervalExeState narrowing(const IntervalExeState &other);
220
+
215
221
  /// domain widen with other, important! other widen this.
216
222
  void widenWith(const IntervalExeState &other);
217
223
 
@@ -252,6 +258,13 @@ public:
252
258
  return true;
253
259
  }
254
260
  }
261
+ for (auto it = _locToItvVal.begin(); it != _locToItvVal.end(); ++it)
262
+ {
263
+ if (it->second.isBottom())
264
+ {
265
+ return true;
266
+ }
267
+ }
255
268
  return false;
256
269
  }
257
270
 
@@ -357,13 +370,9 @@ public:
357
370
 
358
371
  static bool lessThanVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs)
359
372
  {
360
- if (lhs.size() != rhs.size()) return lhs.size() < rhs.size();
361
373
  for (const auto &item: lhs)
362
374
  {
363
375
  auto it = rhs.find(item.first);
364
- // lhs > rhs if SVFVar not exists in rhs
365
- if (it == rhs.end())
366
- return false;
367
376
  // judge from expr id
368
377
  if (!item.second.equals(it->second))
369
378
  {
@@ -377,7 +377,7 @@ public:
377
377
  }
378
378
  else
379
379
  {
380
- this->_lb = !lb().leq(other.lb()) ? minus_infinity() : this->lb();
380
+ this->_lb = !lb().geq(other.lb()) ? minus_infinity() : this->lb();
381
381
  this->_ub = !ub().geq(other.ub()) ? plus_infinity() : this->ub();
382
382
  }
383
383
  }
@@ -395,8 +395,8 @@ public:
395
395
  }
396
396
  else
397
397
  {
398
- this->_lb = is_infinite(this->_lb) ? other._lb : this->_lb;
399
- this->_ub = is_infinite(this->_ub) ? other._ub : this->_ub;
398
+ this->_lb = is_infinite(this->lb()) ? other._lb : this->_lb;
399
+ this->_ub = is_infinite(this->ub()) ? other._ub : this->_ub;
400
400
  }
401
401
  }
402
402
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.1385",
3
+ "version": "1.0.1387",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {