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
|
File without changes
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
//===- ThreadAPI.h -- API for threads-----------------------------------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-2017> <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
|
+
* ThreadAPI.h
|
|
25
|
+
*
|
|
26
|
+
* Created on: Jan 21, 2014
|
|
27
|
+
* Author: Yulei Sui, dye
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
#ifndef THREADAPI_H_
|
|
31
|
+
#define THREADAPI_H_
|
|
32
|
+
|
|
33
|
+
#include "SVFIR/SVFValue.h"
|
|
34
|
+
|
|
35
|
+
namespace SVF
|
|
36
|
+
{
|
|
37
|
+
|
|
38
|
+
class SVFModule;
|
|
39
|
+
|
|
40
|
+
/*
|
|
41
|
+
* ThreadAPI class contains interfaces for pthread programs
|
|
42
|
+
*/
|
|
43
|
+
class ThreadAPI
|
|
44
|
+
{
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
enum TD_TYPE
|
|
48
|
+
{
|
|
49
|
+
TD_DUMMY = 0, /// dummy type
|
|
50
|
+
TD_FORK, /// create a new thread
|
|
51
|
+
TD_JOIN, /// wait for a thread to join
|
|
52
|
+
TD_DETACH, /// detach a thread directly instead wait for it to join
|
|
53
|
+
TD_ACQUIRE, /// acquire a lock
|
|
54
|
+
TD_TRY_ACQUIRE, /// try to acquire a lock
|
|
55
|
+
TD_RELEASE, /// release a lock
|
|
56
|
+
TD_EXIT, /// exit/kill a thread
|
|
57
|
+
TD_CANCEL, /// cancel a thread by another
|
|
58
|
+
TD_COND_WAIT, /// wait a condition
|
|
59
|
+
TD_COND_SIGNAL, /// signal a condition
|
|
60
|
+
TD_COND_BROADCAST, /// broadcast a condition
|
|
61
|
+
TD_MUTEX_INI, /// initial a mutex variable
|
|
62
|
+
TD_MUTEX_DESTROY, /// initial a mutex variable
|
|
63
|
+
TD_CONDVAR_INI, /// initial a mutex variable
|
|
64
|
+
TD_CONDVAR_DESTROY, /// initial a mutex variable
|
|
65
|
+
TD_BAR_INIT, /// Barrier init
|
|
66
|
+
TD_BAR_WAIT, /// Barrier wait
|
|
67
|
+
HARE_PAR_FOR
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
typedef Map<std::string, TD_TYPE> TDAPIMap;
|
|
71
|
+
|
|
72
|
+
private:
|
|
73
|
+
/// API map, from a string to threadAPI type
|
|
74
|
+
TDAPIMap tdAPIMap;
|
|
75
|
+
|
|
76
|
+
/// Constructor
|
|
77
|
+
ThreadAPI ()
|
|
78
|
+
{
|
|
79
|
+
init();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/// Initialize the map
|
|
83
|
+
void init();
|
|
84
|
+
|
|
85
|
+
/// Static reference
|
|
86
|
+
static ThreadAPI* tdAPI;
|
|
87
|
+
|
|
88
|
+
/// Get the function type if it is a threadAPI function
|
|
89
|
+
inline TD_TYPE getType(const SVFFunction* F) const
|
|
90
|
+
{
|
|
91
|
+
if(F)
|
|
92
|
+
{
|
|
93
|
+
TDAPIMap::const_iterator it= tdAPIMap.find(F->getName());
|
|
94
|
+
if(it != tdAPIMap.end())
|
|
95
|
+
return it->second;
|
|
96
|
+
}
|
|
97
|
+
return TD_DUMMY;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
public:
|
|
101
|
+
/// Return a static reference
|
|
102
|
+
static ThreadAPI* getThreadAPI()
|
|
103
|
+
{
|
|
104
|
+
if(tdAPI == nullptr)
|
|
105
|
+
{
|
|
106
|
+
tdAPI = new ThreadAPI();
|
|
107
|
+
}
|
|
108
|
+
return tdAPI;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
static void destroy()
|
|
112
|
+
{
|
|
113
|
+
if(tdAPI != nullptr)
|
|
114
|
+
{
|
|
115
|
+
delete tdAPI;
|
|
116
|
+
tdAPI = nullptr;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/// Return the callee/callsite/func
|
|
121
|
+
//@{
|
|
122
|
+
const SVFFunction* getCallee(const SVFInstruction *inst) const;
|
|
123
|
+
const SVFFunction* getCallee(const CallSite cs) const;
|
|
124
|
+
const CallSite getSVFCallSite(const SVFInstruction *inst) const;
|
|
125
|
+
//@}
|
|
126
|
+
|
|
127
|
+
/// Return true if this call create a new thread
|
|
128
|
+
//@{
|
|
129
|
+
inline bool isTDFork(const SVFInstruction *inst) const
|
|
130
|
+
{
|
|
131
|
+
return getType(getCallee(inst)) == TD_FORK;
|
|
132
|
+
}
|
|
133
|
+
inline bool isTDFork(CallSite cs) const
|
|
134
|
+
{
|
|
135
|
+
return isTDFork(cs.getInstruction());
|
|
136
|
+
}
|
|
137
|
+
//@}
|
|
138
|
+
|
|
139
|
+
/// Return true if this call proceeds a hare_parallel_for
|
|
140
|
+
//@{
|
|
141
|
+
inline bool isHareParFor(const SVFInstruction *inst) const
|
|
142
|
+
{
|
|
143
|
+
return getType(getCallee(inst)) == HARE_PAR_FOR;
|
|
144
|
+
}
|
|
145
|
+
inline bool isHareParFor(CallSite cs) const
|
|
146
|
+
{
|
|
147
|
+
return isTDFork(cs.getInstruction());
|
|
148
|
+
}
|
|
149
|
+
//@}
|
|
150
|
+
|
|
151
|
+
/// Return arguments/attributes of pthread_create / hare_parallel_for
|
|
152
|
+
//@{
|
|
153
|
+
/// Return the first argument of the call,
|
|
154
|
+
/// Note that, it is the pthread_t pointer
|
|
155
|
+
inline const SVFValue* getForkedThread(const SVFInstruction *inst) const
|
|
156
|
+
{
|
|
157
|
+
assert(isTDFork(inst) && "not a thread fork function!");
|
|
158
|
+
CallSite cs = getSVFCallSite(inst);
|
|
159
|
+
return cs.getArgument(0);
|
|
160
|
+
}
|
|
161
|
+
inline const SVFValue* getForkedThread(CallSite cs) const
|
|
162
|
+
{
|
|
163
|
+
return getForkedThread(cs.getInstruction());
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/// Return the third argument of the call,
|
|
167
|
+
/// Note that, it could be function type or a void* pointer
|
|
168
|
+
inline const SVFValue* getForkedFun(const SVFInstruction *inst) const
|
|
169
|
+
{
|
|
170
|
+
assert(isTDFork(inst) && "not a thread fork function!");
|
|
171
|
+
CallSite cs = getSVFCallSite(inst);
|
|
172
|
+
return cs.getArgument(2);
|
|
173
|
+
}
|
|
174
|
+
inline const SVFValue* getForkedFun(CallSite cs) const
|
|
175
|
+
{
|
|
176
|
+
return getForkedFun(cs.getInstruction());
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/// Return the forth argument of the call,
|
|
180
|
+
/// Note that, it is the sole argument of start routine ( a void* pointer )
|
|
181
|
+
inline const SVFValue* getActualParmAtForkSite(const SVFInstruction *inst) const
|
|
182
|
+
{
|
|
183
|
+
assert(isTDFork(inst) && "not a thread fork function!");
|
|
184
|
+
CallSite cs = getSVFCallSite(inst);
|
|
185
|
+
return cs.getArgument(3);
|
|
186
|
+
}
|
|
187
|
+
inline const SVFValue* getActualParmAtForkSite(CallSite cs) const
|
|
188
|
+
{
|
|
189
|
+
return getActualParmAtForkSite(cs.getInstruction());
|
|
190
|
+
}
|
|
191
|
+
//@}
|
|
192
|
+
|
|
193
|
+
/// Get the task function (i.e., the 5th parameter) of the hare_parallel_for call
|
|
194
|
+
//@{
|
|
195
|
+
inline const SVFValue* getTaskFuncAtHareParForSite(const SVFInstruction *inst) const
|
|
196
|
+
{
|
|
197
|
+
assert(isHareParFor(inst) && "not a hare_parallel_for function!");
|
|
198
|
+
CallSite cs = getSVFCallSite(inst);
|
|
199
|
+
return cs.getArgument(4);
|
|
200
|
+
}
|
|
201
|
+
inline const SVFValue* getTaskFuncAtHareParForSite(CallSite cs) const
|
|
202
|
+
{
|
|
203
|
+
return getTaskFuncAtHareParForSite(cs.getInstruction());
|
|
204
|
+
}
|
|
205
|
+
//@}
|
|
206
|
+
|
|
207
|
+
/// Get the task data (i.e., the 6th parameter) of the hare_parallel_for call
|
|
208
|
+
//@{
|
|
209
|
+
inline const SVFValue* getTaskDataAtHareParForSite(const SVFInstruction *inst) const
|
|
210
|
+
{
|
|
211
|
+
assert(isHareParFor(inst) && "not a hare_parallel_for function!");
|
|
212
|
+
CallSite cs = getSVFCallSite(inst);
|
|
213
|
+
return cs.getArgument(5);
|
|
214
|
+
}
|
|
215
|
+
inline const SVFValue* getTaskDataAtHareParForSite(CallSite cs) const
|
|
216
|
+
{
|
|
217
|
+
return getTaskDataAtHareParForSite(cs.getInstruction());
|
|
218
|
+
}
|
|
219
|
+
//@}
|
|
220
|
+
|
|
221
|
+
/// Return true if this call wait for a worker thread
|
|
222
|
+
//@{
|
|
223
|
+
inline bool isTDJoin(const SVFInstruction *inst) const
|
|
224
|
+
{
|
|
225
|
+
return getType(getCallee(inst)) == TD_JOIN;
|
|
226
|
+
}
|
|
227
|
+
inline bool isTDJoin(CallSite cs) const
|
|
228
|
+
{
|
|
229
|
+
return isTDJoin(cs.getInstruction());
|
|
230
|
+
}
|
|
231
|
+
//@}
|
|
232
|
+
|
|
233
|
+
/// Return arguments/attributes of pthread_join
|
|
234
|
+
//@{
|
|
235
|
+
/// Return the first argument of the call,
|
|
236
|
+
/// Note that, it is the pthread_t pointer
|
|
237
|
+
const SVFValue* getJoinedThread(const SVFInstruction *inst) const;
|
|
238
|
+
inline const SVFValue* getJoinedThread(CallSite cs) const
|
|
239
|
+
{
|
|
240
|
+
return getJoinedThread(cs.getInstruction());
|
|
241
|
+
}
|
|
242
|
+
/// Return the send argument of the call,
|
|
243
|
+
/// Note that, it is the pthread_t pointer
|
|
244
|
+
inline const SVFValue* getRetParmAtJoinedSite(const SVFInstruction *inst) const
|
|
245
|
+
{
|
|
246
|
+
assert(isTDJoin(inst) && "not a thread join function!");
|
|
247
|
+
CallSite cs = getSVFCallSite(inst);
|
|
248
|
+
return cs.getArgument(1);
|
|
249
|
+
}
|
|
250
|
+
inline const SVFValue* getRetParmAtJoinedSite(CallSite cs) const
|
|
251
|
+
{
|
|
252
|
+
return getRetParmAtJoinedSite(cs.getInstruction());
|
|
253
|
+
}
|
|
254
|
+
//@}
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
/// Return true if this call exits/terminate a thread
|
|
258
|
+
//@{
|
|
259
|
+
inline bool isTDExit(const SVFInstruction *inst) const
|
|
260
|
+
{
|
|
261
|
+
return getType(getCallee(inst)) == TD_EXIT;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
inline bool isTDExit(CallSite cs) const
|
|
265
|
+
{
|
|
266
|
+
return getType(getCallee(cs)) == TD_EXIT;
|
|
267
|
+
}
|
|
268
|
+
//@}
|
|
269
|
+
|
|
270
|
+
/// Return true if this call acquire a lock
|
|
271
|
+
//@{
|
|
272
|
+
inline bool isTDAcquire(const SVFInstruction *inst) const
|
|
273
|
+
{
|
|
274
|
+
return getType(getCallee(inst)) == TD_ACQUIRE;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
inline bool isTDAcquire(CallSite cs) const
|
|
278
|
+
{
|
|
279
|
+
return getType(getCallee(cs)) == TD_ACQUIRE;
|
|
280
|
+
}
|
|
281
|
+
//@}
|
|
282
|
+
|
|
283
|
+
/// Return true if this call release a lock
|
|
284
|
+
//@{
|
|
285
|
+
inline bool isTDRelease(const SVFInstruction *inst) const
|
|
286
|
+
{
|
|
287
|
+
return getType(getCallee(inst)) == TD_RELEASE;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
inline bool isTDRelease(CallSite cs) const
|
|
291
|
+
{
|
|
292
|
+
return getType(getCallee(cs)) == TD_RELEASE;
|
|
293
|
+
}
|
|
294
|
+
//@}
|
|
295
|
+
|
|
296
|
+
/// Return lock value
|
|
297
|
+
//@{
|
|
298
|
+
/// First argument of pthread_mutex_lock/pthread_mutex_unlock
|
|
299
|
+
inline const SVFValue* getLockVal(const SVFInstruction *inst) const
|
|
300
|
+
{
|
|
301
|
+
assert((isTDAcquire(inst) || isTDRelease(inst)) && "not a lock acquire or release function");
|
|
302
|
+
CallSite cs = getSVFCallSite(inst);
|
|
303
|
+
return cs.getArgument(0);
|
|
304
|
+
}
|
|
305
|
+
inline const SVFValue* getLockVal(CallSite cs) const
|
|
306
|
+
{
|
|
307
|
+
return getLockVal(cs.getInstruction());
|
|
308
|
+
}
|
|
309
|
+
//@}
|
|
310
|
+
|
|
311
|
+
/// Return true if this call waits for a barrier
|
|
312
|
+
//@{
|
|
313
|
+
inline bool isTDBarWait(const SVFInstruction *inst) const
|
|
314
|
+
{
|
|
315
|
+
return getType(getCallee(inst)) == TD_BAR_WAIT;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
inline bool isTDBarWait(CallSite cs) const
|
|
319
|
+
{
|
|
320
|
+
return getType(getCallee(cs)) == TD_BAR_WAIT;
|
|
321
|
+
}
|
|
322
|
+
//@}
|
|
323
|
+
|
|
324
|
+
void performAPIStat(SVFModule* m);
|
|
325
|
+
void statInit(Map<std::string, u32_t>& tdAPIStatMap);
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
} // End namespace SVF
|
|
329
|
+
|
|
330
|
+
#endif /* THREADAPI_H_ */
|
|
File without changes
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
//===- WorkList.h -- Internal worklist used in SVF---------------------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-2017> <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
|
+
* @file: WorkList.h
|
|
25
|
+
* @author: yesen
|
|
26
|
+
* @date: 06/12/2013
|
|
27
|
+
* @version: 1.0
|
|
28
|
+
*
|
|
29
|
+
* @section LICENSE
|
|
30
|
+
*
|
|
31
|
+
* @section DESCRIPTION
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
#ifndef WORKLIST_H_
|
|
37
|
+
#define WORKLIST_H_
|
|
38
|
+
|
|
39
|
+
#include "SVFIR/SVFValue.h"
|
|
40
|
+
|
|
41
|
+
#include <assert.h>
|
|
42
|
+
#include <cstdlib>
|
|
43
|
+
#include <vector>
|
|
44
|
+
#include <deque>
|
|
45
|
+
#include <set>
|
|
46
|
+
|
|
47
|
+
namespace SVF
|
|
48
|
+
{
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Worklist with "first come first go" order.
|
|
52
|
+
* New nodes pushed at back and popped from front.
|
|
53
|
+
* Elements in the list are unique as they're recorded by Set.
|
|
54
|
+
*/
|
|
55
|
+
template<class Data>
|
|
56
|
+
class List
|
|
57
|
+
{
|
|
58
|
+
class ListNode
|
|
59
|
+
{
|
|
60
|
+
public:
|
|
61
|
+
ListNode(const Data &d)
|
|
62
|
+
{
|
|
63
|
+
data = d;
|
|
64
|
+
next = nullptr;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
~ListNode() {}
|
|
68
|
+
|
|
69
|
+
Data data;
|
|
70
|
+
ListNode *next;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
typedef Set<Data> DataSet;
|
|
74
|
+
typedef ListNode Node;
|
|
75
|
+
|
|
76
|
+
public:
|
|
77
|
+
List()
|
|
78
|
+
{
|
|
79
|
+
head = nullptr;
|
|
80
|
+
tail = nullptr;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
~List() {}
|
|
84
|
+
|
|
85
|
+
inline bool empty() const
|
|
86
|
+
{
|
|
87
|
+
return (head == nullptr);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
inline bool find(const Data &data) const
|
|
91
|
+
{
|
|
92
|
+
return nodeSet.find(data) != nodeSet.end();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
void push(const Data &data)
|
|
96
|
+
{
|
|
97
|
+
if (nodeSet.find(data) == nodeSet.end())
|
|
98
|
+
{
|
|
99
|
+
Node *new_node = new Node(data);
|
|
100
|
+
if (head == nullptr)
|
|
101
|
+
head = new_node;// the list is empty
|
|
102
|
+
else
|
|
103
|
+
tail->next = new_node;
|
|
104
|
+
tail = new_node;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
Data pop()
|
|
109
|
+
{
|
|
110
|
+
assert(head != nullptr && "list is empty");
|
|
111
|
+
/// get node from list head
|
|
112
|
+
Node *head_node = head;
|
|
113
|
+
|
|
114
|
+
/// change list head to the next node
|
|
115
|
+
head = head->next;
|
|
116
|
+
if (head == nullptr)
|
|
117
|
+
tail = nullptr; /// the last node is popped.
|
|
118
|
+
|
|
119
|
+
Data data = head_node->data;
|
|
120
|
+
nodeSet.erase(data);
|
|
121
|
+
delete head_node;
|
|
122
|
+
return data;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
private:
|
|
126
|
+
DataSet nodeSet;
|
|
127
|
+
Node *head;
|
|
128
|
+
Node *tail;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Worklist with "first in first out" order.
|
|
133
|
+
* New nodes will be pushed at back and popped from front.
|
|
134
|
+
* Elements in the list are unique as they're recorded by Set.
|
|
135
|
+
*/
|
|
136
|
+
template<class Data>
|
|
137
|
+
class FIFOWorkList
|
|
138
|
+
{
|
|
139
|
+
typedef Set<Data> DataSet;
|
|
140
|
+
typedef std::deque<Data> DataDeque;
|
|
141
|
+
public:
|
|
142
|
+
FIFOWorkList() {}
|
|
143
|
+
|
|
144
|
+
~FIFOWorkList() {}
|
|
145
|
+
|
|
146
|
+
inline bool empty() const
|
|
147
|
+
{
|
|
148
|
+
return data_list.empty();
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
inline u32_t size() const
|
|
152
|
+
{
|
|
153
|
+
assert(data_list.size() == data_set.size() && "list and set must be the same size!");
|
|
154
|
+
return data_list.size();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
inline bool find(const Data &data) const
|
|
158
|
+
{
|
|
159
|
+
return data_set.find(data) != data_set.end();
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Push a data into the work list.
|
|
164
|
+
*/
|
|
165
|
+
inline bool push(const Data &data)
|
|
166
|
+
{
|
|
167
|
+
if (!find(data))
|
|
168
|
+
{
|
|
169
|
+
data_list.push_back(data);
|
|
170
|
+
data_set.insert(data);
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
else
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Remove a data from the END of work list, no return value
|
|
179
|
+
*/
|
|
180
|
+
inline void removeFront()
|
|
181
|
+
{
|
|
182
|
+
assert(!empty() && "work list is empty");
|
|
183
|
+
data_set.erase(front());
|
|
184
|
+
data_list.pop_front();
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Get reference of top data from the END of work list.
|
|
189
|
+
*/
|
|
190
|
+
inline Data &front()
|
|
191
|
+
{
|
|
192
|
+
assert(!empty() && "work list is empty");
|
|
193
|
+
Data &data = data_list.front();
|
|
194
|
+
return data;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Pop a data from the END of work list.
|
|
199
|
+
*/
|
|
200
|
+
inline Data pop()
|
|
201
|
+
{
|
|
202
|
+
assert(!empty() && "work list is empty");
|
|
203
|
+
Data data = data_list.front();
|
|
204
|
+
data_list.pop_front();
|
|
205
|
+
data_set.erase(data);
|
|
206
|
+
return data;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/*!
|
|
210
|
+
* Clear all the data
|
|
211
|
+
*/
|
|
212
|
+
inline void clear()
|
|
213
|
+
{
|
|
214
|
+
data_list.clear();
|
|
215
|
+
data_set.clear();
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
private:
|
|
219
|
+
DataSet data_set; ///< store all data in the work list.
|
|
220
|
+
DataDeque data_list; ///< work list using std::vector.
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Worlist with "first in last out" order.
|
|
225
|
+
* New nodes will be pushed at back and popped from back.
|
|
226
|
+
* Elements in the list are unique as they're recorded by Set.
|
|
227
|
+
*/
|
|
228
|
+
template<class Data>
|
|
229
|
+
class FILOWorkList
|
|
230
|
+
{
|
|
231
|
+
typedef Set<Data> DataSet;
|
|
232
|
+
typedef std::vector<Data> DataVector;
|
|
233
|
+
public:
|
|
234
|
+
FILOWorkList() {}
|
|
235
|
+
|
|
236
|
+
~FILOWorkList() {}
|
|
237
|
+
|
|
238
|
+
inline bool empty() const
|
|
239
|
+
{
|
|
240
|
+
return data_list.empty();
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
inline u32_t size() const
|
|
244
|
+
{
|
|
245
|
+
assert(data_list.size() == data_set.size() && "list and set must be the same size!");
|
|
246
|
+
return data_list.size();
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
inline bool find(const Data &data) const
|
|
250
|
+
{
|
|
251
|
+
return data_set.find(data) != data_set.end();;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Push a data into the work list.
|
|
256
|
+
*/
|
|
257
|
+
inline bool push(const Data &data)
|
|
258
|
+
{
|
|
259
|
+
if (!find(data))
|
|
260
|
+
{
|
|
261
|
+
data_list.push_back(data);
|
|
262
|
+
data_set.insert(data);
|
|
263
|
+
return true;
|
|
264
|
+
}
|
|
265
|
+
else
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Pop a data from the END of work list.
|
|
271
|
+
*/
|
|
272
|
+
inline Data pop()
|
|
273
|
+
{
|
|
274
|
+
assert(!empty() && "work list is empty");
|
|
275
|
+
Data data = data_list.back();
|
|
276
|
+
data_list.pop_back();
|
|
277
|
+
data_set.erase(data);
|
|
278
|
+
return data;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Remove a data from the END of work list, no return value
|
|
283
|
+
*/
|
|
284
|
+
inline void removeBack()
|
|
285
|
+
{
|
|
286
|
+
assert(!empty() && "work list is empty");
|
|
287
|
+
data_set.erase(back());
|
|
288
|
+
data_list.pop_back();
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Get reference of top data from the END of work list.
|
|
293
|
+
*/
|
|
294
|
+
inline Data &back()
|
|
295
|
+
{
|
|
296
|
+
assert(!empty() && "work list is empty");
|
|
297
|
+
Data &data = data_list.back();
|
|
298
|
+
return data;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/*!
|
|
302
|
+
* Clear all the data
|
|
303
|
+
*/
|
|
304
|
+
inline void clear()
|
|
305
|
+
{
|
|
306
|
+
data_list.clear();
|
|
307
|
+
data_set.clear();
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
private:
|
|
311
|
+
DataSet data_set; ///< store all data in the work list.
|
|
312
|
+
DataVector data_list; ///< work list using std::vector.
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
} // End namespace SVF
|
|
316
|
+
|
|
317
|
+
#endif /* WORKLIST_H_ */
|