svf-lib 1.0.1609 → 1.0.1611

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.
@@ -29,6 +29,7 @@
29
29
 
30
30
  #ifndef SVF_BOUNDEDZ3EXPR_H
31
31
  #define SVF_BOUNDEDZ3EXPR_H
32
+ #define MaxBvLen 64
32
33
 
33
34
  #include "Util/Z3Expr.h"
34
35
 
@@ -248,20 +249,17 @@ public:
248
249
 
249
250
  friend BoundedZ3Expr operator^(const BoundedZ3Expr &lhs, const BoundedZ3Expr &rhs)
250
251
  {
251
- const auto &maxBvLen = std::max(lhs.bvLen(), rhs.bvLen());
252
- return bv2int(int2bv(maxBvLen, lhs.getExpr()) ^ int2bv(maxBvLen, rhs.getExpr()), true);
252
+ return bv2int(int2bv(MaxBvLen, lhs.getExpr()) ^ int2bv(MaxBvLen, rhs.getExpr()), true);
253
253
  }
254
254
 
255
255
  friend BoundedZ3Expr operator&(const BoundedZ3Expr &lhs, const BoundedZ3Expr &rhs)
256
256
  {
257
- const auto &maxBvLen = std::max(lhs.bvLen(), rhs.bvLen());
258
- return bv2int(int2bv(maxBvLen, lhs.getExpr()) & int2bv(maxBvLen, rhs.getExpr()), true);
257
+ return bv2int(int2bv(MaxBvLen, lhs.getExpr()) & int2bv(MaxBvLen, rhs.getExpr()), true);
259
258
  }
260
259
 
261
260
  friend BoundedZ3Expr operator|(const BoundedZ3Expr &lhs, const BoundedZ3Expr &rhs)
262
261
  {
263
- const auto &maxBvLen = std::max(lhs.bvLen(), rhs.bvLen());
264
- return bv2int(int2bv(maxBvLen, lhs.getExpr()) | int2bv(maxBvLen, rhs.getExpr()), true);
262
+ return bv2int(int2bv(MaxBvLen, lhs.getExpr()) | int2bv(MaxBvLen, rhs.getExpr()), true);
265
263
  }
266
264
 
267
265
  friend BoundedZ3Expr ashr(const BoundedZ3Expr &lhs, const BoundedZ3Expr &rhs)
@@ -274,8 +272,7 @@ public:
274
272
  return ite(lhs.getExpr() >= 0, BoundedZ3Expr(0), BoundedZ3Expr(-1));
275
273
  else
276
274
  {
277
- const auto &maxBvLen = std::max(lhs.bvLen(), rhs.bvLen());
278
- return bv2int(ashr(int2bv(maxBvLen, lhs.getExpr()), int2bv(maxBvLen, rhs.getExpr())), true);
275
+ return bv2int(ashr(int2bv(MaxBvLen, lhs.getExpr()), int2bv(MaxBvLen, rhs.getExpr())), true);
279
276
  }
280
277
  }
281
278
 
@@ -289,15 +286,13 @@ public:
289
286
  return ite(lhs.getExpr() >= 0, plus_infinity(), minus_infinity());
290
287
  else
291
288
  {
292
- const auto &maxBvLen = std::max(lhs.bvLen(), rhs.bvLen());
293
- return bv2int(shl(int2bv(maxBvLen, lhs.getExpr()), int2bv(maxBvLen, rhs.getExpr())), true);
289
+ return bv2int(shl(int2bv(MaxBvLen, lhs.getExpr()), int2bv(MaxBvLen, rhs.getExpr())), true);
294
290
  }
295
291
  }
296
292
 
297
293
  friend BoundedZ3Expr lshr(const BoundedZ3Expr &lhs, const BoundedZ3Expr &rhs)
298
294
  {
299
- const auto &maxBvLen = std::max(lhs.bvLen(), rhs.bvLen());
300
- return bv2int(lshr(int2bv(maxBvLen, lhs.getExpr()), int2bv(maxBvLen, rhs.getExpr())), true);
295
+ return bv2int(lshr(int2bv(MaxBvLen, lhs.getExpr()), int2bv(MaxBvLen, rhs.getExpr())), true);
301
296
  }
302
297
 
303
298
  friend BoundedZ3Expr int2bv(u32_t n, const BoundedZ3Expr &e)
@@ -394,3 +389,4 @@ struct std::hash<SVF::BoundedZ3Expr>
394
389
  }
395
390
  };
396
391
  #endif //SVF_BOUNDEDZ3EXPR_H
392
+
@@ -373,6 +373,18 @@ public:
373
373
  bugSet.insert(newBug);
374
374
  break;
375
375
  }
376
+ case GenericBug::FULLNULLPTRDEREFERENCE:
377
+ {
378
+ newBug = new FullNullPtrDereferenceBug(eventStack);
379
+ bugSet.insert(newBug);
380
+ break;
381
+ }
382
+ case GenericBug::PARTIALNULLPTRDEREFERENCE:
383
+ {
384
+ newBug = new PartialNullPtrDereferenceBug(eventStack);
385
+ bugSet.insert(newBug);
386
+ break;
387
+ }
376
388
  default:
377
389
  {
378
390
  assert(false && "Abstract Execution does NOT hava his bug type!");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.1609",
3
+ "version": "1.0.1611",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {