svf-lib 1.0.1376 → 1.0.1377
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-osx/Release-build/svf-llvm/libSvfLLVM.a +0 -0
- package/package.json +1 -1
- package/SVF-linux/svf/include/include/AbstractExecution/AbstractValue.h +0 -79
- package/SVF-linux/svf/include/include/AbstractExecution/AddressValue.h +0 -210
- package/SVF-linux/svf/include/include/AbstractExecution/ExeState.h +0 -223
- package/SVF-linux/svf/include/include/AbstractExecution/IntervalExeState.h +0 -425
- package/SVF-linux/svf/include/include/AbstractExecution/IntervalValue.h +0 -868
- package/SVF-linux/svf/include/include/AbstractExecution/NumericLiteral.h +0 -406
- package/SVF-linux/svf/include/include/AbstractExecution/RelExeState.h +0 -225
- package/SVF-linux/svf/include/include/AbstractExecution/RelationSolver.h +0 -68
- package/SVF-linux/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +0 -186
- package/SVF-linux/svf/include/include/AbstractExecution/WTO.h +0 -845
- package/SVF-linux/svf/include/include/CFL/CFGNormalizer.h +0 -84
- package/SVF-linux/svf/include/include/CFL/CFLAlias.h +0 -176
- package/SVF-linux/svf/include/include/CFL/CFLBase.h +0 -115
- package/SVF-linux/svf/include/include/CFL/CFLData.h +0 -316
- package/SVF-linux/svf/include/include/CFL/CFLDataBuilder.h +0 -91
- package/SVF-linux/svf/include/include/CFL/CFLGramGraphChecker.h +0 -74
- package/SVF-linux/svf/include/include/CFL/CFLGrammar.h +0 -468
- package/SVF-linux/svf/include/include/CFL/CFLGrammar.txt +0 -15
- package/SVF-linux/svf/include/include/CFL/CFLGraphBuilder.h +0 -193
- package/SVF-linux/svf/include/include/CFL/CFLSolver.h +0 -136
- package/SVF-linux/svf/include/include/CFL/CFLStat.h +0 -67
- package/SVF-linux/svf/include/include/CFL/CFLVF.h +0 -65
- package/SVF-linux/svf/include/include/CFL/GrammarBuilder.h +0 -100
- package/SVF-linux/svf/include/include/CFL/PEGGrammar.txt +0 -11
- package/SVF-linux/svf/include/include/CFL/VFG.txt +0 -7
- package/SVF-linux/svf/include/include/DDA/ContextDDA.h +0 -230
- package/SVF-linux/svf/include/include/DDA/DDAClient.h +0 -168
- package/SVF-linux/svf/include/include/DDA/DDAPass.h +0 -99
- package/SVF-linux/svf/include/include/DDA/DDAStat.h +0 -138
- package/SVF-linux/svf/include/include/DDA/DDAVFSolver.h +0 -789
- package/SVF-linux/svf/include/include/DDA/FlowDDA.h +0 -178
- package/SVF-linux/svf/include/include/FastCluster/LICENSE.TXT +0 -13
- package/SVF-linux/svf/include/include/FastCluster/fastcluster.h +0 -80
- package/SVF-linux/svf/include/include/Graphs/CFLGraph.h +0 -215
- package/SVF-linux/svf/include/include/Graphs/CHG.h +0 -351
- package/SVF-linux/svf/include/include/Graphs/ConsG.h +0 -408
- package/SVF-linux/svf/include/include/Graphs/ConsGEdge.h +0 -353
- package/SVF-linux/svf/include/include/Graphs/ConsGNode.h +0 -391
- package/SVF-linux/svf/include/include/Graphs/DOTGraphTraits.h +0 -188
- package/SVF-linux/svf/include/include/Graphs/GenericGraph.h +0 -620
- package/SVF-linux/svf/include/include/Graphs/GraphPrinter.h +0 -111
- package/SVF-linux/svf/include/include/Graphs/GraphTraits.h +0 -150
- package/SVF-linux/svf/include/include/Graphs/GraphWriter.h +0 -380
- package/SVF-linux/svf/include/include/Graphs/ICFG.h +0 -331
- package/SVF-linux/svf/include/include/Graphs/ICFGEdge.h +0 -264
- package/SVF-linux/svf/include/include/Graphs/ICFGNode.h +0 -523
- package/SVF-linux/svf/include/include/Graphs/ICFGStat.h +0 -164
- package/SVF-linux/svf/include/include/Graphs/IRGraph.h +0 -243
- package/SVF-linux/svf/include/include/Graphs/PTACallGraph.h +0 -471
- package/SVF-linux/svf/include/include/Graphs/SVFG.h +0 -490
- package/SVF-linux/svf/include/include/Graphs/SVFGEdge.h +0 -237
- package/SVF-linux/svf/include/include/Graphs/SVFGNode.h +0 -513
- package/SVF-linux/svf/include/include/Graphs/SVFGOPT.h +0 -362
- package/SVF-linux/svf/include/include/Graphs/SVFGStat.h +0 -273
- package/SVF-linux/svf/include/include/Graphs/ThreadCallGraph.h +0 -422
- package/SVF-linux/svf/include/include/Graphs/VFG.h +0 -664
- package/SVF-linux/svf/include/include/Graphs/VFGEdge.h +0 -295
- package/SVF-linux/svf/include/include/Graphs/VFGNode.h +0 -1197
- package/SVF-linux/svf/include/include/MSSA/MSSAMuChi.h +0 -722
- package/SVF-linux/svf/include/include/MSSA/MemPartition.h +0 -169
- package/SVF-linux/svf/include/include/MSSA/MemRegion.h +0 -491
- package/SVF-linux/svf/include/include/MSSA/MemSSA.h +0 -452
- package/SVF-linux/svf/include/include/MSSA/SVFGBuilder.h +0 -98
- package/SVF-linux/svf/include/include/MTA/FSMPTA.h +0 -270
- package/SVF-linux/svf/include/include/MTA/LockAnalysis.h +0 -517
- package/SVF-linux/svf/include/include/MTA/MHP.h +0 -565
- package/SVF-linux/svf/include/include/MTA/MTA.h +0 -101
- package/SVF-linux/svf/include/include/MTA/MTAResultValidator.h +0 -448
- package/SVF-linux/svf/include/include/MTA/MTAStat.h +0 -74
- package/SVF-linux/svf/include/include/MTA/PCG.h +0 -229
- package/SVF-linux/svf/include/include/MTA/TCT.h +0 -599
- package/SVF-linux/svf/include/include/MemoryModel/AbstractPointsToDS.h +0 -316
- package/SVF-linux/svf/include/include/MemoryModel/ConditionalPT.h +0 -878
- package/SVF-linux/svf/include/include/MemoryModel/LocationSet.h +0 -148
- package/SVF-linux/svf/include/include/MemoryModel/MutablePointsToDS.h +0 -1025
- package/SVF-linux/svf/include/include/MemoryModel/PersistentPointsToCache.h +0 -463
- package/SVF-linux/svf/include/include/MemoryModel/PersistentPointsToDS.h +0 -955
- package/SVF-linux/svf/include/include/MemoryModel/PointerAnalysis.h +0 -452
- package/SVF-linux/svf/include/include/MemoryModel/PointerAnalysisImpl.h +0 -590
- package/SVF-linux/svf/include/include/MemoryModel/PointsTo.h +0 -255
- package/SVF-linux/svf/include/include/MemoryModel/SVFLoop.h +0 -164
- package/SVF-linux/svf/include/include/SABER/DoubleFreeChecker.h +0 -76
- package/SVF-linux/svf/include/include/SABER/FileChecker.h +0 -82
- package/SVF-linux/svf/include/include/SABER/LeakChecker.h +0 -124
- package/SVF-linux/svf/include/include/SABER/ProgSlice.h +0 -313
- package/SVF-linux/svf/include/include/SABER/SaberCheckerAPI.h +0 -166
- package/SVF-linux/svf/include/include/SABER/SaberCondAllocator.h +0 -310
- package/SVF-linux/svf/include/include/SABER/SaberSVFGBuilder.h +0 -104
- package/SVF-linux/svf/include/include/SABER/SrcSnkDDA.h +0 -321
- package/SVF-linux/svf/include/include/SABER/SrcSnkSolver.h +0 -186
- package/SVF-linux/svf/include/include/SVFIR/PAGBuilderFromFile.h +0 -80
- package/SVF-linux/svf/include/include/SVFIR/SVFIR.h +0 -659
- package/SVF-linux/svf/include/include/SVFIR/SVFModule.h +0 -233
- package/SVF-linux/svf/include/include/SVFIR/SVFStatements.h +0 -1136
- package/SVF-linux/svf/include/include/SVFIR/SVFType.h +0 -527
- package/SVF-linux/svf/include/include/SVFIR/SVFValue.h +0 -1120
- package/SVF-linux/svf/include/include/SVFIR/SVFVariables.h +0 -721
- package/SVF-linux/svf/include/include/SVFIR/SymbolTableInfo.h +0 -597
- package/SVF-linux/svf/include/include/Util/Annotator.h +0 -180
- package/SVF-linux/svf/include/include/Util/BitVector.h +0 -55
- package/SVF-linux/svf/include/include/Util/CallGraphBuilder.h +0 -74
- package/SVF-linux/svf/include/include/Util/Casting.h +0 -426
- package/SVF-linux/svf/include/include/Util/CommandLine.h +0 -530
- package/SVF-linux/svf/include/include/Util/CoreBitVector.h +0 -214
- package/SVF-linux/svf/include/include/Util/CppUtil.h +0 -81
- package/SVF-linux/svf/include/include/Util/CxtStmt.h +0 -501
- package/SVF-linux/svf/include/include/Util/DPItem.h +0 -618
- package/SVF-linux/svf/include/include/Util/ExtAPI.h +0 -339
- package/SVF-linux/svf/include/include/Util/ExtAPI.json +0 -5707
- package/SVF-linux/svf/include/include/Util/GraphReachSolver.h +0 -186
- package/SVF-linux/svf/include/include/Util/NodeIDAllocator.h +0 -194
- package/SVF-linux/svf/include/include/Util/Options.h +0 -266
- package/SVF-linux/svf/include/include/Util/PTAStat.h +0 -65
- package/SVF-linux/svf/include/include/Util/SCC.h +0 -354
- package/SVF-linux/svf/include/include/Util/SVFStat.h +0 -100
- package/SVF-linux/svf/include/include/Util/SVFUtil.h +0 -660
- package/SVF-linux/svf/include/include/Util/SparseBitVector.h +0 -1202
- package/SVF-linux/svf/include/include/Util/ThreadAPI.h +0 -330
- package/SVF-linux/svf/include/include/Util/WorkList.h +0 -317
- package/SVF-linux/svf/include/include/Util/Z3Expr.h +0 -318
- package/SVF-linux/svf/include/include/Util/cJSON.h +0 -300
- package/SVF-linux/svf/include/include/Util/iterator.h +0 -407
- package/SVF-linux/svf/include/include/Util/iterator_range.h +0 -76
- package/SVF-linux/svf/include/include/WPA/Andersen.h +0 -416
- package/SVF-linux/svf/include/include/WPA/AndersenPWC.h +0 -160
- package/SVF-linux/svf/include/include/WPA/CSC.h +0 -95
- package/SVF-linux/svf/include/include/WPA/FlowSensitive.h +0 -317
- package/SVF-linux/svf/include/include/WPA/Steensgaard.h +0 -126
- package/SVF-linux/svf/include/include/WPA/TypeAnalysis.h +0 -83
- package/SVF-linux/svf/include/include/WPA/VersionedFlowSensitive.h +0 -287
- package/SVF-linux/svf/include/include/WPA/WPAFSSolver.h +0 -254
- package/SVF-linux/svf/include/include/WPA/WPAPass.h +0 -119
- package/SVF-linux/svf/include/include/WPA/WPASolver.h +0 -205
- package/SVF-linux/svf/include/include/WPA/WPAStat.h +0 -222
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +0 -250
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +0 -94
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +0 -73
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +0 -484
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +0 -183
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +0 -106
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +0 -61
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +0 -360
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +0 -466
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +0 -417
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +0 -110
- package/SVF-osx/svf/include/include/AbstractExecution/AbstractValue.h +0 -79
- package/SVF-osx/svf/include/include/AbstractExecution/AddressValue.h +0 -210
- package/SVF-osx/svf/include/include/AbstractExecution/ExeState.h +0 -223
- package/SVF-osx/svf/include/include/AbstractExecution/IntervalExeState.h +0 -425
- package/SVF-osx/svf/include/include/AbstractExecution/IntervalValue.h +0 -868
- package/SVF-osx/svf/include/include/AbstractExecution/NumericLiteral.h +0 -406
- package/SVF-osx/svf/include/include/AbstractExecution/RelExeState.h +0 -225
- package/SVF-osx/svf/include/include/AbstractExecution/RelationSolver.h +0 -68
- package/SVF-osx/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +0 -186
- package/SVF-osx/svf/include/include/AbstractExecution/WTO.h +0 -845
- package/SVF-osx/svf/include/include/CFL/CFGNormalizer.h +0 -84
- package/SVF-osx/svf/include/include/CFL/CFLAlias.h +0 -176
- package/SVF-osx/svf/include/include/CFL/CFLBase.h +0 -115
- package/SVF-osx/svf/include/include/CFL/CFLData.h +0 -316
- package/SVF-osx/svf/include/include/CFL/CFLDataBuilder.h +0 -91
- package/SVF-osx/svf/include/include/CFL/CFLGramGraphChecker.h +0 -74
- package/SVF-osx/svf/include/include/CFL/CFLGrammar.h +0 -468
- package/SVF-osx/svf/include/include/CFL/CFLGrammar.txt +0 -15
- package/SVF-osx/svf/include/include/CFL/CFLGraphBuilder.h +0 -193
- package/SVF-osx/svf/include/include/CFL/CFLSolver.h +0 -136
- package/SVF-osx/svf/include/include/CFL/CFLStat.h +0 -67
- package/SVF-osx/svf/include/include/CFL/CFLVF.h +0 -65
- package/SVF-osx/svf/include/include/CFL/GrammarBuilder.h +0 -100
- package/SVF-osx/svf/include/include/CFL/PEGGrammar.txt +0 -11
- package/SVF-osx/svf/include/include/CFL/VFG.txt +0 -7
- package/SVF-osx/svf/include/include/DDA/ContextDDA.h +0 -230
- package/SVF-osx/svf/include/include/DDA/DDAClient.h +0 -168
- package/SVF-osx/svf/include/include/DDA/DDAPass.h +0 -99
- package/SVF-osx/svf/include/include/DDA/DDAStat.h +0 -138
- package/SVF-osx/svf/include/include/DDA/DDAVFSolver.h +0 -789
- package/SVF-osx/svf/include/include/DDA/FlowDDA.h +0 -178
- package/SVF-osx/svf/include/include/FastCluster/LICENSE.TXT +0 -13
- package/SVF-osx/svf/include/include/FastCluster/fastcluster.h +0 -80
- package/SVF-osx/svf/include/include/Graphs/CFLGraph.h +0 -215
- package/SVF-osx/svf/include/include/Graphs/CHG.h +0 -351
- package/SVF-osx/svf/include/include/Graphs/ConsG.h +0 -408
- package/SVF-osx/svf/include/include/Graphs/ConsGEdge.h +0 -353
- package/SVF-osx/svf/include/include/Graphs/ConsGNode.h +0 -391
- package/SVF-osx/svf/include/include/Graphs/DOTGraphTraits.h +0 -188
- package/SVF-osx/svf/include/include/Graphs/GenericGraph.h +0 -620
- package/SVF-osx/svf/include/include/Graphs/GraphPrinter.h +0 -111
- package/SVF-osx/svf/include/include/Graphs/GraphTraits.h +0 -150
- package/SVF-osx/svf/include/include/Graphs/GraphWriter.h +0 -380
- package/SVF-osx/svf/include/include/Graphs/ICFG.h +0 -331
- package/SVF-osx/svf/include/include/Graphs/ICFGEdge.h +0 -264
- package/SVF-osx/svf/include/include/Graphs/ICFGNode.h +0 -523
- package/SVF-osx/svf/include/include/Graphs/ICFGStat.h +0 -164
- package/SVF-osx/svf/include/include/Graphs/IRGraph.h +0 -243
- package/SVF-osx/svf/include/include/Graphs/PTACallGraph.h +0 -471
- package/SVF-osx/svf/include/include/Graphs/SVFG.h +0 -490
- package/SVF-osx/svf/include/include/Graphs/SVFGEdge.h +0 -237
- package/SVF-osx/svf/include/include/Graphs/SVFGNode.h +0 -513
- package/SVF-osx/svf/include/include/Graphs/SVFGOPT.h +0 -362
- package/SVF-osx/svf/include/include/Graphs/SVFGStat.h +0 -273
- package/SVF-osx/svf/include/include/Graphs/ThreadCallGraph.h +0 -422
- package/SVF-osx/svf/include/include/Graphs/VFG.h +0 -664
- package/SVF-osx/svf/include/include/Graphs/VFGEdge.h +0 -295
- package/SVF-osx/svf/include/include/Graphs/VFGNode.h +0 -1197
- package/SVF-osx/svf/include/include/MSSA/MSSAMuChi.h +0 -722
- package/SVF-osx/svf/include/include/MSSA/MemPartition.h +0 -169
- package/SVF-osx/svf/include/include/MSSA/MemRegion.h +0 -491
- package/SVF-osx/svf/include/include/MSSA/MemSSA.h +0 -452
- package/SVF-osx/svf/include/include/MSSA/SVFGBuilder.h +0 -98
- package/SVF-osx/svf/include/include/MTA/FSMPTA.h +0 -270
- package/SVF-osx/svf/include/include/MTA/LockAnalysis.h +0 -517
- package/SVF-osx/svf/include/include/MTA/MHP.h +0 -565
- package/SVF-osx/svf/include/include/MTA/MTA.h +0 -101
- package/SVF-osx/svf/include/include/MTA/MTAResultValidator.h +0 -448
- package/SVF-osx/svf/include/include/MTA/MTAStat.h +0 -74
- package/SVF-osx/svf/include/include/MTA/PCG.h +0 -229
- package/SVF-osx/svf/include/include/MTA/TCT.h +0 -599
- package/SVF-osx/svf/include/include/MemoryModel/AbstractPointsToDS.h +0 -316
- package/SVF-osx/svf/include/include/MemoryModel/ConditionalPT.h +0 -878
- package/SVF-osx/svf/include/include/MemoryModel/LocationSet.h +0 -148
- package/SVF-osx/svf/include/include/MemoryModel/MutablePointsToDS.h +0 -1025
- package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToCache.h +0 -463
- package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToDS.h +0 -955
- package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysis.h +0 -452
- package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysisImpl.h +0 -590
- package/SVF-osx/svf/include/include/MemoryModel/PointsTo.h +0 -255
- package/SVF-osx/svf/include/include/MemoryModel/SVFLoop.h +0 -164
- package/SVF-osx/svf/include/include/SABER/DoubleFreeChecker.h +0 -76
- package/SVF-osx/svf/include/include/SABER/FileChecker.h +0 -82
- package/SVF-osx/svf/include/include/SABER/LeakChecker.h +0 -124
- package/SVF-osx/svf/include/include/SABER/ProgSlice.h +0 -313
- package/SVF-osx/svf/include/include/SABER/SaberCheckerAPI.h +0 -166
- package/SVF-osx/svf/include/include/SABER/SaberCondAllocator.h +0 -310
- package/SVF-osx/svf/include/include/SABER/SaberSVFGBuilder.h +0 -104
- package/SVF-osx/svf/include/include/SABER/SrcSnkDDA.h +0 -321
- package/SVF-osx/svf/include/include/SABER/SrcSnkSolver.h +0 -186
- package/SVF-osx/svf/include/include/SVFIR/PAGBuilderFromFile.h +0 -80
- package/SVF-osx/svf/include/include/SVFIR/SVFIR.h +0 -659
- package/SVF-osx/svf/include/include/SVFIR/SVFModule.h +0 -233
- package/SVF-osx/svf/include/include/SVFIR/SVFStatements.h +0 -1136
- package/SVF-osx/svf/include/include/SVFIR/SVFType.h +0 -527
- package/SVF-osx/svf/include/include/SVFIR/SVFValue.h +0 -1120
- package/SVF-osx/svf/include/include/SVFIR/SVFVariables.h +0 -721
- package/SVF-osx/svf/include/include/SVFIR/SymbolTableInfo.h +0 -597
- package/SVF-osx/svf/include/include/Util/Annotator.h +0 -180
- package/SVF-osx/svf/include/include/Util/BitVector.h +0 -55
- package/SVF-osx/svf/include/include/Util/CallGraphBuilder.h +0 -74
- package/SVF-osx/svf/include/include/Util/Casting.h +0 -426
- package/SVF-osx/svf/include/include/Util/CommandLine.h +0 -530
- package/SVF-osx/svf/include/include/Util/CoreBitVector.h +0 -214
- package/SVF-osx/svf/include/include/Util/CppUtil.h +0 -81
- package/SVF-osx/svf/include/include/Util/CxtStmt.h +0 -501
- package/SVF-osx/svf/include/include/Util/DPItem.h +0 -618
- package/SVF-osx/svf/include/include/Util/ExtAPI.h +0 -339
- package/SVF-osx/svf/include/include/Util/ExtAPI.json +0 -5707
- package/SVF-osx/svf/include/include/Util/GraphReachSolver.h +0 -186
- package/SVF-osx/svf/include/include/Util/NodeIDAllocator.h +0 -194
- package/SVF-osx/svf/include/include/Util/Options.h +0 -266
- package/SVF-osx/svf/include/include/Util/PTAStat.h +0 -65
- package/SVF-osx/svf/include/include/Util/SCC.h +0 -354
- package/SVF-osx/svf/include/include/Util/SVFStat.h +0 -100
- package/SVF-osx/svf/include/include/Util/SVFUtil.h +0 -660
- package/SVF-osx/svf/include/include/Util/SparseBitVector.h +0 -1202
- package/SVF-osx/svf/include/include/Util/ThreadAPI.h +0 -330
- package/SVF-osx/svf/include/include/Util/WorkList.h +0 -317
- package/SVF-osx/svf/include/include/Util/Z3Expr.h +0 -318
- package/SVF-osx/svf/include/include/Util/cJSON.h +0 -300
- package/SVF-osx/svf/include/include/Util/iterator.h +0 -407
- package/SVF-osx/svf/include/include/Util/iterator_range.h +0 -76
- package/SVF-osx/svf/include/include/WPA/Andersen.h +0 -416
- package/SVF-osx/svf/include/include/WPA/AndersenPWC.h +0 -160
- package/SVF-osx/svf/include/include/WPA/CSC.h +0 -95
- package/SVF-osx/svf/include/include/WPA/FlowSensitive.h +0 -317
- package/SVF-osx/svf/include/include/WPA/Steensgaard.h +0 -126
- package/SVF-osx/svf/include/include/WPA/TypeAnalysis.h +0 -83
- package/SVF-osx/svf/include/include/WPA/VersionedFlowSensitive.h +0 -287
- package/SVF-osx/svf/include/include/WPA/WPAFSSolver.h +0 -254
- package/SVF-osx/svf/include/include/WPA/WPAPass.h +0 -119
- package/SVF-osx/svf/include/include/WPA/WPASolver.h +0 -205
- package/SVF-osx/svf/include/include/WPA/WPAStat.h +0 -222
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +0 -250
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +0 -94
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +0 -73
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +0 -484
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +0 -183
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +0 -106
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +0 -61
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +0 -360
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +0 -466
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +0 -417
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +0 -110
|
@@ -1,425 +0,0 @@
|
|
|
1
|
-
//===- IntervalExeState.h ----Interval Domain-------------------------//
|
|
2
|
-
//
|
|
3
|
-
// SVF: Static Value-Flow Analysis
|
|
4
|
-
//
|
|
5
|
-
// Copyright (C) <2013-2022> <Yulei Sui>
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
// This program is free software: you can redistribute it and/or modify
|
|
9
|
-
// it under the terms of the GNU General Public License as published by
|
|
10
|
-
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
// (at your option) any later version.
|
|
12
|
-
|
|
13
|
-
// This program is distributed in the hope that it will be useful,
|
|
14
|
-
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
-
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
-
// GNU General Public License for more details.
|
|
17
|
-
|
|
18
|
-
// You should have received a copy of the GNU General Public License
|
|
19
|
-
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
-
//
|
|
21
|
-
//===----------------------------------------------------------------------===//
|
|
22
|
-
/*
|
|
23
|
-
* IntervalExeState.h
|
|
24
|
-
*
|
|
25
|
-
* Created on: Jul 9, 2022
|
|
26
|
-
* Author: Xiao Cheng, Jiawei Wang
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
#ifndef Z3_EXAMPLE_INTERVAL_DOMAIN_H
|
|
31
|
-
#define Z3_EXAMPLE_INTERVAL_DOMAIN_H
|
|
32
|
-
|
|
33
|
-
#include "AbstractExecution/ExeState.h"
|
|
34
|
-
#include "AbstractExecution/IntervalValue.h"
|
|
35
|
-
#include "Util/Z3Expr.h"
|
|
36
|
-
|
|
37
|
-
#include <iomanip>
|
|
38
|
-
|
|
39
|
-
namespace SVF
|
|
40
|
-
{
|
|
41
|
-
|
|
42
|
-
class IntervalExeState : public ExeState
|
|
43
|
-
{
|
|
44
|
-
friend class SVFIR2ItvExeState;
|
|
45
|
-
|
|
46
|
-
public:
|
|
47
|
-
typedef Map<u32_t, IntervalValue> VarToValMap;
|
|
48
|
-
|
|
49
|
-
typedef VarToValMap LocToValMap;
|
|
50
|
-
|
|
51
|
-
static IntervalExeState globalES;
|
|
52
|
-
|
|
53
|
-
protected:
|
|
54
|
-
/// key: nodeID value: Domain Value
|
|
55
|
-
VarToValMap _varToItvVal;
|
|
56
|
-
/// key: nodeID value: Domain Value
|
|
57
|
-
LocToValMap _locToItvVal;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
public:
|
|
61
|
-
/// default constructor, default pc is true
|
|
62
|
-
IntervalExeState() : ExeState(ExeState::IntervalK) {}
|
|
63
|
-
|
|
64
|
-
/// set path constraints, val2val and loc2val map
|
|
65
|
-
IntervalExeState(VarToValMap &_varToValMap, LocToValMap &_locToValMap) : ExeState(ExeState::IntervalK),
|
|
66
|
-
_varToItvVal(_varToValMap),
|
|
67
|
-
_locToItvVal(_locToValMap) {}
|
|
68
|
-
|
|
69
|
-
/// copy constructor
|
|
70
|
-
IntervalExeState(const IntervalExeState &rhs) : ExeState(rhs), _varToItvVal(rhs.getVarToVal()),
|
|
71
|
-
_locToItvVal(rhs.getLocToVal())
|
|
72
|
-
{
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/// check two interval exe state are equal or not. _varToItvVal and _locToItvVal map should be equivalent
|
|
77
|
-
IntervalExeState &operator=(const IntervalExeState &rhs)
|
|
78
|
-
{
|
|
79
|
-
if (rhs != *this)
|
|
80
|
-
{
|
|
81
|
-
_varToItvVal = rhs._varToItvVal;
|
|
82
|
-
_locToItvVal = rhs._locToItvVal;
|
|
83
|
-
ExeState::operator=(rhs);
|
|
84
|
-
}
|
|
85
|
-
return *this;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/// move constructor
|
|
89
|
-
IntervalExeState(IntervalExeState &&rhs) : ExeState(std::move(rhs)),
|
|
90
|
-
_varToItvVal(std::move(rhs._varToItvVal)),
|
|
91
|
-
_locToItvVal(std::move(rhs._locToItvVal))
|
|
92
|
-
{
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/// operator= move constructor
|
|
97
|
-
IntervalExeState &operator=(IntervalExeState &&rhs)
|
|
98
|
-
{
|
|
99
|
-
if (&rhs != this)
|
|
100
|
-
{
|
|
101
|
-
_varToItvVal = std::move(rhs._varToItvVal);
|
|
102
|
-
_locToItvVal = std::move(rhs._locToItvVal);
|
|
103
|
-
ExeState::operator=(std::move(rhs));
|
|
104
|
-
}
|
|
105
|
-
return *this;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/// Set all value bottom
|
|
109
|
-
IntervalExeState bottom()
|
|
110
|
-
{
|
|
111
|
-
IntervalExeState inv = *this;
|
|
112
|
-
for (auto &item: inv._varToItvVal)
|
|
113
|
-
{
|
|
114
|
-
item.second.set_to_bottom();
|
|
115
|
-
}
|
|
116
|
-
return inv;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/// Set all value top
|
|
120
|
-
IntervalExeState top()
|
|
121
|
-
{
|
|
122
|
-
IntervalExeState inv = *this;
|
|
123
|
-
for (auto &item: inv._varToItvVal)
|
|
124
|
-
{
|
|
125
|
-
item.second.set_to_top();
|
|
126
|
-
}
|
|
127
|
-
return inv;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/// Copy some values and return a new IntervalExeState
|
|
131
|
-
IntervalExeState sliceState(Set<u32_t> &sl)
|
|
132
|
-
{
|
|
133
|
-
IntervalExeState inv;
|
|
134
|
-
for (u32_t id: sl)
|
|
135
|
-
{
|
|
136
|
-
inv._varToItvVal[id] = _varToItvVal[id];
|
|
137
|
-
}
|
|
138
|
-
return inv;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
VAddrs &getVAddrs(u32_t id) override
|
|
142
|
-
{
|
|
143
|
-
auto it = globalES._varToVAddrs.find(id);
|
|
144
|
-
if (it != globalES._varToVAddrs.end())
|
|
145
|
-
return it->second;
|
|
146
|
-
else
|
|
147
|
-
return _varToVAddrs[id];
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
inline bool inVarToIValTable(u32_t id) const
|
|
151
|
-
{
|
|
152
|
-
return _varToItvVal.find(id) != _varToItvVal.end() ||
|
|
153
|
-
globalES._varToItvVal.find(id) != globalES._varToItvVal.end();
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
inline bool inVarToAddrsTable(u32_t id) const override
|
|
157
|
-
{
|
|
158
|
-
return _varToVAddrs.find(id) != _varToVAddrs.end() ||
|
|
159
|
-
globalES._varToVAddrs.find(id) != globalES._varToVAddrs.end();
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
inline bool inLocToIValTable(u32_t id) const
|
|
163
|
-
{
|
|
164
|
-
return _locToItvVal.find(id) != _locToItvVal.end() ||
|
|
165
|
-
globalES._locToItvVal.find(id) != globalES._locToItvVal.end();
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
inline bool inLocalLocToIValTable(u32_t id) const
|
|
169
|
-
{
|
|
170
|
-
return _locToItvVal.find(id) != _locToItvVal.end();
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
inline bool inLocToAddrsTable(u32_t id) const override
|
|
174
|
-
{
|
|
175
|
-
return _locToVAddrs.find(id) != _locToVAddrs.end() ||
|
|
176
|
-
globalES._locToVAddrs.find(id) != globalES._locToVAddrs.end();
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
inline bool inLocalLocToAddrsTable(u32_t id) const
|
|
180
|
-
{
|
|
181
|
-
return _locToVAddrs.find(id) != _locToVAddrs.end();
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
bool equals(const IntervalExeState &other) const;
|
|
185
|
-
|
|
186
|
-
virtual ~IntervalExeState() = default;
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
/// get var2val map
|
|
190
|
-
const VarToValMap &getVarToVal() const
|
|
191
|
-
{
|
|
192
|
-
return _varToItvVal;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/// get loc2val map
|
|
196
|
-
const LocToValMap &getLocToVal() const
|
|
197
|
-
{
|
|
198
|
-
return _locToItvVal;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/// [], call getValueExpr()
|
|
202
|
-
inline IntervalValue &operator[](u32_t varId)
|
|
203
|
-
{
|
|
204
|
-
auto it = globalES._varToItvVal.find(varId);
|
|
205
|
-
if (it != globalES._varToItvVal.end())
|
|
206
|
-
{
|
|
207
|
-
return it->second;
|
|
208
|
-
}
|
|
209
|
-
else
|
|
210
|
-
{
|
|
211
|
-
return _varToItvVal[varId];
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/// domain widen with other, important! other widen this.
|
|
216
|
-
void widenWith(const IntervalExeState &other);
|
|
217
|
-
|
|
218
|
-
/// domain join with other, important! other widen this.
|
|
219
|
-
void joinWith(const IntervalExeState &other);
|
|
220
|
-
|
|
221
|
-
/// domain narrow with other, important! other widen this.
|
|
222
|
-
void narrowWith(const IntervalExeState &other);
|
|
223
|
-
|
|
224
|
-
/// domain meet with other, important! other widen this.
|
|
225
|
-
void meetWith(const IntervalExeState &other);
|
|
226
|
-
|
|
227
|
-
/// domain meet with other varToValMap
|
|
228
|
-
void meetWith(VarToValMap *other);
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
/// Return int value from an expression if it is a numeral, otherwise return an approximate value
|
|
232
|
-
inline s32_t Interval2NumValue(const IntervalValue &e) const
|
|
233
|
-
{
|
|
234
|
-
//TODO: return concrete value;
|
|
235
|
-
return (s32_t) e.lb().getNumeral();
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
///TODO: Create new inteval value
|
|
239
|
-
IntervalValue createIntervalValue(double lb, double ub, NodeID id)
|
|
240
|
-
{
|
|
241
|
-
_varToItvVal[id] = IntervalValue(lb, ub);
|
|
242
|
-
return _varToItvVal[id];
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/// Return true if map has bottom value
|
|
246
|
-
inline bool has_bottom()
|
|
247
|
-
{
|
|
248
|
-
for (auto it = _varToItvVal.begin(); it != _varToItvVal.end(); ++it)
|
|
249
|
-
{
|
|
250
|
-
if (it->second.isBottom())
|
|
251
|
-
{
|
|
252
|
-
return true;
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
return false;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
u32_t hash() const override;
|
|
259
|
-
|
|
260
|
-
public:
|
|
261
|
-
inline void store(u32_t addr, const IntervalValue &val)
|
|
262
|
-
{
|
|
263
|
-
assert(isVirtualMemAddress(addr) && "not virtual address?");
|
|
264
|
-
if (isNullPtr(addr)) return;
|
|
265
|
-
u32_t objId = getInternalID(addr);
|
|
266
|
-
_locToItvVal[objId] = val;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
inline IntervalValue &load(u32_t addr)
|
|
270
|
-
{
|
|
271
|
-
assert(isVirtualMemAddress(addr) && "not virtual address?");
|
|
272
|
-
u32_t objId = getInternalID(addr);
|
|
273
|
-
auto it = _locToItvVal.find(objId);
|
|
274
|
-
if(it != _locToItvVal.end())
|
|
275
|
-
return it->second;
|
|
276
|
-
else
|
|
277
|
-
{
|
|
278
|
-
auto globIt = globalES._locToItvVal.find(objId);
|
|
279
|
-
if(globIt != globalES._locToItvVal.end())
|
|
280
|
-
return globIt->second;
|
|
281
|
-
else
|
|
282
|
-
return _locToItvVal[objId];
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
inline VAddrs &loadVAddrs(u32_t addr) override
|
|
287
|
-
{
|
|
288
|
-
assert(isVirtualMemAddress(addr) && "not virtual address?");
|
|
289
|
-
u32_t objId = getInternalID(addr);
|
|
290
|
-
auto it = _locToVAddrs.find(objId);
|
|
291
|
-
if(it != _locToVAddrs.end())
|
|
292
|
-
return it->second;
|
|
293
|
-
else
|
|
294
|
-
{
|
|
295
|
-
auto globIt = globalES._locToVAddrs.find(objId);
|
|
296
|
-
if(globIt != globalES._locToVAddrs.end())
|
|
297
|
-
return globIt->second;
|
|
298
|
-
else
|
|
299
|
-
return _locToVAddrs[objId];
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
inline IntervalValue& getLocToItv(u32_t id)
|
|
304
|
-
{
|
|
305
|
-
auto it = _locToItvVal.find(id);
|
|
306
|
-
if(it != _locToItvVal.end())
|
|
307
|
-
return it->second;
|
|
308
|
-
else
|
|
309
|
-
{
|
|
310
|
-
auto globIt = globalES._locToItvVal.find(id);
|
|
311
|
-
if(globIt != globalES._locToItvVal.end())
|
|
312
|
-
return globIt->second;
|
|
313
|
-
else
|
|
314
|
-
return _locToItvVal[id];
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
inline VAddrs& getLocVAddrs(u32_t id)
|
|
319
|
-
{
|
|
320
|
-
auto it = _locToVAddrs.find(id);
|
|
321
|
-
if(it != _locToVAddrs.end())
|
|
322
|
-
return it->second;
|
|
323
|
-
else
|
|
324
|
-
{
|
|
325
|
-
auto globIt = globalES._locToVAddrs.find(id);
|
|
326
|
-
if(globIt != globalES._locToVAddrs.end())
|
|
327
|
-
return globIt->second;
|
|
328
|
-
else
|
|
329
|
-
return _locToVAddrs[id];
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
/// Print values of all expressions
|
|
334
|
-
void printExprValues(std::ostream &oss) const override;
|
|
335
|
-
|
|
336
|
-
std::string toString() const override
|
|
337
|
-
{
|
|
338
|
-
return "";
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
static bool eqVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs)
|
|
342
|
-
{
|
|
343
|
-
if (lhs.size() != rhs.size()) return false;
|
|
344
|
-
for (const auto &item: lhs)
|
|
345
|
-
{
|
|
346
|
-
auto it = rhs.find(item.first);
|
|
347
|
-
if (it == rhs.end())
|
|
348
|
-
return false;
|
|
349
|
-
if (!item.second.equals(it->second))
|
|
350
|
-
{
|
|
351
|
-
return false;
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
return true;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
static bool lessThanVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs)
|
|
359
|
-
{
|
|
360
|
-
if (lhs.size() != rhs.size()) return lhs.size() < rhs.size();
|
|
361
|
-
for (const auto &item: lhs)
|
|
362
|
-
{
|
|
363
|
-
auto it = rhs.find(item.first);
|
|
364
|
-
// lhs > rhs if SVFVar not exists in rhs
|
|
365
|
-
if (it == rhs.end())
|
|
366
|
-
return false;
|
|
367
|
-
// judge from expr id
|
|
368
|
-
if (!item.second.equals(it->second))
|
|
369
|
-
{
|
|
370
|
-
return !item.second.geq(it->second);
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
return false;
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
bool operator==(const IntervalExeState &rhs) const
|
|
377
|
-
{
|
|
378
|
-
return ExeState::operator==(rhs) && eqVarToValMap(_varToItvVal, rhs.getVarToVal()) &&
|
|
379
|
-
eqVarToValMap(_locToItvVal, rhs.getLocToVal());
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
bool operator!=(const IntervalExeState &rhs) const
|
|
383
|
-
{
|
|
384
|
-
return !(*this == rhs);
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
bool operator<(const IntervalExeState &rhs) const
|
|
388
|
-
{
|
|
389
|
-
// judge from path constraint
|
|
390
|
-
return (lessThanVarToValMap(_varToItvVal, rhs.getVarToVal()) ||
|
|
391
|
-
lessThanVarToValMap(_locToItvVal, rhs.getLocToVal()));
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
bool operator>=(const IntervalExeState &rhs) const
|
|
396
|
-
{
|
|
397
|
-
return !(*this < rhs);
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
void clear()
|
|
401
|
-
{
|
|
402
|
-
_locToItvVal.clear();
|
|
403
|
-
_varToItvVal.clear();
|
|
404
|
-
_locToVAddrs.clear();
|
|
405
|
-
_varToVAddrs.clear();
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
private:
|
|
410
|
-
void printTable(const VarToValMap &table, std::ostream &oss) const;
|
|
411
|
-
|
|
412
|
-
void printTable(const VarToVAddrs &table, std::ostream &oss) const;
|
|
413
|
-
};
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
template<>
|
|
417
|
-
struct std::hash<SVF::IntervalExeState>
|
|
418
|
-
{
|
|
419
|
-
size_t operator()(const SVF::IntervalExeState &exeState) const
|
|
420
|
-
{
|
|
421
|
-
return exeState.hash();
|
|
422
|
-
}
|
|
423
|
-
};
|
|
424
|
-
|
|
425
|
-
#endif //Z3_EXAMPLE_INTERVAL_DOMAIN_H
|