svf-lib 1.0.1374 → 1.0.1376
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 → svf-llvm/libSvfLLVM.a} +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/AbstractValue.h +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/AddressValue.h +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/ExeState.h +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/IntervalExeState.h +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/IntervalValue.h +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/NumericLiteral.h +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/RelExeState.h +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/RelationSolver.h +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/SVFIR2ItvExeState.h +0 -0
- package/SVF-linux/{include → svf/include}/AbstractExecution/WTO.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFGNormalizer.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLAlias.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLBase.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLData.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLDataBuilder.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLGramGraphChecker.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLGrammar.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLGrammar.txt +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLGrammarDev.txt +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLGraphBuilder.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLSolver.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLStat.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/CFLVF.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/GrammarBuilder.h +0 -0
- package/SVF-linux/{include → svf/include}/CFL/PEGGrammar.txt +0 -0
- package/SVF-linux/{include → svf/include}/CFL/VFG.txt +0 -0
- package/SVF-linux/{include → svf/include}/CUDD/cudd.h +0 -0
- package/SVF-linux/{include → svf/include}/CUDD/cuddInt.h +0 -0
- package/SVF-linux/{include → svf/include}/CUDD/epd.h +0 -0
- package/SVF-linux/{include → svf/include}/CUDD/mtr.h +0 -0
- package/SVF-linux/{include → svf/include}/CUDD/mtrInt.h +0 -0
- package/SVF-linux/{include → svf/include}/CUDD/st.h +0 -0
- package/SVF-linux/{include → svf/include}/CUDD/util.h +0 -0
- package/SVF-linux/{include → svf/include}/DDA/ContextDDA.h +0 -0
- package/SVF-linux/{include → svf/include}/DDA/DDAClient.h +0 -0
- package/SVF-linux/{include → svf/include}/DDA/DDAPass.h +0 -0
- package/SVF-linux/{include → svf/include}/DDA/DDAStat.h +0 -0
- package/SVF-linux/{include → svf/include}/DDA/DDAVFSolver.h +0 -0
- package/SVF-linux/{include → svf/include}/DDA/FlowDDA.h +0 -0
- package/SVF-linux/{include → svf/include}/FastCluster/LICENSE.TXT +0 -0
- package/SVF-linux/{include → svf/include}/FastCluster/fastcluster.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/CFLGraph.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/CHG.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/ConsG.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/ConsGEdge.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/ConsGNode.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/DOTGraphTraits.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/ExternalPAG.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/GenericGraph.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/GraphPrinter.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/GraphTraits.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/GraphWriter.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/ICFG.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/ICFGEdge.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/ICFGNode.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/ICFGStat.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/IRGraph.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/OfflineConsG.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/PAG.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/PAGEdge.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/PAGNode.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/PTACallGraph.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/SVFG.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/SVFGEdge.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/SVFGNode.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/SVFGOPT.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/SVFGStat.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/ThreadCallGraph.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/VFG.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/VFGEdge.h +0 -0
- package/SVF-linux/{include → svf/include}/Graphs/VFGNode.h +0 -0
- package/SVF-linux/{include → svf/include}/MSSA/MSSAMuChi.h +0 -0
- package/SVF-linux/{include → svf/include}/MSSA/MemPartition.h +0 -0
- package/SVF-linux/{include → svf/include}/MSSA/MemRegion.h +0 -0
- package/SVF-linux/{include → svf/include}/MSSA/MemSSA.h +0 -0
- package/SVF-linux/{include → svf/include}/MSSA/SVFGBuilder.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/FSMPTA.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/LockAnalysis.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/LockResultValidator.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/MHP.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/MTA.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/MTAAnnotator.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/MTAResultValidator.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/MTAStat.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/PCG.h +0 -0
- package/SVF-linux/{include → svf/include}/MTA/TCT.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/AbstractPointsToDS.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/ConditionalPT.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/LocationSet.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/MemModel.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/MutablePointsToDS.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PAGBuilderFromFile.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PTAStat.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PTAType.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PersistentPointsToCache.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PersistentPointsToDS.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PointerAnalysis.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PointerAnalysisImpl.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PointsTo.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PointsToDFDS.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/PointsToDS.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/SVFIR.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/SVFLoop.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/SVFStatements.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/SVFSymbols.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/SVFVariables.h +0 -0
- package/SVF-linux/{include → svf/include}/MemoryModel/SymbolTableInfo.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/DoubleFreeChecker.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/FileChecker.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/LeakChecker.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/PathCondAllocator.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/ProgSlice.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/SaberAnnotator.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/SaberCheckerAPI.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/SaberCondAllocator.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/SaberSVFGBuilder.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/SrcSnkDDA.h +0 -0
- package/SVF-linux/{include → svf/include}/SABER/SrcSnkSolver.h +0 -0
- package/SVF-linux/{include → svf/include}/SVFIR/PAGBuilderFromFile.h +0 -0
- package/SVF-linux/{include → svf/include}/SVFIR/SVFIR.h +0 -0
- package/SVF-linux/{include → svf/include}/SVFIR/SVFModule.h +0 -0
- package/SVF-linux/{include → svf/include}/SVFIR/SVFStatements.h +0 -0
- package/SVF-linux/{include → svf/include}/SVFIR/SVFType.h +0 -0
- package/SVF-linux/{include → svf/include}/SVFIR/SVFValue.h +0 -0
- package/SVF-linux/{include → svf/include}/SVFIR/SVFVariables.h +0 -0
- package/SVF-linux/{include → svf/include}/SVFIR/SymbolTableInfo.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/Annotator.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/BDDExpr.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/BasicTypes.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/BitVector.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/CFLSolver.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/CallGraphBuilder.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/Casting.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/CommandLine.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/Conditions.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/CoreBitVector.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/CppUtil.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/CxtStmt.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/DPItem.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/ExeState.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/ExtAPI.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/ExtAPI.json +0 -0
- package/SVF-linux/{include → svf/include}/Util/GraphReachSolver.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/IRAnnotator.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/NodeIDAllocator.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/Options.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/PTAStat.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/PathCondAllocator.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/PathDPItem.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/SCC.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/SVFBasicTypes.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/SVFInstruction.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/SVFModule.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/SVFStat.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/SVFUtil.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/SparseBitVector.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/SymState.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/ThreadAPI.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/TypeBasedHeapCloning.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/WorkList.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/Z3Expr.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/cJSON.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/config.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/iterator.h +0 -0
- package/SVF-linux/{include → svf/include}/Util/iterator_range.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/Andersen.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/AndersenPWC.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/AndersenSFR.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/CSC.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/FlowSensitive.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/FlowSensitiveTBHC.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/Steensgaard.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/TypeAnalysis.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/TypeBasedHeapCloning.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/VersionedFlowSensitive.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/WPAFSSolver.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/WPAPass.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/WPASolver.h +0 -0
- package/SVF-linux/{include → svf/include}/WPA/WPAStat.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/AbstractValue.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/AddressValue.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/ExeState.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/IntervalExeState.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/IntervalValue.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/NumericLiteral.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/RelExeState.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/RelationSolver.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/SVFIR2ItvExeState.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/WTO.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFGNormalizer.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLAlias.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLBase.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLData.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLDataBuilder.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGramGraphChecker.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGrammar.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGrammar.txt +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGraphBuilder.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLSolver.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLStat.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLVF.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/GrammarBuilder.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/PEGGrammar.txt +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/CFL/VFG.txt +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/DDA/ContextDDA.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAClient.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAPass.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAStat.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAVFSolver.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/DDA/FlowDDA.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/FastCluster/LICENSE.TXT +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/FastCluster/fastcluster.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/CFLGraph.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/CHG.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ConsG.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ConsGEdge.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ConsGNode.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/DOTGraphTraits.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GenericGraph.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GraphPrinter.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GraphTraits.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GraphWriter.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFG.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFGEdge.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFGNode.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFGStat.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/IRGraph.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/PTACallGraph.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFG.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGEdge.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGNode.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGOPT.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGStat.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ThreadCallGraph.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/VFG.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/VFGEdge.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/VFGNode.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MSSAMuChi.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MemPartition.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MemRegion.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MemSSA.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/SVFGBuilder.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MTA/FSMPTA.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MTA/LockAnalysis.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MHP.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MTA.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MTAResultValidator.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MTAStat.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MTA/PCG.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MTA/TCT.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/AbstractPointsToDS.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/ConditionalPT.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/LocationSet.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/MutablePointsToDS.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PersistentPointsToCache.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PersistentPointsToDS.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PointerAnalysis.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PointerAnalysisImpl.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PointsTo.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/SVFLoop.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SABER/DoubleFreeChecker.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SABER/FileChecker.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SABER/LeakChecker.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SABER/ProgSlice.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SaberCheckerAPI.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SaberCondAllocator.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SaberSVFGBuilder.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SrcSnkDDA.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SrcSnkSolver.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/PAGBuilderFromFile.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFIR.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFModule.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFStatements.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFType.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFValue.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFVariables.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SymbolTableInfo.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/Annotator.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/BitVector.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/CallGraphBuilder.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/Casting.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/CommandLine.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/CoreBitVector.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/CppUtil.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/CxtStmt.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/DPItem.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/ExtAPI.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/ExtAPI.json +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/GraphReachSolver.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/NodeIDAllocator.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/Options.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/PTAStat.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/SCC.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/SVFStat.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/SVFUtil.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/SparseBitVector.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/ThreadAPI.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/WorkList.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/Z3Expr.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/cJSON.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/iterator.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/Util/iterator_range.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/Andersen.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/AndersenPWC.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/CSC.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/FlowSensitive.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/Steensgaard.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/TypeAnalysis.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/VersionedFlowSensitive.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPAFSSolver.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPAPass.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPASolver.h +0 -0
- package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPAStat.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/BasicTypes.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/BreakConstantExpr.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/CHGBuilder.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/CPPUtil.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/DCHG.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/GEPTypeBridgeIterator.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/ICFGBuilder.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/IRAnnotator.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/LLVMLoopAnalysis.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/LLVMModule.h +0 -0
- package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/LLVMUtil.h +0 -0
- package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/BasicTypes.h +0 -0
- package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/BreakConstantExpr.h +0 -0
- package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/CHGBuilder.h +0 -0
- package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/DCHG.h +0 -0
- package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/GEPTypeBridgeIterator.h +0 -0
- package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/ICFGBuilder.h +0 -0
- package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/LLVMLoopAnalysis.h +0 -0
- package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/LLVMModule.h +0 -0
- package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/LLVMUtil.h +0 -0
- package/SVF-linux/{include → svf-llvm/include/SVF-LLVM}/SVF-LLVM/SVFIRBuilder.h +0 -0
- package/SVF-linux/{include → svf-llvm/include/SVF-LLVM}/SVF-LLVM/SymbolTableBuilder.h +0 -0
- package/{SVF-osx → SVF-linux/svf-llvm}/include/SVF-LLVM/SVFIRBuilder.h +0 -0
- package/{SVF-osx → SVF-linux/svf-llvm}/include/SVF-LLVM/SymbolTableBuilder.h +0 -0
- package/SVF-osx/Release-build/{lib/libSvf.a → svf-llvm/libSvfLLVM.a} +0 -0
- package/SVF-osx/svf/include/AbstractExecution/AbstractValue.h +79 -0
- package/SVF-osx/svf/include/AbstractExecution/AddressValue.h +210 -0
- package/SVF-osx/svf/include/AbstractExecution/ExeState.h +223 -0
- package/SVF-osx/svf/include/AbstractExecution/IntervalExeState.h +425 -0
- package/SVF-osx/svf/include/AbstractExecution/IntervalValue.h +868 -0
- package/SVF-osx/svf/include/AbstractExecution/NumericLiteral.h +406 -0
- package/SVF-osx/svf/include/AbstractExecution/RelExeState.h +225 -0
- package/SVF-osx/svf/include/AbstractExecution/RelationSolver.h +68 -0
- package/SVF-osx/svf/include/AbstractExecution/SVFIR2ItvExeState.h +186 -0
- package/SVF-osx/svf/include/AbstractExecution/WTO.h +845 -0
- package/SVF-osx/svf/include/CFL/CFGNormalizer.h +84 -0
- package/SVF-osx/svf/include/CFL/CFLAlias.h +176 -0
- package/SVF-osx/svf/include/CFL/CFLBase.h +115 -0
- package/SVF-osx/svf/include/CFL/CFLData.h +316 -0
- package/SVF-osx/svf/include/CFL/CFLDataBuilder.h +91 -0
- package/SVF-osx/svf/include/CFL/CFLGramGraphChecker.h +74 -0
- package/SVF-osx/svf/include/CFL/CFLGrammar.h +468 -0
- package/SVF-osx/svf/include/CFL/CFLGrammar.txt +15 -0
- package/SVF-osx/{include → svf/include}/CFL/CFLGrammarDev.txt +0 -0
- package/SVF-osx/svf/include/CFL/CFLGraphBuilder.h +193 -0
- package/SVF-osx/svf/include/CFL/CFLSolver.h +136 -0
- package/SVF-osx/svf/include/CFL/CFLStat.h +67 -0
- package/SVF-osx/svf/include/CFL/CFLVF.h +65 -0
- package/SVF-osx/svf/include/CFL/GrammarBuilder.h +100 -0
- package/SVF-osx/svf/include/CFL/PEGGrammar.txt +11 -0
- package/SVF-osx/svf/include/CFL/VFG.txt +7 -0
- package/SVF-osx/{include → svf/include}/CUDD/cudd.h +0 -0
- package/SVF-osx/{include → svf/include}/CUDD/cuddInt.h +0 -0
- package/SVF-osx/{include → svf/include}/CUDD/epd.h +0 -0
- package/SVF-osx/{include → svf/include}/CUDD/mtr.h +0 -0
- package/SVF-osx/{include → svf/include}/CUDD/mtrInt.h +0 -0
- package/SVF-osx/{include → svf/include}/CUDD/st.h +0 -0
- package/SVF-osx/{include → svf/include}/CUDD/util.h +0 -0
- package/SVF-osx/svf/include/DDA/ContextDDA.h +230 -0
- package/SVF-osx/svf/include/DDA/DDAClient.h +168 -0
- package/SVF-osx/svf/include/DDA/DDAPass.h +99 -0
- package/SVF-osx/svf/include/DDA/DDAStat.h +138 -0
- package/SVF-osx/svf/include/DDA/DDAVFSolver.h +789 -0
- package/SVF-osx/svf/include/DDA/FlowDDA.h +178 -0
- package/SVF-osx/svf/include/FastCluster/LICENSE.TXT +13 -0
- package/SVF-osx/svf/include/FastCluster/fastcluster.h +80 -0
- package/SVF-osx/svf/include/Graphs/CFLGraph.h +215 -0
- package/SVF-osx/svf/include/Graphs/CHG.h +351 -0
- package/SVF-osx/svf/include/Graphs/ConsG.h +408 -0
- package/SVF-osx/svf/include/Graphs/ConsGEdge.h +353 -0
- package/SVF-osx/svf/include/Graphs/ConsGNode.h +391 -0
- package/SVF-osx/svf/include/Graphs/DOTGraphTraits.h +188 -0
- package/SVF-osx/{include → svf/include}/Graphs/ExternalPAG.h +0 -0
- package/SVF-osx/svf/include/Graphs/GenericGraph.h +620 -0
- package/SVF-osx/svf/include/Graphs/GraphPrinter.h +111 -0
- package/SVF-osx/svf/include/Graphs/GraphTraits.h +150 -0
- package/SVF-osx/svf/include/Graphs/GraphWriter.h +380 -0
- package/SVF-osx/svf/include/Graphs/ICFG.h +331 -0
- package/SVF-osx/svf/include/Graphs/ICFGEdge.h +264 -0
- package/SVF-osx/svf/include/Graphs/ICFGNode.h +523 -0
- package/SVF-osx/svf/include/Graphs/ICFGStat.h +164 -0
- package/SVF-osx/svf/include/Graphs/IRGraph.h +243 -0
- package/SVF-osx/{include → svf/include}/Graphs/OfflineConsG.h +0 -0
- package/SVF-osx/{include → svf/include}/Graphs/PAG.h +0 -0
- package/SVF-osx/{include → svf/include}/Graphs/PAGEdge.h +0 -0
- package/SVF-osx/{include → svf/include}/Graphs/PAGNode.h +0 -0
- package/SVF-osx/svf/include/Graphs/PTACallGraph.h +471 -0
- package/SVF-osx/svf/include/Graphs/SVFG.h +490 -0
- package/SVF-osx/svf/include/Graphs/SVFGEdge.h +237 -0
- package/SVF-osx/svf/include/Graphs/SVFGNode.h +513 -0
- package/SVF-osx/svf/include/Graphs/SVFGOPT.h +362 -0
- package/SVF-osx/svf/include/Graphs/SVFGStat.h +273 -0
- package/SVF-osx/svf/include/Graphs/ThreadCallGraph.h +422 -0
- package/SVF-osx/svf/include/Graphs/VFG.h +664 -0
- package/SVF-osx/svf/include/Graphs/VFGEdge.h +295 -0
- package/SVF-osx/svf/include/Graphs/VFGNode.h +1197 -0
- package/SVF-osx/svf/include/MSSA/MSSAMuChi.h +722 -0
- package/SVF-osx/svf/include/MSSA/MemPartition.h +169 -0
- package/SVF-osx/svf/include/MSSA/MemRegion.h +491 -0
- package/SVF-osx/svf/include/MSSA/MemSSA.h +452 -0
- package/SVF-osx/svf/include/MSSA/SVFGBuilder.h +98 -0
- package/SVF-osx/svf/include/MTA/FSMPTA.h +270 -0
- package/SVF-osx/svf/include/MTA/LockAnalysis.h +517 -0
- package/SVF-osx/{include → svf/include}/MTA/LockResultValidator.h +0 -0
- package/SVF-osx/svf/include/MTA/MHP.h +565 -0
- package/SVF-osx/svf/include/MTA/MTA.h +101 -0
- package/SVF-osx/{include → svf/include}/MTA/MTAAnnotator.h +0 -0
- package/SVF-osx/svf/include/MTA/MTAResultValidator.h +448 -0
- package/SVF-osx/svf/include/MTA/MTAStat.h +74 -0
- package/SVF-osx/svf/include/MTA/PCG.h +229 -0
- package/SVF-osx/svf/include/MTA/TCT.h +599 -0
- package/SVF-osx/svf/include/MemoryModel/AbstractPointsToDS.h +316 -0
- package/SVF-osx/svf/include/MemoryModel/ConditionalPT.h +878 -0
- package/SVF-osx/svf/include/MemoryModel/LocationSet.h +148 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/MemModel.h +0 -0
- package/SVF-osx/svf/include/MemoryModel/MutablePointsToDS.h +1025 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/PAGBuilderFromFile.h +0 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/PTAStat.h +0 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/PTAType.h +0 -0
- package/SVF-osx/svf/include/MemoryModel/PersistentPointsToCache.h +463 -0
- package/SVF-osx/svf/include/MemoryModel/PersistentPointsToDS.h +955 -0
- package/SVF-osx/svf/include/MemoryModel/PointerAnalysis.h +452 -0
- package/SVF-osx/svf/include/MemoryModel/PointerAnalysisImpl.h +590 -0
- package/SVF-osx/svf/include/MemoryModel/PointsTo.h +255 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/PointsToDFDS.h +0 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/PointsToDS.h +0 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/SVFIR.h +0 -0
- package/SVF-osx/svf/include/MemoryModel/SVFLoop.h +164 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/SVFStatements.h +0 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/SVFSymbols.h +0 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/SVFVariables.h +0 -0
- package/SVF-osx/{include → svf/include}/MemoryModel/SymbolTableInfo.h +0 -0
- package/SVF-osx/svf/include/SABER/DoubleFreeChecker.h +76 -0
- package/SVF-osx/svf/include/SABER/FileChecker.h +82 -0
- package/SVF-osx/svf/include/SABER/LeakChecker.h +124 -0
- package/SVF-osx/{include → svf/include}/SABER/PathCondAllocator.h +0 -0
- package/SVF-osx/svf/include/SABER/ProgSlice.h +313 -0
- package/SVF-osx/{include → svf/include}/SABER/SaberAnnotator.h +0 -0
- package/SVF-osx/svf/include/SABER/SaberCheckerAPI.h +166 -0
- package/SVF-osx/svf/include/SABER/SaberCondAllocator.h +310 -0
- package/SVF-osx/svf/include/SABER/SaberSVFGBuilder.h +104 -0
- package/SVF-osx/svf/include/SABER/SrcSnkDDA.h +321 -0
- package/SVF-osx/svf/include/SABER/SrcSnkSolver.h +186 -0
- package/SVF-osx/svf/include/SVFIR/PAGBuilderFromFile.h +80 -0
- package/SVF-osx/svf/include/SVFIR/SVFIR.h +659 -0
- package/SVF-osx/svf/include/SVFIR/SVFModule.h +233 -0
- package/SVF-osx/svf/include/SVFIR/SVFStatements.h +1136 -0
- package/SVF-osx/svf/include/SVFIR/SVFType.h +527 -0
- package/SVF-osx/svf/include/SVFIR/SVFValue.h +1120 -0
- package/SVF-osx/svf/include/SVFIR/SVFVariables.h +721 -0
- package/SVF-osx/svf/include/SVFIR/SymbolTableInfo.h +597 -0
- package/SVF-osx/svf/include/Util/Annotator.h +180 -0
- package/SVF-osx/{include → svf/include}/Util/BDDExpr.h +0 -0
- package/SVF-osx/{include → svf/include}/Util/BasicTypes.h +0 -0
- package/SVF-osx/svf/include/Util/BitVector.h +55 -0
- package/SVF-osx/{include → svf/include}/Util/CFLSolver.h +0 -0
- package/SVF-osx/svf/include/Util/CallGraphBuilder.h +74 -0
- package/SVF-osx/svf/include/Util/Casting.h +426 -0
- package/SVF-osx/svf/include/Util/CommandLine.h +530 -0
- package/SVF-osx/{include → svf/include}/Util/Conditions.h +0 -0
- package/SVF-osx/svf/include/Util/CoreBitVector.h +214 -0
- package/SVF-osx/svf/include/Util/CppUtil.h +81 -0
- package/SVF-osx/svf/include/Util/CxtStmt.h +501 -0
- package/SVF-osx/svf/include/Util/DPItem.h +618 -0
- package/SVF-osx/{include → svf/include}/Util/ExeState.h +0 -0
- package/SVF-osx/svf/include/Util/ExtAPI.h +339 -0
- package/SVF-osx/svf/include/Util/ExtAPI.json +5707 -0
- package/SVF-osx/svf/include/Util/GraphReachSolver.h +186 -0
- package/SVF-osx/{include → svf/include}/Util/IRAnnotator.h +0 -0
- package/SVF-osx/svf/include/Util/NodeIDAllocator.h +194 -0
- package/SVF-osx/svf/include/Util/Options.h +266 -0
- package/SVF-osx/svf/include/Util/PTAStat.h +65 -0
- package/SVF-osx/{include → svf/include}/Util/PathCondAllocator.h +0 -0
- package/SVF-osx/{include → svf/include}/Util/PathDPItem.h +0 -0
- package/SVF-osx/svf/include/Util/SCC.h +354 -0
- package/SVF-osx/{include → svf/include}/Util/SVFBasicTypes.h +0 -0
- package/SVF-osx/{include → svf/include}/Util/SVFInstruction.h +0 -0
- package/SVF-osx/{include → svf/include}/Util/SVFModule.h +0 -0
- package/SVF-osx/svf/include/Util/SVFStat.h +100 -0
- package/SVF-osx/svf/include/Util/SVFUtil.h +660 -0
- package/SVF-osx/svf/include/Util/SparseBitVector.h +1202 -0
- package/SVF-osx/{include → svf/include}/Util/SymState.h +0 -0
- package/SVF-osx/svf/include/Util/ThreadAPI.h +330 -0
- package/SVF-osx/{include → svf/include}/Util/TypeBasedHeapCloning.h +0 -0
- package/SVF-osx/svf/include/Util/WorkList.h +317 -0
- package/SVF-osx/svf/include/Util/Z3Expr.h +318 -0
- package/SVF-osx/svf/include/Util/cJSON.h +300 -0
- package/SVF-osx/{include → svf/include}/Util/config.h +0 -0
- package/SVF-osx/svf/include/Util/iterator.h +407 -0
- package/SVF-osx/svf/include/Util/iterator_range.h +76 -0
- package/SVF-osx/svf/include/WPA/Andersen.h +416 -0
- package/SVF-osx/svf/include/WPA/AndersenPWC.h +160 -0
- package/SVF-osx/{include → svf/include}/WPA/AndersenSFR.h +0 -0
- package/SVF-osx/svf/include/WPA/CSC.h +95 -0
- package/SVF-osx/svf/include/WPA/FlowSensitive.h +317 -0
- package/SVF-osx/{include → svf/include}/WPA/FlowSensitiveTBHC.h +0 -0
- package/SVF-osx/svf/include/WPA/Steensgaard.h +126 -0
- package/SVF-osx/svf/include/WPA/TypeAnalysis.h +83 -0
- package/SVF-osx/{include → svf/include}/WPA/TypeBasedHeapCloning.h +0 -0
- package/SVF-osx/svf/include/WPA/VersionedFlowSensitive.h +287 -0
- package/SVF-osx/svf/include/WPA/WPAFSSolver.h +254 -0
- package/SVF-osx/svf/include/WPA/WPAPass.h +119 -0
- package/SVF-osx/svf/include/WPA/WPASolver.h +205 -0
- package/SVF-osx/svf/include/WPA/WPAStat.h +222 -0
- package/SVF-osx/svf/include/include/AbstractExecution/AbstractValue.h +79 -0
- package/SVF-osx/svf/include/include/AbstractExecution/AddressValue.h +210 -0
- package/SVF-osx/svf/include/include/AbstractExecution/ExeState.h +223 -0
- package/SVF-osx/svf/include/include/AbstractExecution/IntervalExeState.h +425 -0
- package/SVF-osx/svf/include/include/AbstractExecution/IntervalValue.h +868 -0
- package/SVF-osx/svf/include/include/AbstractExecution/NumericLiteral.h +406 -0
- package/SVF-osx/svf/include/include/AbstractExecution/RelExeState.h +225 -0
- package/SVF-osx/svf/include/include/AbstractExecution/RelationSolver.h +68 -0
- package/SVF-osx/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +186 -0
- package/SVF-osx/svf/include/include/AbstractExecution/WTO.h +845 -0
- package/SVF-osx/svf/include/include/CFL/CFGNormalizer.h +84 -0
- package/SVF-osx/svf/include/include/CFL/CFLAlias.h +176 -0
- package/SVF-osx/svf/include/include/CFL/CFLBase.h +115 -0
- package/SVF-osx/svf/include/include/CFL/CFLData.h +316 -0
- package/SVF-osx/svf/include/include/CFL/CFLDataBuilder.h +91 -0
- package/SVF-osx/svf/include/include/CFL/CFLGramGraphChecker.h +74 -0
- package/SVF-osx/svf/include/include/CFL/CFLGrammar.h +468 -0
- package/SVF-osx/svf/include/include/CFL/CFLGrammar.txt +15 -0
- package/SVF-osx/svf/include/include/CFL/CFLGraphBuilder.h +193 -0
- package/SVF-osx/svf/include/include/CFL/CFLSolver.h +136 -0
- package/SVF-osx/svf/include/include/CFL/CFLStat.h +67 -0
- package/SVF-osx/svf/include/include/CFL/CFLVF.h +65 -0
- package/SVF-osx/svf/include/include/CFL/GrammarBuilder.h +100 -0
- package/SVF-osx/svf/include/include/CFL/PEGGrammar.txt +11 -0
- package/SVF-osx/svf/include/include/CFL/VFG.txt +7 -0
- package/SVF-osx/svf/include/include/DDA/ContextDDA.h +230 -0
- package/SVF-osx/svf/include/include/DDA/DDAClient.h +168 -0
- package/SVF-osx/svf/include/include/DDA/DDAPass.h +99 -0
- package/SVF-osx/svf/include/include/DDA/DDAStat.h +138 -0
- package/SVF-osx/svf/include/include/DDA/DDAVFSolver.h +789 -0
- package/SVF-osx/svf/include/include/DDA/FlowDDA.h +178 -0
- package/SVF-osx/svf/include/include/FastCluster/LICENSE.TXT +13 -0
- package/SVF-osx/svf/include/include/FastCluster/fastcluster.h +80 -0
- package/SVF-osx/svf/include/include/Graphs/CFLGraph.h +215 -0
- package/SVF-osx/svf/include/include/Graphs/CHG.h +351 -0
- package/SVF-osx/svf/include/include/Graphs/ConsG.h +408 -0
- package/SVF-osx/svf/include/include/Graphs/ConsGEdge.h +353 -0
- package/SVF-osx/svf/include/include/Graphs/ConsGNode.h +391 -0
- package/SVF-osx/svf/include/include/Graphs/DOTGraphTraits.h +188 -0
- package/SVF-osx/svf/include/include/Graphs/GenericGraph.h +620 -0
- package/SVF-osx/svf/include/include/Graphs/GraphPrinter.h +111 -0
- package/SVF-osx/svf/include/include/Graphs/GraphTraits.h +150 -0
- package/SVF-osx/svf/include/include/Graphs/GraphWriter.h +380 -0
- package/SVF-osx/svf/include/include/Graphs/ICFG.h +331 -0
- package/SVF-osx/svf/include/include/Graphs/ICFGEdge.h +264 -0
- package/SVF-osx/svf/include/include/Graphs/ICFGNode.h +523 -0
- package/SVF-osx/svf/include/include/Graphs/ICFGStat.h +164 -0
- package/SVF-osx/svf/include/include/Graphs/IRGraph.h +243 -0
- package/SVF-osx/svf/include/include/Graphs/PTACallGraph.h +471 -0
- package/SVF-osx/svf/include/include/Graphs/SVFG.h +490 -0
- package/SVF-osx/svf/include/include/Graphs/SVFGEdge.h +237 -0
- package/SVF-osx/svf/include/include/Graphs/SVFGNode.h +513 -0
- package/SVF-osx/svf/include/include/Graphs/SVFGOPT.h +362 -0
- package/SVF-osx/svf/include/include/Graphs/SVFGStat.h +273 -0
- package/SVF-osx/svf/include/include/Graphs/ThreadCallGraph.h +422 -0
- package/SVF-osx/svf/include/include/Graphs/VFG.h +664 -0
- package/SVF-osx/svf/include/include/Graphs/VFGEdge.h +295 -0
- package/SVF-osx/svf/include/include/Graphs/VFGNode.h +1197 -0
- package/SVF-osx/svf/include/include/MSSA/MSSAMuChi.h +722 -0
- package/SVF-osx/svf/include/include/MSSA/MemPartition.h +169 -0
- package/SVF-osx/svf/include/include/MSSA/MemRegion.h +491 -0
- package/SVF-osx/svf/include/include/MSSA/MemSSA.h +452 -0
- package/SVF-osx/svf/include/include/MSSA/SVFGBuilder.h +98 -0
- package/SVF-osx/svf/include/include/MTA/FSMPTA.h +270 -0
- package/SVF-osx/svf/include/include/MTA/LockAnalysis.h +517 -0
- package/SVF-osx/svf/include/include/MTA/MHP.h +565 -0
- package/SVF-osx/svf/include/include/MTA/MTA.h +101 -0
- package/SVF-osx/svf/include/include/MTA/MTAResultValidator.h +448 -0
- package/SVF-osx/svf/include/include/MTA/MTAStat.h +74 -0
- package/SVF-osx/svf/include/include/MTA/PCG.h +229 -0
- package/SVF-osx/svf/include/include/MTA/TCT.h +599 -0
- package/SVF-osx/svf/include/include/MemoryModel/AbstractPointsToDS.h +316 -0
- package/SVF-osx/svf/include/include/MemoryModel/ConditionalPT.h +878 -0
- package/SVF-osx/svf/include/include/MemoryModel/LocationSet.h +148 -0
- package/SVF-osx/svf/include/include/MemoryModel/MutablePointsToDS.h +1025 -0
- package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToCache.h +463 -0
- package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToDS.h +955 -0
- package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysis.h +452 -0
- package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysisImpl.h +590 -0
- package/SVF-osx/svf/include/include/MemoryModel/PointsTo.h +255 -0
- package/SVF-osx/svf/include/include/MemoryModel/SVFLoop.h +164 -0
- package/SVF-osx/svf/include/include/SABER/DoubleFreeChecker.h +76 -0
- package/SVF-osx/svf/include/include/SABER/FileChecker.h +82 -0
- package/SVF-osx/svf/include/include/SABER/LeakChecker.h +124 -0
- package/SVF-osx/svf/include/include/SABER/ProgSlice.h +313 -0
- package/SVF-osx/svf/include/include/SABER/SaberCheckerAPI.h +166 -0
- package/SVF-osx/svf/include/include/SABER/SaberCondAllocator.h +310 -0
- package/SVF-osx/svf/include/include/SABER/SaberSVFGBuilder.h +104 -0
- package/SVF-osx/svf/include/include/SABER/SrcSnkDDA.h +321 -0
- package/SVF-osx/svf/include/include/SABER/SrcSnkSolver.h +186 -0
- package/SVF-osx/svf/include/include/SVFIR/PAGBuilderFromFile.h +80 -0
- package/SVF-osx/svf/include/include/SVFIR/SVFIR.h +659 -0
- package/SVF-osx/svf/include/include/SVFIR/SVFModule.h +233 -0
- package/SVF-osx/svf/include/include/SVFIR/SVFStatements.h +1136 -0
- package/SVF-osx/svf/include/include/SVFIR/SVFType.h +527 -0
- package/SVF-osx/svf/include/include/SVFIR/SVFValue.h +1120 -0
- package/SVF-osx/svf/include/include/SVFIR/SVFVariables.h +721 -0
- package/SVF-osx/svf/include/include/SVFIR/SymbolTableInfo.h +597 -0
- package/SVF-osx/svf/include/include/Util/Annotator.h +180 -0
- package/SVF-osx/svf/include/include/Util/BitVector.h +55 -0
- package/SVF-osx/svf/include/include/Util/CallGraphBuilder.h +74 -0
- package/SVF-osx/svf/include/include/Util/Casting.h +426 -0
- package/SVF-osx/svf/include/include/Util/CommandLine.h +530 -0
- package/SVF-osx/svf/include/include/Util/CoreBitVector.h +214 -0
- package/SVF-osx/svf/include/include/Util/CppUtil.h +81 -0
- package/SVF-osx/svf/include/include/Util/CxtStmt.h +501 -0
- package/SVF-osx/svf/include/include/Util/DPItem.h +618 -0
- package/SVF-osx/svf/include/include/Util/ExtAPI.h +339 -0
- package/SVF-osx/svf/include/include/Util/ExtAPI.json +5707 -0
- package/SVF-osx/svf/include/include/Util/GraphReachSolver.h +186 -0
- package/SVF-osx/svf/include/include/Util/NodeIDAllocator.h +194 -0
- package/SVF-osx/svf/include/include/Util/Options.h +266 -0
- package/SVF-osx/svf/include/include/Util/PTAStat.h +65 -0
- package/SVF-osx/svf/include/include/Util/SCC.h +354 -0
- package/SVF-osx/svf/include/include/Util/SVFStat.h +100 -0
- package/SVF-osx/svf/include/include/Util/SVFUtil.h +660 -0
- package/SVF-osx/svf/include/include/Util/SparseBitVector.h +1202 -0
- package/SVF-osx/svf/include/include/Util/ThreadAPI.h +330 -0
- package/SVF-osx/svf/include/include/Util/WorkList.h +317 -0
- package/SVF-osx/svf/include/include/Util/Z3Expr.h +318 -0
- package/SVF-osx/svf/include/include/Util/cJSON.h +300 -0
- package/SVF-osx/svf/include/include/Util/iterator.h +407 -0
- package/SVF-osx/svf/include/include/Util/iterator_range.h +76 -0
- package/SVF-osx/svf/include/include/WPA/Andersen.h +416 -0
- package/SVF-osx/svf/include/include/WPA/AndersenPWC.h +160 -0
- package/SVF-osx/svf/include/include/WPA/CSC.h +95 -0
- package/SVF-osx/svf/include/include/WPA/FlowSensitive.h +317 -0
- package/SVF-osx/svf/include/include/WPA/Steensgaard.h +126 -0
- package/SVF-osx/svf/include/include/WPA/TypeAnalysis.h +83 -0
- package/SVF-osx/svf/include/include/WPA/VersionedFlowSensitive.h +287 -0
- package/SVF-osx/svf/include/include/WPA/WPAFSSolver.h +254 -0
- package/SVF-osx/svf/include/include/WPA/WPAPass.h +119 -0
- package/SVF-osx/svf/include/include/WPA/WPASolver.h +205 -0
- package/SVF-osx/svf/include/include/WPA/WPAStat.h +222 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/BasicTypes.h +250 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/BreakConstantExpr.h +94 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/CHGBuilder.h +73 -0
- package/SVF-osx/{include → svf-llvm/include}/SVF-LLVM/CPPUtil.h +0 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/DCHG.h +484 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/GEPTypeBridgeIterator.h +183 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/ICFGBuilder.h +106 -0
- package/SVF-osx/{include → svf-llvm/include}/SVF-LLVM/IRAnnotator.h +0 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMLoopAnalysis.h +61 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMModule.h +360 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMUtil.h +466 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +250 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +94 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +73 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +484 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +183 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +106 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +61 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +360 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +466 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +417 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +110 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVFIRBuilder.h +417 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SymbolTableBuilder.h +110 -0
- package/package.json +1 -1
- package/SVF-linux/Release-build/lib/CUDD/libCudd.a +0 -0
- package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
//===- ExeState.h ----General Execution States-------------------------//
|
|
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
|
+
* ExeState.h
|
|
24
|
+
*
|
|
25
|
+
* Created on: Aug 4, 2022
|
|
26
|
+
* Author: Xiao Cheng
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
#ifndef Z3_EXAMPLE_EXESTATE_H
|
|
32
|
+
#define Z3_EXAMPLE_EXESTATE_H
|
|
33
|
+
|
|
34
|
+
#include "AbstractExecution/AddressValue.h"
|
|
35
|
+
#include "AbstractExecution/NumericLiteral.h"
|
|
36
|
+
#include "Util/Z3Expr.h"
|
|
37
|
+
|
|
38
|
+
namespace SVF
|
|
39
|
+
{
|
|
40
|
+
|
|
41
|
+
class IntervalExeState;
|
|
42
|
+
|
|
43
|
+
/*!
|
|
44
|
+
* Base execution state
|
|
45
|
+
*/
|
|
46
|
+
class ExeState
|
|
47
|
+
{
|
|
48
|
+
friend class SVFIR2ItvExeState;
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
|
|
52
|
+
typedef AddressValue VAddrs;
|
|
53
|
+
typedef Map<u32_t, VAddrs> VarToVAddrs;
|
|
54
|
+
/// Execution state kind
|
|
55
|
+
enum ExeState_TYPE
|
|
56
|
+
{
|
|
57
|
+
IntervalK, ConcreteK
|
|
58
|
+
};
|
|
59
|
+
private:
|
|
60
|
+
ExeState_TYPE _kind;
|
|
61
|
+
|
|
62
|
+
public:
|
|
63
|
+
ExeState(ExeState_TYPE kind) : _kind(kind) {}
|
|
64
|
+
|
|
65
|
+
virtual ~ExeState() = default;
|
|
66
|
+
|
|
67
|
+
ExeState(const ExeState &rhs) : _varToVAddrs(rhs._varToVAddrs),
|
|
68
|
+
_locToVAddrs(rhs._locToVAddrs) {}
|
|
69
|
+
|
|
70
|
+
ExeState(ExeState &&rhs) noexcept: _varToVAddrs(std::move(rhs._varToVAddrs)),
|
|
71
|
+
_locToVAddrs(std::move(rhs._locToVAddrs)) {}
|
|
72
|
+
|
|
73
|
+
ExeState &operator=(const ExeState &rhs)
|
|
74
|
+
{
|
|
75
|
+
if(*this != rhs)
|
|
76
|
+
{
|
|
77
|
+
_varToVAddrs = rhs._varToVAddrs;
|
|
78
|
+
_locToVAddrs = rhs._locToVAddrs;
|
|
79
|
+
}
|
|
80
|
+
return *this;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
ExeState &operator=(ExeState &&rhs) noexcept
|
|
84
|
+
{
|
|
85
|
+
if (this != &rhs)
|
|
86
|
+
{
|
|
87
|
+
_varToVAddrs = std::move(rhs._varToVAddrs);
|
|
88
|
+
_locToVAddrs = std::move(rhs._locToVAddrs);
|
|
89
|
+
}
|
|
90
|
+
return *this;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
bool operator==(const ExeState &rhs) const;
|
|
94
|
+
|
|
95
|
+
inline bool operator!=(const ExeState &rhs) const
|
|
96
|
+
{
|
|
97
|
+
return !(*this == rhs);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
bool equals(const ExeState *other) const
|
|
101
|
+
{
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/// Make all value join with the other
|
|
106
|
+
void joinWith(const ExeState &other);
|
|
107
|
+
|
|
108
|
+
/// Make all value meet with the other
|
|
109
|
+
void meetWith(const ExeState &other);
|
|
110
|
+
|
|
111
|
+
virtual u32_t hash() const;
|
|
112
|
+
|
|
113
|
+
/// Print values of all expressions
|
|
114
|
+
virtual void printExprValues(std::ostream &oss) const {}
|
|
115
|
+
|
|
116
|
+
virtual std::string toString() const
|
|
117
|
+
{
|
|
118
|
+
return "";
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
inline ExeState_TYPE getExeStateKind() const
|
|
122
|
+
{
|
|
123
|
+
return _kind;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
inline virtual const VarToVAddrs &getVarToVAddrs() const
|
|
127
|
+
{
|
|
128
|
+
return _varToVAddrs;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
inline virtual const VarToVAddrs &getLocToVAddrs() const
|
|
132
|
+
{
|
|
133
|
+
return _locToVAddrs;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
inline virtual bool inVarToAddrsTable(u32_t id) const
|
|
137
|
+
{
|
|
138
|
+
return _varToVAddrs.find(id) != _varToVAddrs.end();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
inline virtual bool inLocToAddrsTable(u32_t id) const
|
|
142
|
+
{
|
|
143
|
+
return _locToVAddrs.find(id) != _locToVAddrs.end();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
virtual VAddrs &getVAddrs(u32_t id)
|
|
147
|
+
{
|
|
148
|
+
return _varToVAddrs[id];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
inline virtual void storeVAddrs(u32_t addr, const VAddrs &vaddrs)
|
|
152
|
+
{
|
|
153
|
+
assert(isVirtualMemAddress(addr) && "not virtual address?");
|
|
154
|
+
if(isNullPtr(addr)) return;
|
|
155
|
+
u32_t objId = getInternalID(addr);
|
|
156
|
+
_locToVAddrs[objId] = vaddrs;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
inline virtual VAddrs &loadVAddrs(u32_t addr)
|
|
160
|
+
{
|
|
161
|
+
assert(isVirtualMemAddress(addr) && "not virtual address?");
|
|
162
|
+
u32_t objId = getInternalID(addr);
|
|
163
|
+
return _locToVAddrs[objId];
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
inline bool isNullPtr(u32_t addr)
|
|
167
|
+
{
|
|
168
|
+
return getInternalID(addr) == 0;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
protected:
|
|
172
|
+
VarToVAddrs _varToVAddrs{{0, getVirtualMemAddress(0)}};
|
|
173
|
+
VarToVAddrs _locToVAddrs;
|
|
174
|
+
|
|
175
|
+
protected:
|
|
176
|
+
|
|
177
|
+
static bool eqVarToVAddrs(const VarToVAddrs &lhs, const VarToVAddrs &rhs)
|
|
178
|
+
{
|
|
179
|
+
if (lhs.size() != rhs.size()) return false;
|
|
180
|
+
for (const auto &item: lhs)
|
|
181
|
+
{
|
|
182
|
+
auto it = rhs.find(item.first);
|
|
183
|
+
if (it == rhs.end())
|
|
184
|
+
return false;
|
|
185
|
+
if (item.second != it->second)
|
|
186
|
+
{
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
public:
|
|
194
|
+
static z3::context &getContext()
|
|
195
|
+
{
|
|
196
|
+
return Z3Expr::getContext();
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/// The physical address starts with 0x7f...... + idx
|
|
200
|
+
static inline u32_t getVirtualMemAddress(u32_t idx)
|
|
201
|
+
{
|
|
202
|
+
return AddressValue::getVirtualMemAddress(idx);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/// Check bit value of val start with 0x7F000000, filter by 0xFF000000
|
|
206
|
+
static inline bool isVirtualMemAddress(u32_t val)
|
|
207
|
+
{
|
|
208
|
+
return AddressValue::isVirtualMemAddress(val);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/// Return the internal index if idx is an address otherwise return the value of idx
|
|
212
|
+
static inline u32_t getInternalID(u32_t idx)
|
|
213
|
+
{
|
|
214
|
+
return AddressValue::getInternalID(idx);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
}; // end class ExeState
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
} // end namespace SVF
|
|
223
|
+
#endif //Z3_EXAMPLE_EXESTATE_H
|
|
@@ -0,0 +1,425 @@
|
|
|
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
|