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,523 @@
|
|
|
1
|
+
//===- ICFGNode.h -- ICFG node------------------------------------------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-2018> <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
|
+
/*
|
|
24
|
+
* ICFGNode.h
|
|
25
|
+
*
|
|
26
|
+
* Created on: Sep 11, 2018
|
|
27
|
+
* Author: Yulei
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
#ifndef ICFGNODE_H_
|
|
31
|
+
#define ICFGNODE_H_
|
|
32
|
+
|
|
33
|
+
#include "Util/SVFUtil.h"
|
|
34
|
+
#include "Graphs/GenericGraph.h"
|
|
35
|
+
#include "Graphs/ICFGEdge.h"
|
|
36
|
+
|
|
37
|
+
namespace SVF
|
|
38
|
+
{
|
|
39
|
+
|
|
40
|
+
class ICFGNode;
|
|
41
|
+
class RetICFGNode;
|
|
42
|
+
class CallPE;
|
|
43
|
+
class RetPE;
|
|
44
|
+
class SVFStmt;
|
|
45
|
+
class SVFVar;
|
|
46
|
+
class VFGNode;
|
|
47
|
+
|
|
48
|
+
/*!
|
|
49
|
+
* Interprocedural control-flow graph node, representing different kinds of program statements
|
|
50
|
+
* including top-level pointers (ValVar) and address-taken objects (ObjVar)
|
|
51
|
+
*/
|
|
52
|
+
typedef GenericNode<ICFGNode, ICFGEdge> GenericICFGNodeTy;
|
|
53
|
+
|
|
54
|
+
class ICFGNode : public GenericICFGNodeTy
|
|
55
|
+
{
|
|
56
|
+
|
|
57
|
+
public:
|
|
58
|
+
/// 22 kinds of ICFG node
|
|
59
|
+
/// Gep represents offset edge for field sensitivity
|
|
60
|
+
enum ICFGNodeK
|
|
61
|
+
{
|
|
62
|
+
IntraBlock, FunEntryBlock, FunExitBlock, FunCallBlock, FunRetBlock, GlobalBlock
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
typedef ICFGEdge::ICFGEdgeSetTy::iterator iterator;
|
|
66
|
+
typedef ICFGEdge::ICFGEdgeSetTy::const_iterator const_iterator;
|
|
67
|
+
typedef Set<const CallPE *> CallPESet;
|
|
68
|
+
typedef Set<const RetPE *> RetPESet;
|
|
69
|
+
typedef std::list<const VFGNode*> VFGNodeList;
|
|
70
|
+
typedef std::list<const SVFStmt*> SVFStmtList;
|
|
71
|
+
|
|
72
|
+
public:
|
|
73
|
+
/// Constructor
|
|
74
|
+
ICFGNode(NodeID i, ICFGNodeK k) : GenericICFGNodeTy(i, k), fun(nullptr), bb(nullptr)
|
|
75
|
+
{
|
|
76
|
+
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/// Return the function of this ICFGNode
|
|
80
|
+
virtual const SVFFunction* getFun() const
|
|
81
|
+
{
|
|
82
|
+
return fun;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/// Return the function of this ICFGNode
|
|
86
|
+
virtual const SVFBasicBlock* getBB() const
|
|
87
|
+
{
|
|
88
|
+
return bb;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
/// Overloading operator << for dumping ICFG node ID
|
|
93
|
+
//@{
|
|
94
|
+
friend OutStream &operator<<(OutStream &o, const ICFGNode &node)
|
|
95
|
+
{
|
|
96
|
+
o << node.toString();
|
|
97
|
+
return o;
|
|
98
|
+
}
|
|
99
|
+
//@}
|
|
100
|
+
|
|
101
|
+
/// Set/Get methods of VFGNodes
|
|
102
|
+
///@{
|
|
103
|
+
inline void addVFGNode(const VFGNode *vfgNode)
|
|
104
|
+
{
|
|
105
|
+
VFGNodes.push_back(vfgNode);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
inline const VFGNodeList& getVFGNodes() const
|
|
109
|
+
{
|
|
110
|
+
return VFGNodes;
|
|
111
|
+
}
|
|
112
|
+
///@}
|
|
113
|
+
|
|
114
|
+
/// Set/Get methods of VFGNodes
|
|
115
|
+
///@{
|
|
116
|
+
inline void addSVFStmt(const SVFStmt *edge)
|
|
117
|
+
{
|
|
118
|
+
pagEdges.push_back(edge);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
inline const SVFStmtList& getSVFStmts() const
|
|
122
|
+
{
|
|
123
|
+
return pagEdges;
|
|
124
|
+
}
|
|
125
|
+
///@}
|
|
126
|
+
|
|
127
|
+
virtual const std::string toString() const;
|
|
128
|
+
|
|
129
|
+
void dump() const;
|
|
130
|
+
|
|
131
|
+
protected:
|
|
132
|
+
const SVFFunction* fun;
|
|
133
|
+
const SVFBasicBlock* bb;
|
|
134
|
+
VFGNodeList VFGNodes; //< a list of VFGNodes
|
|
135
|
+
SVFStmtList pagEdges; //< a list of PAGEdges
|
|
136
|
+
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
/*!
|
|
140
|
+
* Unique ICFG node stands for all global initializations
|
|
141
|
+
*/
|
|
142
|
+
class GlobalICFGNode : public ICFGNode
|
|
143
|
+
{
|
|
144
|
+
|
|
145
|
+
public:
|
|
146
|
+
GlobalICFGNode(NodeID id) : ICFGNode(id, GlobalBlock)
|
|
147
|
+
{
|
|
148
|
+
bb = nullptr;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
152
|
+
//@{
|
|
153
|
+
static inline bool classof(const GlobalICFGNode *)
|
|
154
|
+
{
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
static inline bool classof(const ICFGNode *node)
|
|
159
|
+
{
|
|
160
|
+
return node->getNodeKind() == GlobalBlock;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
static inline bool classof(const GenericICFGNodeTy *node)
|
|
164
|
+
{
|
|
165
|
+
return node->getNodeKind() == GlobalBlock;
|
|
166
|
+
}
|
|
167
|
+
//@}
|
|
168
|
+
|
|
169
|
+
virtual const std::string toString() const;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
/*!
|
|
173
|
+
* ICFG node stands for a program statement
|
|
174
|
+
*/
|
|
175
|
+
class IntraICFGNode : public ICFGNode
|
|
176
|
+
{
|
|
177
|
+
private:
|
|
178
|
+
const SVFInstruction *inst;
|
|
179
|
+
|
|
180
|
+
public:
|
|
181
|
+
IntraICFGNode(NodeID id, const SVFInstruction *i) : ICFGNode(id, IntraBlock), inst(i)
|
|
182
|
+
{
|
|
183
|
+
fun = inst->getFunction();
|
|
184
|
+
bb = inst->getParent();
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
inline const SVFInstruction *getInst() const
|
|
188
|
+
{
|
|
189
|
+
return inst;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
193
|
+
//@{
|
|
194
|
+
static inline bool classof(const IntraICFGNode *)
|
|
195
|
+
{
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
static inline bool classof(const ICFGNode *node)
|
|
200
|
+
{
|
|
201
|
+
return node->getNodeKind() == IntraBlock;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
static inline bool classof(const GenericICFGNodeTy *node)
|
|
205
|
+
{
|
|
206
|
+
return node->getNodeKind() == IntraBlock;
|
|
207
|
+
}
|
|
208
|
+
//@}
|
|
209
|
+
|
|
210
|
+
const std::string toString() const;
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
class InterICFGNode : public ICFGNode
|
|
214
|
+
{
|
|
215
|
+
|
|
216
|
+
public:
|
|
217
|
+
/// Constructor
|
|
218
|
+
InterICFGNode(NodeID id, ICFGNodeK k) : ICFGNode(id, k)
|
|
219
|
+
{
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
223
|
+
//@{
|
|
224
|
+
static inline bool classof(const InterICFGNode *)
|
|
225
|
+
{
|
|
226
|
+
return true;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
static inline bool classof(const ICFGNode *node)
|
|
230
|
+
{
|
|
231
|
+
return node->getNodeKind() == FunEntryBlock
|
|
232
|
+
|| node->getNodeKind() == FunExitBlock
|
|
233
|
+
|| node->getNodeKind() == FunCallBlock
|
|
234
|
+
|| node->getNodeKind() == FunRetBlock;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
static inline bool classof(const GenericICFGNodeTy *node)
|
|
238
|
+
{
|
|
239
|
+
return node->getNodeKind() == FunEntryBlock
|
|
240
|
+
|| node->getNodeKind() == FunExitBlock
|
|
241
|
+
|| node->getNodeKind() == FunCallBlock
|
|
242
|
+
|| node->getNodeKind() == FunRetBlock;
|
|
243
|
+
}
|
|
244
|
+
//@}
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
/*!
|
|
249
|
+
* Function entry ICFGNode containing a set of FormalParmVFGNodes of a function
|
|
250
|
+
*/
|
|
251
|
+
class FunEntryICFGNode : public InterICFGNode
|
|
252
|
+
{
|
|
253
|
+
|
|
254
|
+
public:
|
|
255
|
+
typedef std::vector<const SVFVar *> FormalParmNodeVec;
|
|
256
|
+
private:
|
|
257
|
+
FormalParmNodeVec FPNodes;
|
|
258
|
+
public:
|
|
259
|
+
FunEntryICFGNode(NodeID id, const SVFFunction* f);
|
|
260
|
+
|
|
261
|
+
/// Return function
|
|
262
|
+
inline const SVFFunction* getFun() const
|
|
263
|
+
{
|
|
264
|
+
return fun;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/// Return the set of formal parameters
|
|
268
|
+
inline const FormalParmNodeVec &getFormalParms() const
|
|
269
|
+
{
|
|
270
|
+
return FPNodes;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/// Add formal parameters
|
|
274
|
+
inline void addFormalParms(const SVFVar *fp)
|
|
275
|
+
{
|
|
276
|
+
FPNodes.push_back(fp);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
///Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
280
|
+
//@{
|
|
281
|
+
static inline bool classof(const FunEntryICFGNode *)
|
|
282
|
+
{
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
static inline bool classof(const InterICFGNode *node)
|
|
287
|
+
{
|
|
288
|
+
return node->getNodeKind() == FunEntryBlock;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
static inline bool classof(const ICFGNode *node)
|
|
292
|
+
{
|
|
293
|
+
return node->getNodeKind() == FunEntryBlock;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
static inline bool classof(const GenericICFGNodeTy *node)
|
|
297
|
+
{
|
|
298
|
+
return node->getNodeKind() == FunEntryBlock;
|
|
299
|
+
}
|
|
300
|
+
//@}
|
|
301
|
+
|
|
302
|
+
const virtual std::string toString() const;
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
/*!
|
|
306
|
+
* Function exit ICFGNode containing (at most one) FormalRetVFGNodes of a function
|
|
307
|
+
*/
|
|
308
|
+
class FunExitICFGNode : public InterICFGNode
|
|
309
|
+
{
|
|
310
|
+
|
|
311
|
+
private:
|
|
312
|
+
const SVFVar *formalRet;
|
|
313
|
+
public:
|
|
314
|
+
FunExitICFGNode(NodeID id, const SVFFunction* f);
|
|
315
|
+
|
|
316
|
+
/// Return function
|
|
317
|
+
inline const SVFFunction* getFun() const
|
|
318
|
+
{
|
|
319
|
+
return fun;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/// Return actual return parameter
|
|
323
|
+
inline const SVFVar *getFormalRet() const
|
|
324
|
+
{
|
|
325
|
+
return formalRet;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/// Add actual return parameter
|
|
329
|
+
inline void addFormalRet(const SVFVar *fr)
|
|
330
|
+
{
|
|
331
|
+
formalRet = fr;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
///Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
335
|
+
//@{
|
|
336
|
+
static inline bool classof(const FunEntryICFGNode *)
|
|
337
|
+
{
|
|
338
|
+
return true;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
static inline bool classof(const ICFGNode *node)
|
|
342
|
+
{
|
|
343
|
+
return node->getNodeKind() == FunExitBlock;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
static inline bool classof(const InterICFGNode *node)
|
|
347
|
+
{
|
|
348
|
+
return node->getNodeKind() == FunExitBlock;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
static inline bool classof(const GenericICFGNodeTy *node)
|
|
352
|
+
{
|
|
353
|
+
return node->getNodeKind() == FunExitBlock;
|
|
354
|
+
}
|
|
355
|
+
//@}
|
|
356
|
+
|
|
357
|
+
virtual const std::string toString() const;
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
/*!
|
|
361
|
+
* Call ICFGNode containing a set of ActualParmVFGNodes at a callsite
|
|
362
|
+
*/
|
|
363
|
+
class CallICFGNode : public InterICFGNode
|
|
364
|
+
{
|
|
365
|
+
|
|
366
|
+
public:
|
|
367
|
+
typedef std::vector<const SVFVar *> ActualParmNodeVec;
|
|
368
|
+
private:
|
|
369
|
+
const SVFInstruction* cs;
|
|
370
|
+
const RetICFGNode* ret;
|
|
371
|
+
ActualParmNodeVec APNodes;
|
|
372
|
+
public:
|
|
373
|
+
CallICFGNode(NodeID id, const SVFInstruction* c) : InterICFGNode(id, FunCallBlock), cs(c), ret(nullptr)
|
|
374
|
+
{
|
|
375
|
+
fun = cs->getFunction();
|
|
376
|
+
bb = cs->getParent();
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/// Return callsite
|
|
380
|
+
inline const SVFInstruction* getCallSite() const
|
|
381
|
+
{
|
|
382
|
+
return cs;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/// Return callsite
|
|
386
|
+
inline const RetICFGNode* getRetICFGNode() const
|
|
387
|
+
{
|
|
388
|
+
assert(ret && "RetICFGNode not set?");
|
|
389
|
+
return ret;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/// Return callsite
|
|
393
|
+
inline void setRetICFGNode(const RetICFGNode* r)
|
|
394
|
+
{
|
|
395
|
+
ret = r;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/// Return callsite
|
|
399
|
+
inline const SVFFunction* getCaller() const
|
|
400
|
+
{
|
|
401
|
+
return cs->getFunction();
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/// Return Basic Block
|
|
405
|
+
inline const SVFBasicBlock* getParent() const
|
|
406
|
+
{
|
|
407
|
+
return cs->getParent();
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/// Return true if this is an indirect call
|
|
411
|
+
inline bool isIndirectCall() const
|
|
412
|
+
{
|
|
413
|
+
return nullptr == SVFUtil::getCallee(cs);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/// Return the set of actual parameters
|
|
417
|
+
inline const ActualParmNodeVec &getActualParms() const
|
|
418
|
+
{
|
|
419
|
+
return APNodes;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/// Add actual parameters
|
|
423
|
+
inline void addActualParms(const SVFVar *ap)
|
|
424
|
+
{
|
|
425
|
+
APNodes.push_back(ap);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
///Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
429
|
+
//@{
|
|
430
|
+
static inline bool classof(const CallICFGNode *)
|
|
431
|
+
{
|
|
432
|
+
return true;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
static inline bool classof(const ICFGNode *node)
|
|
436
|
+
{
|
|
437
|
+
return node->getNodeKind() == FunCallBlock;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
static inline bool classof(const InterICFGNode *node)
|
|
441
|
+
{
|
|
442
|
+
return node->getNodeKind() == FunCallBlock;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
static inline bool classof(const GenericICFGNodeTy *node)
|
|
446
|
+
{
|
|
447
|
+
return node->getNodeKind() == FunCallBlock;
|
|
448
|
+
}
|
|
449
|
+
//@}
|
|
450
|
+
|
|
451
|
+
virtual const std::string toString() const;
|
|
452
|
+
};
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
/*!
|
|
456
|
+
* Return ICFGNode containing (at most one) ActualRetVFGNode at a callsite
|
|
457
|
+
*/
|
|
458
|
+
class RetICFGNode : public InterICFGNode
|
|
459
|
+
{
|
|
460
|
+
|
|
461
|
+
private:
|
|
462
|
+
const SVFInstruction* cs;
|
|
463
|
+
const SVFVar *actualRet;
|
|
464
|
+
const CallICFGNode* callBlockNode;
|
|
465
|
+
public:
|
|
466
|
+
RetICFGNode(NodeID id, const SVFInstruction* c, CallICFGNode* cb) :
|
|
467
|
+
InterICFGNode(id, FunRetBlock), cs(c), actualRet(nullptr), callBlockNode(cb)
|
|
468
|
+
{
|
|
469
|
+
fun = cs->getFunction();
|
|
470
|
+
bb = cs->getParent();
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/// Return callsite
|
|
474
|
+
inline const SVFInstruction* getCallSite() const
|
|
475
|
+
{
|
|
476
|
+
return cs;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
inline const CallICFGNode* getCallICFGNode() const
|
|
480
|
+
{
|
|
481
|
+
return callBlockNode;
|
|
482
|
+
}
|
|
483
|
+
/// Return actual return parameter
|
|
484
|
+
inline const SVFVar *getActualRet() const
|
|
485
|
+
{
|
|
486
|
+
return actualRet;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
/// Add actual return parameter
|
|
490
|
+
inline void addActualRet(const SVFVar *ar)
|
|
491
|
+
{
|
|
492
|
+
actualRet = ar;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
///Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
496
|
+
//@{
|
|
497
|
+
static inline bool classof(const RetICFGNode *)
|
|
498
|
+
{
|
|
499
|
+
return true;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
static inline bool classof(const InterICFGNode *node)
|
|
503
|
+
{
|
|
504
|
+
return node->getNodeKind() == FunRetBlock;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
static inline bool classof(const ICFGNode *node)
|
|
508
|
+
{
|
|
509
|
+
return node->getNodeKind() == FunRetBlock;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
static inline bool classof(const GenericICFGNodeTy *node)
|
|
513
|
+
{
|
|
514
|
+
return node->getNodeKind() == FunRetBlock;
|
|
515
|
+
}
|
|
516
|
+
//@}
|
|
517
|
+
|
|
518
|
+
virtual const std::string toString() const;
|
|
519
|
+
};
|
|
520
|
+
|
|
521
|
+
} // End namespace SVF
|
|
522
|
+
|
|
523
|
+
#endif /* ICFGNode_H_ */
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
//===- ICFGStat.h ----------------------------------------------------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-2018> <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
|
+
* ICFGStat.h
|
|
24
|
+
*
|
|
25
|
+
* Created on: 12Sep.,2018
|
|
26
|
+
* Author: yulei
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
#ifndef INCLUDE_UTIL_ICFGSTAT_H_
|
|
30
|
+
#define INCLUDE_UTIL_ICFGSTAT_H_
|
|
31
|
+
|
|
32
|
+
#include "Util/PTAStat.h"
|
|
33
|
+
#include "Graphs/ICFG.h"
|
|
34
|
+
#include <iomanip>
|
|
35
|
+
|
|
36
|
+
namespace SVF
|
|
37
|
+
{
|
|
38
|
+
|
|
39
|
+
class ICFGStat : public PTAStat
|
|
40
|
+
{
|
|
41
|
+
|
|
42
|
+
private:
|
|
43
|
+
ICFG *icfg;
|
|
44
|
+
int numOfNodes;
|
|
45
|
+
int numOfCallNodes;
|
|
46
|
+
int numOfRetNodes;
|
|
47
|
+
int numOfEntryNodes;
|
|
48
|
+
int numOfExitNodes;
|
|
49
|
+
int numOfIntraNodes;
|
|
50
|
+
|
|
51
|
+
int numOfEdges;
|
|
52
|
+
int numOfCallEdges;
|
|
53
|
+
int numOfRetEdges;
|
|
54
|
+
int numOfIntraEdges;
|
|
55
|
+
|
|
56
|
+
public:
|
|
57
|
+
typedef Set<const ICFGNode *> ICFGNodeSet;
|
|
58
|
+
|
|
59
|
+
ICFGStat(ICFG *cfg) : PTAStat(nullptr), icfg(cfg)
|
|
60
|
+
{
|
|
61
|
+
numOfNodes = 0;
|
|
62
|
+
numOfCallNodes = 0;
|
|
63
|
+
numOfRetNodes = 0;
|
|
64
|
+
numOfEntryNodes = 0;
|
|
65
|
+
numOfExitNodes = 0;
|
|
66
|
+
numOfIntraNodes = 0;
|
|
67
|
+
|
|
68
|
+
numOfEdges = 0;
|
|
69
|
+
numOfCallEdges = 0;
|
|
70
|
+
numOfRetEdges = 0;
|
|
71
|
+
numOfIntraEdges = 0;
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
void performStat()
|
|
76
|
+
{
|
|
77
|
+
|
|
78
|
+
countStat();
|
|
79
|
+
|
|
80
|
+
PTNumStatMap["ICFGNode"] = numOfNodes;
|
|
81
|
+
PTNumStatMap["IntraICFGNode"] = numOfIntraNodes;
|
|
82
|
+
PTNumStatMap["CallICFGNode"] = numOfCallNodes;
|
|
83
|
+
PTNumStatMap["RetICFGNode"] = numOfRetNodes;
|
|
84
|
+
PTNumStatMap["FunEntryICFGNode"] = numOfEntryNodes;
|
|
85
|
+
PTNumStatMap["FunExitICFGNode"] = numOfExitNodes;
|
|
86
|
+
|
|
87
|
+
PTNumStatMap["ICFGEdge"] = numOfEdges;
|
|
88
|
+
PTNumStatMap["CallCFGEdge"] = numOfCallEdges;
|
|
89
|
+
PTNumStatMap["RetCFGEdge"] = numOfRetEdges;
|
|
90
|
+
PTNumStatMap["IntraCFGEdge"] = numOfIntraEdges;
|
|
91
|
+
|
|
92
|
+
printStat("ICFG Stat");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
void performStatforIFDS()
|
|
96
|
+
{
|
|
97
|
+
|
|
98
|
+
countStat();
|
|
99
|
+
PTNumStatMap["ICFGNode(N)"] = numOfNodes;
|
|
100
|
+
PTNumStatMap["CallICFGNode(Call)"] = numOfCallNodes;
|
|
101
|
+
PTNumStatMap["ICFGEdge(E)"] = numOfEdges;
|
|
102
|
+
printStat("IFDS Stat");
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
void countStat()
|
|
106
|
+
{
|
|
107
|
+
ICFG::ICFGNodeIDToNodeMapTy::iterator it = icfg->begin();
|
|
108
|
+
ICFG::ICFGNodeIDToNodeMapTy::iterator eit = icfg->end();
|
|
109
|
+
for (; it != eit; ++it)
|
|
110
|
+
{
|
|
111
|
+
numOfNodes++;
|
|
112
|
+
|
|
113
|
+
ICFGNode *node = it->second;
|
|
114
|
+
|
|
115
|
+
if (SVFUtil::isa<IntraICFGNode>(node))
|
|
116
|
+
numOfIntraNodes++;
|
|
117
|
+
else if (SVFUtil::isa<CallICFGNode>(node))
|
|
118
|
+
numOfCallNodes++;
|
|
119
|
+
else if (SVFUtil::isa<RetICFGNode>(node))
|
|
120
|
+
numOfRetNodes++;
|
|
121
|
+
else if (SVFUtil::isa<FunEntryICFGNode>(node))
|
|
122
|
+
numOfEntryNodes++;
|
|
123
|
+
else if (SVFUtil::isa<FunExitICFGNode>(node))
|
|
124
|
+
numOfExitNodes++;
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
ICFGEdge::ICFGEdgeSetTy::iterator edgeIt =
|
|
128
|
+
it->second->OutEdgeBegin();
|
|
129
|
+
ICFGEdge::ICFGEdgeSetTy::iterator edgeEit =
|
|
130
|
+
it->second->OutEdgeEnd();
|
|
131
|
+
for (; edgeIt != edgeEit; ++edgeIt)
|
|
132
|
+
{
|
|
133
|
+
const ICFGEdge *edge = *edgeIt;
|
|
134
|
+
numOfEdges++;
|
|
135
|
+
if (edge->isCallCFGEdge())
|
|
136
|
+
numOfCallEdges++;
|
|
137
|
+
else if (edge->isRetCFGEdge())
|
|
138
|
+
numOfRetEdges++;
|
|
139
|
+
else if (edge->isIntraCFGEdge())
|
|
140
|
+
numOfIntraEdges++;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
void printStat(std::string statname)
|
|
146
|
+
{
|
|
147
|
+
|
|
148
|
+
SVFUtil::outs() << "\n************ " << statname << " ***************\n";
|
|
149
|
+
SVFUtil::outs().flags(std::ios::left);
|
|
150
|
+
unsigned field_width = 20;
|
|
151
|
+
for(NUMStatMap::iterator it = PTNumStatMap.begin(), eit = PTNumStatMap.end(); it!=eit; ++it)
|
|
152
|
+
{
|
|
153
|
+
// format out put with width 20 space
|
|
154
|
+
SVFUtil::outs() << std::setw(field_width) << it->first << it->second << "\n";
|
|
155
|
+
}
|
|
156
|
+
PTNumStatMap.clear();
|
|
157
|
+
SVFUtil::outs().flush();
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
} // End namespace SVF
|
|
162
|
+
|
|
163
|
+
#endif /* INCLUDE_UTIL_ICFGSTAT_H_ */
|
|
164
|
+
|