svf-lib 1.0.830 → 1.0.834
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.
- package/SVF-linux/Release-build/lib/libSvf.a +0 -0
- package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
- package/SVF-osx/Release-build/lib/libSvf.a +0 -0
- package/SVF-osx/include/MemoryModel/SVFIR.h +4 -4
- package/SVF-osx/include/MemoryModel/SVFStatements.h +24 -14
- package/SVF-osx/include/SVF-FE/SVFIRBuilder.h +8 -8
- package/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -645,9 +645,9 @@ private:
|
|
|
645
645
|
/// Add Store edge
|
|
646
646
|
StoreStmt* addStoreStmt(NodeID src, NodeID dst, const IntraICFGNode* val);
|
|
647
647
|
/// Add Call edge
|
|
648
|
-
CallPE* addCallPE(NodeID src, NodeID dst, const CallICFGNode* cs);
|
|
648
|
+
CallPE* addCallPE(NodeID src, NodeID dst, const CallICFGNode* cs, const FunEntryICFGNode* entry);
|
|
649
649
|
/// Add Return edge
|
|
650
|
-
RetPE* addRetPE(NodeID src, NodeID dst, const CallICFGNode* cs);
|
|
650
|
+
RetPE* addRetPE(NodeID src, NodeID dst, const CallICFGNode* cs, const FunExitICFGNode* exit);
|
|
651
651
|
/// Add Gep edge
|
|
652
652
|
GepStmt* addGepStmt(NodeID src, NodeID dst, const LocationSet& ls, bool constGep);
|
|
653
653
|
/// Add Offset(Gep) edge
|
|
@@ -655,9 +655,9 @@ private:
|
|
|
655
655
|
/// Add Variant(Gep) edge
|
|
656
656
|
GepStmt* addVariantGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
|
|
657
657
|
/// Add Thread fork edge for parameter passing
|
|
658
|
-
TDForkPE* addThreadForkPE(NodeID src, NodeID dst, const CallICFGNode* cs);
|
|
658
|
+
TDForkPE* addThreadForkPE(NodeID src, NodeID dst, const CallICFGNode* cs, const FunEntryICFGNode* entry);
|
|
659
659
|
/// Add Thread join edge for parameter passing
|
|
660
|
-
TDJoinPE* addThreadJoinPE(NodeID src, NodeID dst, const CallICFGNode* cs);
|
|
660
|
+
TDJoinPE* addThreadJoinPE(NodeID src, NodeID dst, const CallICFGNode* cs, const FunExitICFGNode* exit);
|
|
661
661
|
//@}
|
|
662
662
|
|
|
663
663
|
/// Set a pointer points-to black hole (e.g. int2ptr)
|
|
@@ -481,7 +481,8 @@ private:
|
|
|
481
481
|
CallPE(const CallPE &); ///< place holder
|
|
482
482
|
void operator=(const CallPE &); ///< place holder
|
|
483
483
|
|
|
484
|
-
const CallICFGNode*
|
|
484
|
+
const CallICFGNode* call; /// the callsite statement calling from
|
|
485
|
+
const FunEntryICFGNode* entry; /// the function exit statement calling to
|
|
485
486
|
public:
|
|
486
487
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
487
488
|
//@{
|
|
@@ -502,8 +503,8 @@ public:
|
|
|
502
503
|
//@}
|
|
503
504
|
|
|
504
505
|
/// constructor
|
|
505
|
-
CallPE(SVFVar* s, SVFVar* d, const CallICFGNode* i, GEdgeKind k = SVFStmt::Call) :
|
|
506
|
-
AssignStmt(s,d,makeEdgeFlagWithCallInst(k,i)),
|
|
506
|
+
CallPE(SVFVar* s, SVFVar* d, const CallICFGNode* i, const FunEntryICFGNode* e, GEdgeKind k = SVFStmt::Call) :
|
|
507
|
+
AssignStmt(s,d,makeEdgeFlagWithCallInst(k,i)), call(i), entry(e)
|
|
507
508
|
{
|
|
508
509
|
}
|
|
509
510
|
|
|
@@ -511,11 +512,15 @@ public:
|
|
|
511
512
|
//@{
|
|
512
513
|
inline const CallICFGNode* getCallInst() const
|
|
513
514
|
{
|
|
514
|
-
return
|
|
515
|
+
return call;
|
|
515
516
|
}
|
|
516
517
|
inline const CallICFGNode* getCallSite() const
|
|
517
518
|
{
|
|
518
|
-
return
|
|
519
|
+
return call;
|
|
520
|
+
}
|
|
521
|
+
inline const FunEntryICFGNode* getFunEntryICFGNode() const
|
|
522
|
+
{
|
|
523
|
+
return entry;
|
|
519
524
|
}
|
|
520
525
|
//@}
|
|
521
526
|
|
|
@@ -533,7 +538,8 @@ private:
|
|
|
533
538
|
RetPE(const RetPE &); ///< place holder
|
|
534
539
|
void operator=(const RetPE &); ///< place holder
|
|
535
540
|
|
|
536
|
-
const CallICFGNode*
|
|
541
|
+
const CallICFGNode* call; /// the callsite statement returning to
|
|
542
|
+
const FunExitICFGNode* exit; /// the function exit statement returned from
|
|
537
543
|
public:
|
|
538
544
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
539
545
|
//@{
|
|
@@ -554,8 +560,8 @@ public:
|
|
|
554
560
|
//@}
|
|
555
561
|
|
|
556
562
|
/// constructor
|
|
557
|
-
RetPE(SVFVar* s, SVFVar* d, const CallICFGNode* i, GEdgeKind k = SVFStmt::Ret) :
|
|
558
|
-
AssignStmt(s,d,makeEdgeFlagWithCallInst(k,i)),
|
|
563
|
+
RetPE(SVFVar* s, SVFVar* d, const CallICFGNode* i, const FunExitICFGNode* e, GEdgeKind k = SVFStmt::Ret) :
|
|
564
|
+
AssignStmt(s,d,makeEdgeFlagWithCallInst(k,i)), call(i), exit(e)
|
|
559
565
|
{
|
|
560
566
|
}
|
|
561
567
|
|
|
@@ -563,11 +569,15 @@ public:
|
|
|
563
569
|
//@{
|
|
564
570
|
inline const CallICFGNode* getCallInst() const
|
|
565
571
|
{
|
|
566
|
-
return
|
|
572
|
+
return call;
|
|
567
573
|
}
|
|
568
574
|
inline const CallICFGNode* getCallSite() const
|
|
569
575
|
{
|
|
570
|
-
return
|
|
576
|
+
return call;
|
|
577
|
+
}
|
|
578
|
+
inline const FunExitICFGNode* getFunExitICFGNode() const
|
|
579
|
+
{
|
|
580
|
+
return exit;
|
|
571
581
|
}
|
|
572
582
|
//@}
|
|
573
583
|
|
|
@@ -1022,8 +1032,8 @@ public:
|
|
|
1022
1032
|
//@}
|
|
1023
1033
|
|
|
1024
1034
|
/// constructor
|
|
1025
|
-
TDForkPE(SVFVar* s, SVFVar* d, const CallICFGNode* i) :
|
|
1026
|
-
CallPE(s,d,i,SVFStmt::ThreadFork)
|
|
1035
|
+
TDForkPE(SVFVar* s, SVFVar* d, const CallICFGNode* i, const FunEntryICFGNode* entry) :
|
|
1036
|
+
CallPE(s,d,i,entry,SVFStmt::ThreadFork)
|
|
1027
1037
|
{
|
|
1028
1038
|
}
|
|
1029
1039
|
|
|
@@ -1060,8 +1070,8 @@ public:
|
|
|
1060
1070
|
//@}
|
|
1061
1071
|
|
|
1062
1072
|
/// Constructor
|
|
1063
|
-
TDJoinPE(SVFVar* s, SVFVar* d, const CallICFGNode* i) :
|
|
1064
|
-
RetPE(s,d,i,SVFStmt::ThreadJoin)
|
|
1073
|
+
TDJoinPE(SVFVar* s, SVFVar* d, const CallICFGNode* i, const FunExitICFGNode* e) :
|
|
1074
|
+
RetPE(s,d,i,e, SVFStmt::ThreadJoin)
|
|
1065
1075
|
{
|
|
1066
1076
|
}
|
|
1067
1077
|
|
|
@@ -366,16 +366,16 @@ public:
|
|
|
366
366
|
return edge;
|
|
367
367
|
}
|
|
368
368
|
/// Add Call edge
|
|
369
|
-
inline CallPE* addCallEdge(NodeID src, NodeID dst, const CallICFGNode* cs)
|
|
369
|
+
inline CallPE* addCallEdge(NodeID src, NodeID dst, const CallICFGNode* cs, const FunEntryICFGNode* entry)
|
|
370
370
|
{
|
|
371
|
-
CallPE *edge = pag->addCallPE(src, dst, cs);
|
|
371
|
+
CallPE *edge = pag->addCallPE(src, dst, cs, entry);
|
|
372
372
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
373
373
|
return edge;
|
|
374
374
|
}
|
|
375
375
|
/// Add Return edge
|
|
376
|
-
inline RetPE* addRetEdge(NodeID src, NodeID dst, const CallICFGNode* cs)
|
|
376
|
+
inline RetPE* addRetEdge(NodeID src, NodeID dst, const CallICFGNode* cs, const FunExitICFGNode* exit)
|
|
377
377
|
{
|
|
378
|
-
RetPE *edge = pag->addRetPE(src, dst, cs);
|
|
378
|
+
RetPE *edge = pag->addRetPE(src, dst, cs, exit);
|
|
379
379
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
380
380
|
return edge;
|
|
381
381
|
}
|
|
@@ -401,16 +401,16 @@ public:
|
|
|
401
401
|
return edge;
|
|
402
402
|
}
|
|
403
403
|
/// Add Thread fork edge for parameter passing
|
|
404
|
-
inline TDForkPE* addThreadForkEdge(NodeID src, NodeID dst, const CallICFGNode* cs)
|
|
404
|
+
inline TDForkPE* addThreadForkEdge(NodeID src, NodeID dst, const CallICFGNode* cs, const FunEntryICFGNode* entry)
|
|
405
405
|
{
|
|
406
|
-
TDForkPE *edge = pag->addThreadForkPE(src, dst, cs);
|
|
406
|
+
TDForkPE *edge = pag->addThreadForkPE(src, dst, cs, entry);
|
|
407
407
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
408
408
|
return edge;
|
|
409
409
|
}
|
|
410
410
|
/// Add Thread join edge for parameter passing
|
|
411
|
-
inline TDJoinPE* addThreadJoinEdge(NodeID src, NodeID dst, const CallICFGNode* cs)
|
|
411
|
+
inline TDJoinPE* addThreadJoinEdge(NodeID src, NodeID dst, const CallICFGNode* cs, const FunExitICFGNode* exit)
|
|
412
412
|
{
|
|
413
|
-
TDJoinPE *edge = pag->addThreadJoinPE(src, dst, cs);
|
|
413
|
+
TDJoinPE *edge = pag->addThreadJoinPE(src, dst, cs, exit);
|
|
414
414
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
415
415
|
return edge;
|
|
416
416
|
}
|