svf-lib 1.0.2643 → 1.0.2655
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/.github/workflows/publish-svf-lib.yml +44 -12
- package/SVF-linux-aarch64/bin/ae +0 -0
- package/SVF-linux-aarch64/bin/cfl +0 -0
- package/SVF-linux-aarch64/bin/mta +0 -0
- package/SVF-linux-aarch64/bin/svf-ex +0 -0
- package/SVF-linux-aarch64/bin/wpa +0 -0
- package/SVF-linux-aarch64/include/AE/Core/AbstractState.h +1 -1
- package/SVF-linux-aarch64/include/AE/Core/ICFGWTO.h +4 -1
- package/SVF-linux-aarch64/include/AE/Core/NumericValue.h +2 -1
- package/SVF-linux-aarch64/include/AE/Core/RelExeState.h +1 -0
- package/SVF-linux-aarch64/include/AE/Core/RelationSolver.h +5 -1
- package/SVF-linux-aarch64/include/AE/Svfexe/AbsExtAPI.h +9 -3
- package/SVF-linux-aarch64/include/AE/Svfexe/SparseAbstractInterpretation.h +3 -1
- package/SVF-linux-aarch64/include/CFL/CFGNormalizer.h +2 -1
- package/SVF-linux-aarch64/include/CFL/CFGrammar.h +8 -4
- package/SVF-linux-aarch64/include/CFL/CFLAlias.h +3 -2
- package/SVF-linux-aarch64/include/CFL/CFLBase.h +4 -9
- package/SVF-linux-aarch64/include/CFL/CFLGramGraphChecker.h +3 -1
- package/SVF-linux-aarch64/include/CFL/CFLGraphBuilder.h +1 -0
- package/SVF-linux-aarch64/include/CFL/CFLSVFGBuilder.h +5 -0
- package/SVF-linux-aarch64/include/CFL/CFLSolver.h +2 -1
- package/SVF-linux-aarch64/include/CFL/CFLStat.h +2 -2
- package/SVF-linux-aarch64/include/CFL/CFLVF.h +5 -2
- package/SVF-linux-aarch64/include/CFL/GrammarBuilder.h +3 -1
- package/SVF-linux-aarch64/include/DDA/ContextDDA.h +1 -0
- package/SVF-linux-aarch64/include/DDA/DDAClient.h +2 -2
- package/SVF-linux-aarch64/include/DDA/DDAPass.h +5 -1
- package/SVF-linux-aarch64/include/DDA/DDAStat.h +2 -1
- package/SVF-linux-aarch64/include/DDA/DDAVFSolver.h +3 -1
- package/SVF-linux-aarch64/include/DDA/FlowDDA.h +2 -1
- package/SVF-linux-aarch64/include/Graphs/CDG.h +6 -0
- package/SVF-linux-aarch64/include/Graphs/ICFGNode.h +1 -0
- package/SVF-linux-aarch64/include/Graphs/IRGraph.h +2 -3
- package/SVF-linux-aarch64/include/Graphs/SCC.h +4 -3
- package/SVF-linux-aarch64/include/Graphs/WTO.h +2 -3
- package/SVF-linux-aarch64/include/MSSA/MSSAMuChi.h +2 -1
- package/SVF-linux-aarch64/include/MSSA/MemPartition.h +1 -0
- package/SVF-linux-aarch64/include/MSSA/MemRegion.h +6 -2
- package/SVF-linux-aarch64/include/MSSA/SVFGBuilder.h +1 -1
- package/SVF-linux-aarch64/include/MTA/MHP.h +1 -0
- package/SVF-linux-aarch64/include/MTA/MTA.h +1 -5
- package/SVF-linux-aarch64/include/MTA/TCT.h +3 -2
- package/SVF-linux-aarch64/include/MemoryModel/AbstractPointsToDS.h +0 -2
- package/SVF-linux-aarch64/include/MemoryModel/AccessPath.h +6 -2
- package/SVF-linux-aarch64/include/MemoryModel/MutablePointsToDS.h +0 -1
- package/SVF-linux-aarch64/include/MemoryModel/PersistentPointsToCache.h +1 -1
- package/SVF-linux-aarch64/include/MemoryModel/PersistentPointsToDS.h +0 -1
- package/SVF-linux-aarch64/include/MemoryModel/PointerAnalysis.h +2 -7
- package/SVF-linux-aarch64/include/MemoryModel/PointerAnalysisImpl.h +5 -1
- package/SVF-linux-aarch64/include/MemoryModel/PointsTo.h +2 -1
- package/SVF-linux-aarch64/include/MemoryModel/SVFLoop.h +4 -1
- package/SVF-linux-aarch64/include/SABER/ProgSlice.h +0 -1
- package/SVF-linux-aarch64/include/SABER/SaberCheckerAPI.h +1 -2
- package/SVF-linux-aarch64/include/SABER/SaberSVFGBuilder.h +5 -1
- package/SVF-linux-aarch64/include/SABER/SrcSnkDDA.h +1 -1
- package/SVF-linux-aarch64/include/SVF-LLVM/LLVMLoopAnalysis.h +0 -1
- package/SVF-linux-aarch64/include/SVF-LLVM/LLVMUtil.h +2 -0
- package/SVF-linux-aarch64/include/SVFIR/ObjTypeInfo.h +3 -2
- package/SVF-linux-aarch64/include/SVFIR/PAGBuilderFromFile.h +1 -0
- package/SVF-linux-aarch64/include/SVFIR/SVFIR.h +3 -1
- package/SVF-linux-aarch64/include/SVFIR/SVFStatements.h +1 -0
- package/SVF-linux-aarch64/include/SVFIR/SVFType.h +0 -59
- package/SVF-linux-aarch64/include/SVFIR/SVFValue.h +2 -3
- package/SVF-linux-aarch64/include/SVFIR/SVFVariables.h +7 -1
- package/SVF-linux-aarch64/include/Util/CDGBuilder.h +8 -2
- package/SVF-linux-aarch64/include/Util/CallGraphBuilder.h +0 -2
- package/SVF-linux-aarch64/include/Util/CoreBitVector.h +1 -1
- package/SVF-linux-aarch64/include/Util/CxtStmt.h +0 -2
- package/SVF-linux-aarch64/include/Util/DPItem.h +2 -1
- package/SVF-linux-aarch64/include/Util/ExtAPI.h +3 -4
- package/SVF-linux-aarch64/include/Util/GeneralType.h +52 -48
- package/SVF-linux-aarch64/include/Util/Hash.h +56 -0
- package/SVF-linux-aarch64/include/Util/NodeIDAllocator.h +1 -1
- package/SVF-linux-aarch64/include/Util/Options.h +0 -1
- package/SVF-linux-aarch64/include/Util/PTAStat.h +3 -4
- package/SVF-linux-aarch64/include/Util/SVFBugReport.h +7 -9
- package/SVF-linux-aarch64/include/Util/SVFLoopAndDomInfo.h +7 -4
- package/SVF-linux-aarch64/include/Util/SVFStat.h +1 -0
- package/SVF-linux-aarch64/include/Util/SVFUtil.h +5 -5
- package/SVF-linux-aarch64/include/Util/SparseBitVector.h +13 -0
- package/SVF-linux-aarch64/include/Util/ThreadAPI.h +1 -1
- package/SVF-linux-aarch64/include/Util/WorkList.h +2 -2
- package/SVF-linux-aarch64/include/Util/Z3Expr.h +1 -1
- package/SVF-linux-aarch64/include/WPA/Andersen.h +3 -3
- package/SVF-linux-aarch64/include/WPA/AndersenPWC.h +2 -1
- package/SVF-linux-aarch64/include/WPA/CSC.h +5 -5
- package/SVF-linux-aarch64/include/WPA/FlowSensitive.h +1 -2
- package/SVF-linux-aarch64/include/WPA/Steensgaard.h +5 -0
- package/SVF-linux-aarch64/include/WPA/TypeAnalysis.h +5 -0
- package/SVF-linux-aarch64/include/WPA/VersionedFlowSensitive.h +1 -4
- package/SVF-linux-aarch64/include/WPA/WPAFSSolver.h +1 -0
- package/SVF-linux-aarch64/include/WPA/WPAPass.h +5 -1
- package/SVF-linux-aarch64/include/WPA/WPASolver.h +1 -0
- package/SVF-linux-aarch64/include/WPA/WPAStat.h +1 -0
- package/SVF-linux-aarch64/lib/cmake/SVF/SVFTargets.cmake +1 -1
- package/SVF-linux-aarch64/lib/libSvfCore.so.3.4 +0 -0
- package/SVF-linux-aarch64/lib/libSvfLLVM.so.3.4 +0 -0
- package/SVF-linux-x86_64/bin/ae +0 -0
- package/SVF-linux-x86_64/bin/mta +0 -0
- package/SVF-linux-x86_64/bin/saber +0 -0
- package/SVF-linux-x86_64/bin/svf-ex +0 -0
- package/SVF-linux-x86_64/bin/wpa +0 -0
- package/SVF-linux-x86_64/include/AE/Core/AbstractState.h +1 -1
- package/SVF-linux-x86_64/include/AE/Core/ICFGWTO.h +4 -1
- package/SVF-linux-x86_64/include/AE/Core/NumericValue.h +2 -1
- package/SVF-linux-x86_64/include/AE/Core/RelExeState.h +1 -0
- package/SVF-linux-x86_64/include/AE/Core/RelationSolver.h +5 -1
- package/SVF-linux-x86_64/include/AE/Svfexe/AbsExtAPI.h +9 -3
- package/SVF-linux-x86_64/include/AE/Svfexe/SparseAbstractInterpretation.h +3 -1
- package/SVF-linux-x86_64/include/CFL/CFGNormalizer.h +2 -1
- package/SVF-linux-x86_64/include/CFL/CFGrammar.h +8 -4
- package/SVF-linux-x86_64/include/CFL/CFLAlias.h +3 -2
- package/SVF-linux-x86_64/include/CFL/CFLBase.h +4 -9
- package/SVF-linux-x86_64/include/CFL/CFLGramGraphChecker.h +3 -1
- package/SVF-linux-x86_64/include/CFL/CFLGraphBuilder.h +1 -0
- package/SVF-linux-x86_64/include/CFL/CFLSVFGBuilder.h +5 -0
- package/SVF-linux-x86_64/include/CFL/CFLSolver.h +2 -1
- package/SVF-linux-x86_64/include/CFL/CFLStat.h +2 -2
- package/SVF-linux-x86_64/include/CFL/CFLVF.h +5 -2
- package/SVF-linux-x86_64/include/CFL/GrammarBuilder.h +3 -1
- package/SVF-linux-x86_64/include/DDA/ContextDDA.h +1 -0
- package/SVF-linux-x86_64/include/DDA/DDAClient.h +2 -2
- package/SVF-linux-x86_64/include/DDA/DDAPass.h +5 -1
- package/SVF-linux-x86_64/include/DDA/DDAStat.h +2 -1
- package/SVF-linux-x86_64/include/DDA/DDAVFSolver.h +3 -1
- package/SVF-linux-x86_64/include/DDA/FlowDDA.h +2 -1
- package/SVF-linux-x86_64/include/Graphs/CDG.h +6 -0
- package/SVF-linux-x86_64/include/Graphs/ICFGNode.h +1 -0
- package/SVF-linux-x86_64/include/Graphs/IRGraph.h +2 -3
- package/SVF-linux-x86_64/include/Graphs/SCC.h +4 -3
- package/SVF-linux-x86_64/include/Graphs/WTO.h +2 -3
- package/SVF-linux-x86_64/include/MSSA/MSSAMuChi.h +2 -1
- package/SVF-linux-x86_64/include/MSSA/MemPartition.h +1 -0
- package/SVF-linux-x86_64/include/MSSA/MemRegion.h +6 -2
- package/SVF-linux-x86_64/include/MSSA/SVFGBuilder.h +1 -1
- package/SVF-linux-x86_64/include/MTA/MHP.h +1 -0
- package/SVF-linux-x86_64/include/MTA/MTA.h +1 -5
- package/SVF-linux-x86_64/include/MTA/TCT.h +3 -2
- package/SVF-linux-x86_64/include/MemoryModel/AbstractPointsToDS.h +0 -2
- package/SVF-linux-x86_64/include/MemoryModel/AccessPath.h +6 -2
- package/SVF-linux-x86_64/include/MemoryModel/MutablePointsToDS.h +0 -1
- package/SVF-linux-x86_64/include/MemoryModel/PersistentPointsToCache.h +1 -1
- package/SVF-linux-x86_64/include/MemoryModel/PersistentPointsToDS.h +0 -1
- package/SVF-linux-x86_64/include/MemoryModel/PointerAnalysis.h +2 -7
- package/SVF-linux-x86_64/include/MemoryModel/PointerAnalysisImpl.h +5 -1
- package/SVF-linux-x86_64/include/MemoryModel/PointsTo.h +2 -1
- package/SVF-linux-x86_64/include/MemoryModel/SVFLoop.h +4 -1
- package/SVF-linux-x86_64/include/SABER/ProgSlice.h +0 -1
- package/SVF-linux-x86_64/include/SABER/SaberCheckerAPI.h +1 -2
- package/SVF-linux-x86_64/include/SABER/SaberSVFGBuilder.h +5 -1
- package/SVF-linux-x86_64/include/SABER/SrcSnkDDA.h +1 -1
- package/SVF-linux-x86_64/include/SVF-LLVM/LLVMLoopAnalysis.h +0 -1
- package/SVF-linux-x86_64/include/SVF-LLVM/LLVMUtil.h +2 -0
- package/SVF-linux-x86_64/include/SVFIR/ObjTypeInfo.h +3 -2
- package/SVF-linux-x86_64/include/SVFIR/PAGBuilderFromFile.h +1 -0
- package/SVF-linux-x86_64/include/SVFIR/SVFIR.h +3 -1
- package/SVF-linux-x86_64/include/SVFIR/SVFStatements.h +1 -0
- package/SVF-linux-x86_64/include/SVFIR/SVFType.h +0 -59
- package/SVF-linux-x86_64/include/SVFIR/SVFValue.h +2 -3
- package/SVF-linux-x86_64/include/SVFIR/SVFVariables.h +7 -1
- package/SVF-linux-x86_64/include/Util/CDGBuilder.h +8 -2
- package/SVF-linux-x86_64/include/Util/CallGraphBuilder.h +0 -2
- package/SVF-linux-x86_64/include/Util/CoreBitVector.h +1 -1
- package/SVF-linux-x86_64/include/Util/CxtStmt.h +0 -2
- package/SVF-linux-x86_64/include/Util/DPItem.h +2 -1
- package/SVF-linux-x86_64/include/Util/ExtAPI.h +3 -4
- package/SVF-linux-x86_64/include/Util/GeneralType.h +52 -48
- package/SVF-linux-x86_64/include/Util/Hash.h +56 -0
- package/SVF-linux-x86_64/include/Util/NodeIDAllocator.h +1 -1
- package/SVF-linux-x86_64/include/Util/Options.h +0 -1
- package/SVF-linux-x86_64/include/Util/PTAStat.h +3 -4
- package/SVF-linux-x86_64/include/Util/SVFBugReport.h +7 -9
- package/SVF-linux-x86_64/include/Util/SVFLoopAndDomInfo.h +7 -4
- package/SVF-linux-x86_64/include/Util/SVFStat.h +1 -0
- package/SVF-linux-x86_64/include/Util/SVFUtil.h +5 -5
- package/SVF-linux-x86_64/include/Util/SparseBitVector.h +13 -0
- package/SVF-linux-x86_64/include/Util/ThreadAPI.h +1 -1
- package/SVF-linux-x86_64/include/Util/WorkList.h +2 -2
- package/SVF-linux-x86_64/include/Util/Z3Expr.h +1 -1
- package/SVF-linux-x86_64/include/WPA/Andersen.h +3 -3
- package/SVF-linux-x86_64/include/WPA/AndersenPWC.h +2 -1
- package/SVF-linux-x86_64/include/WPA/CSC.h +5 -5
- package/SVF-linux-x86_64/include/WPA/FlowSensitive.h +1 -2
- package/SVF-linux-x86_64/include/WPA/Steensgaard.h +5 -0
- package/SVF-linux-x86_64/include/WPA/TypeAnalysis.h +5 -0
- package/SVF-linux-x86_64/include/WPA/VersionedFlowSensitive.h +1 -4
- package/SVF-linux-x86_64/include/WPA/WPAFSSolver.h +1 -0
- package/SVF-linux-x86_64/include/WPA/WPAPass.h +5 -1
- package/SVF-linux-x86_64/include/WPA/WPASolver.h +1 -0
- package/SVF-linux-x86_64/include/WPA/WPAStat.h +1 -0
- package/SVF-linux-x86_64/lib/cmake/SVF/SVFTargets.cmake +1 -1
- package/SVF-linux-x86_64/lib/libSvfCore.so.3.4 +0 -0
- package/SVF-linux-x86_64/lib/libSvfLLVM.so.3.4 +0 -0
- package/SVF-osx/bin/ae +0 -0
- package/SVF-osx/bin/cfl +0 -0
- package/SVF-osx/bin/dvf +0 -0
- package/SVF-osx/bin/llvm2svf +0 -0
- package/SVF-osx/bin/mta +0 -0
- package/SVF-osx/bin/saber +0 -0
- package/SVF-osx/bin/svf-ex +0 -0
- package/SVF-osx/bin/wpa +0 -0
- package/SVF-osx/include/AE/Core/AbstractState.h +1 -1
- package/SVF-osx/include/AE/Core/ICFGWTO.h +4 -1
- package/SVF-osx/include/AE/Core/NumericValue.h +2 -1
- package/SVF-osx/include/AE/Core/RelExeState.h +1 -0
- package/SVF-osx/include/AE/Core/RelationSolver.h +5 -1
- package/SVF-osx/include/AE/Svfexe/AbsExtAPI.h +9 -3
- package/SVF-osx/include/AE/Svfexe/SparseAbstractInterpretation.h +3 -1
- package/SVF-osx/include/CFL/CFGNormalizer.h +2 -1
- package/SVF-osx/include/CFL/CFGrammar.h +8 -4
- package/SVF-osx/include/CFL/CFLAlias.h +3 -2
- package/SVF-osx/include/CFL/CFLBase.h +4 -9
- package/SVF-osx/include/CFL/CFLGramGraphChecker.h +3 -1
- package/SVF-osx/include/CFL/CFLGraphBuilder.h +1 -0
- package/SVF-osx/include/CFL/CFLSVFGBuilder.h +5 -0
- package/SVF-osx/include/CFL/CFLSolver.h +2 -1
- package/SVF-osx/include/CFL/CFLStat.h +2 -2
- package/SVF-osx/include/CFL/CFLVF.h +5 -2
- package/SVF-osx/include/CFL/GrammarBuilder.h +3 -1
- package/SVF-osx/include/DDA/ContextDDA.h +1 -0
- package/SVF-osx/include/DDA/DDAClient.h +2 -2
- package/SVF-osx/include/DDA/DDAPass.h +5 -1
- package/SVF-osx/include/DDA/DDAStat.h +2 -1
- package/SVF-osx/include/DDA/DDAVFSolver.h +3 -1
- package/SVF-osx/include/DDA/FlowDDA.h +2 -1
- package/SVF-osx/include/Graphs/CDG.h +6 -0
- package/SVF-osx/include/Graphs/ICFGNode.h +1 -0
- package/SVF-osx/include/Graphs/IRGraph.h +2 -3
- package/SVF-osx/include/Graphs/SCC.h +4 -3
- package/SVF-osx/include/Graphs/WTO.h +2 -3
- package/SVF-osx/include/MSSA/MSSAMuChi.h +2 -1
- package/SVF-osx/include/MSSA/MemPartition.h +1 -0
- package/SVF-osx/include/MSSA/MemRegion.h +6 -2
- package/SVF-osx/include/MSSA/SVFGBuilder.h +1 -1
- package/SVF-osx/include/MTA/MHP.h +1 -0
- package/SVF-osx/include/MTA/MTA.h +1 -5
- package/SVF-osx/include/MTA/TCT.h +3 -2
- package/SVF-osx/include/MemoryModel/AbstractPointsToDS.h +0 -2
- package/SVF-osx/include/MemoryModel/AccessPath.h +6 -2
- package/SVF-osx/include/MemoryModel/MutablePointsToDS.h +0 -1
- package/SVF-osx/include/MemoryModel/PersistentPointsToCache.h +1 -1
- package/SVF-osx/include/MemoryModel/PersistentPointsToDS.h +0 -1
- package/SVF-osx/include/MemoryModel/PointerAnalysis.h +2 -7
- package/SVF-osx/include/MemoryModel/PointerAnalysisImpl.h +5 -1
- package/SVF-osx/include/MemoryModel/PointsTo.h +2 -1
- package/SVF-osx/include/MemoryModel/SVFLoop.h +4 -1
- package/SVF-osx/include/SABER/ProgSlice.h +0 -1
- package/SVF-osx/include/SABER/SaberCheckerAPI.h +1 -2
- package/SVF-osx/include/SABER/SaberSVFGBuilder.h +5 -1
- package/SVF-osx/include/SABER/SrcSnkDDA.h +1 -1
- package/SVF-osx/include/SVF-LLVM/LLVMLoopAnalysis.h +0 -1
- package/SVF-osx/include/SVF-LLVM/LLVMUtil.h +2 -0
- package/SVF-osx/include/SVFIR/ObjTypeInfo.h +3 -2
- package/SVF-osx/include/SVFIR/PAGBuilderFromFile.h +1 -0
- package/SVF-osx/include/SVFIR/SVFIR.h +3 -1
- package/SVF-osx/include/SVFIR/SVFStatements.h +1 -0
- package/SVF-osx/include/SVFIR/SVFType.h +0 -59
- package/SVF-osx/include/SVFIR/SVFValue.h +2 -3
- package/SVF-osx/include/SVFIR/SVFVariables.h +7 -1
- package/SVF-osx/include/Util/CDGBuilder.h +8 -2
- package/SVF-osx/include/Util/CallGraphBuilder.h +0 -2
- package/SVF-osx/include/Util/CoreBitVector.h +1 -1
- package/SVF-osx/include/Util/CxtStmt.h +0 -2
- package/SVF-osx/include/Util/DPItem.h +2 -1
- package/SVF-osx/include/Util/ExtAPI.h +3 -4
- package/SVF-osx/include/Util/GeneralType.h +52 -48
- package/SVF-osx/include/Util/Hash.h +56 -0
- package/SVF-osx/include/Util/NodeIDAllocator.h +1 -1
- package/SVF-osx/include/Util/Options.h +0 -1
- package/SVF-osx/include/Util/PTAStat.h +3 -4
- package/SVF-osx/include/Util/SVFBugReport.h +7 -9
- package/SVF-osx/include/Util/SVFLoopAndDomInfo.h +7 -4
- package/SVF-osx/include/Util/SVFStat.h +1 -0
- package/SVF-osx/include/Util/SVFUtil.h +5 -5
- package/SVF-osx/include/Util/SparseBitVector.h +13 -0
- package/SVF-osx/include/Util/ThreadAPI.h +1 -1
- package/SVF-osx/include/Util/WorkList.h +2 -2
- package/SVF-osx/include/Util/Z3Expr.h +1 -1
- package/SVF-osx/include/WPA/Andersen.h +3 -3
- package/SVF-osx/include/WPA/AndersenPWC.h +2 -1
- package/SVF-osx/include/WPA/CSC.h +5 -5
- package/SVF-osx/include/WPA/FlowSensitive.h +1 -2
- package/SVF-osx/include/WPA/Steensgaard.h +5 -0
- package/SVF-osx/include/WPA/TypeAnalysis.h +5 -0
- package/SVF-osx/include/WPA/VersionedFlowSensitive.h +1 -4
- package/SVF-osx/include/WPA/WPAFSSolver.h +1 -0
- package/SVF-osx/include/WPA/WPAPass.h +5 -1
- package/SVF-osx/include/WPA/WPASolver.h +1 -0
- package/SVF-osx/include/WPA/WPAStat.h +1 -0
- package/SVF-osx/lib/cmake/SVF/SVFTargets.cmake +1 -1
- package/SVF-osx/lib/extapi.bc +2 -2
- package/SVF-osx/lib/libSvfCore.3.4.dylib +0 -0
- package/SVF-osx/lib/libSvfLLVM.3.4.dylib +0 -0
- package/package.json +1 -1
|
@@ -30,10 +30,8 @@
|
|
|
30
30
|
#ifndef INCLUDE_SVFIR_SVFTYPE_H_
|
|
31
31
|
#define INCLUDE_SVFIR_SVFTYPE_H_
|
|
32
32
|
|
|
33
|
-
#include "Util/SparseBitVector.h"
|
|
34
33
|
#include "Util/GeneralType.h"
|
|
35
34
|
|
|
36
|
-
|
|
37
35
|
namespace SVF
|
|
38
36
|
{
|
|
39
37
|
class SVFType;
|
|
@@ -557,21 +555,6 @@ public:
|
|
|
557
555
|
void print(std::ostream& os) const override;
|
|
558
556
|
};
|
|
559
557
|
|
|
560
|
-
// TODO: be explicit that this is a pair of 32-bit unsigneds?
|
|
561
|
-
template <> struct Hash<NodePair>
|
|
562
|
-
{
|
|
563
|
-
size_t operator()(const NodePair& p) const
|
|
564
|
-
{
|
|
565
|
-
// Make sure our assumptions are sound: use u32_t
|
|
566
|
-
// and u64_t. If NodeID is not actually u32_t or size_t
|
|
567
|
-
// is not u64_t we should be fine since we get a
|
|
568
|
-
// consistent result.
|
|
569
|
-
uint32_t first = (uint32_t)(p.first);
|
|
570
|
-
uint32_t second = (uint32_t)(p.second);
|
|
571
|
-
return ((uint64_t)(first) << 32) | (uint64_t)(second);
|
|
572
|
-
}
|
|
573
|
-
};
|
|
574
|
-
|
|
575
558
|
#if !defined NDBUG && defined USE_SVF_DBOUT
|
|
576
559
|
// TODO: This comes from the following link
|
|
577
560
|
// https://github.com/llvm/llvm-project/blob/75e33f71c2dae584b13a7d1186ae0a038ba98838/llvm/include/llvm/Support/Debug.h#L64
|
|
@@ -642,46 +625,4 @@ enum AliasResult
|
|
|
642
625
|
|
|
643
626
|
} // End namespace SVF
|
|
644
627
|
|
|
645
|
-
template <> struct std::hash<SVF::NodePair>
|
|
646
|
-
{
|
|
647
|
-
size_t operator()(const SVF::NodePair& p) const
|
|
648
|
-
{
|
|
649
|
-
// Make sure our assumptions are sound: use u32_t
|
|
650
|
-
// and u64_t. If NodeID is not actually u32_t or size_t
|
|
651
|
-
// is not u64_t we should be fine since we get a
|
|
652
|
-
// consistent result.
|
|
653
|
-
uint32_t first = (uint32_t)(p.first);
|
|
654
|
-
uint32_t second = (uint32_t)(p.second);
|
|
655
|
-
return ((uint64_t)(first) << 32) | (uint64_t)(second);
|
|
656
|
-
}
|
|
657
|
-
};
|
|
658
|
-
|
|
659
|
-
/// Specialise hash for SparseBitVectors.
|
|
660
|
-
template <unsigned N> struct std::hash<SVF::SparseBitVector<N>>
|
|
661
|
-
{
|
|
662
|
-
size_t operator()(const SVF::SparseBitVector<N>& sbv) const
|
|
663
|
-
{
|
|
664
|
-
SVF::Hash<std::pair<std::pair<size_t, size_t>, size_t>> h;
|
|
665
|
-
return h(std::make_pair(std::make_pair(sbv.count(), sbv.find_first()),
|
|
666
|
-
sbv.find_last()));
|
|
667
|
-
}
|
|
668
|
-
};
|
|
669
|
-
|
|
670
|
-
template <typename T> struct std::hash<std::vector<T>>
|
|
671
|
-
{
|
|
672
|
-
size_t operator()(const std::vector<T>& v) const
|
|
673
|
-
{
|
|
674
|
-
// TODO: repetition with CBV.
|
|
675
|
-
size_t h = v.size();
|
|
676
|
-
|
|
677
|
-
SVF::Hash<T> hf;
|
|
678
|
-
for (const T& t : v)
|
|
679
|
-
{
|
|
680
|
-
h ^= hf(t) + 0x9e3779b9 + (h << 6) + (h >> 2);
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
return h;
|
|
684
|
-
}
|
|
685
|
-
};
|
|
686
|
-
|
|
687
628
|
#endif /* INCLUDE_SVFIR_SVFTYPE_H_ */
|
|
@@ -32,13 +32,12 @@
|
|
|
32
32
|
#ifndef INCLUDE_SVFIR_SVFVALUE_H_
|
|
33
33
|
#define INCLUDE_SVFIR_SVFVALUE_H_
|
|
34
34
|
|
|
35
|
-
#include "
|
|
36
|
-
#include "Graphs/GraphPrinter.h"
|
|
37
|
-
|
|
35
|
+
#include "Util/GeneralType.h"
|
|
38
36
|
|
|
39
37
|
namespace SVF
|
|
40
38
|
{
|
|
41
39
|
|
|
40
|
+
class SVFType;
|
|
42
41
|
|
|
43
42
|
class SVFValue
|
|
44
43
|
{
|
|
@@ -32,14 +32,20 @@
|
|
|
32
32
|
#ifndef INCLUDE_SVFIR_SVFVARIABLE_H_
|
|
33
33
|
#define INCLUDE_SVFIR_SVFVARIABLE_H_
|
|
34
34
|
|
|
35
|
+
#include "Graphs/BasicBlockG.h"
|
|
35
36
|
#include "Graphs/GenericGraph.h"
|
|
36
37
|
#include "SVFIR/ObjTypeInfo.h"
|
|
37
38
|
#include "SVFIR/SVFStatements.h"
|
|
39
|
+
#include "Util/GeneralType.h"
|
|
40
|
+
#include "Util/SVFLoopAndDomInfo.h"
|
|
41
|
+
#include "Util/SVFUtil.h"
|
|
38
42
|
|
|
39
43
|
namespace SVF
|
|
40
44
|
{
|
|
41
45
|
|
|
46
|
+
class FunObjVar;
|
|
42
47
|
class SVFVar;
|
|
48
|
+
|
|
43
49
|
/*
|
|
44
50
|
* Program variables in SVFIR (based on PAG nodes)
|
|
45
51
|
* These represent variables in the program analysis graph
|
|
@@ -2322,4 +2328,4 @@ public:
|
|
|
2322
2328
|
|
|
2323
2329
|
} // End namespace SVF
|
|
2324
2330
|
|
|
2325
|
-
#endif /* INCLUDE_SVFIR_SVFVARIABLE_H_ */
|
|
2331
|
+
#endif /* INCLUDE_SVFIR_SVFVARIABLE_H_ */
|
|
@@ -30,11 +30,17 @@
|
|
|
30
30
|
#define SVF_CDGBUILDER_H
|
|
31
31
|
|
|
32
32
|
#include "Graphs/CDG.h"
|
|
33
|
-
#include "
|
|
33
|
+
#include "Util/GeneralType.h"
|
|
34
34
|
|
|
35
35
|
// control dependence builder
|
|
36
36
|
namespace SVF
|
|
37
37
|
{
|
|
38
|
+
|
|
39
|
+
class FunObjVar;
|
|
40
|
+
class ICFGNode;
|
|
41
|
+
class SVFBasicBlock;
|
|
42
|
+
class SVFLoopAndDomInfo;
|
|
43
|
+
|
|
38
44
|
class CDGBuilder
|
|
39
45
|
{
|
|
40
46
|
public:
|
|
@@ -104,4 +110,4 @@ private:
|
|
|
104
110
|
}
|
|
105
111
|
|
|
106
112
|
|
|
107
|
-
#endif //SVF_CDGBUILDER_H
|
|
113
|
+
#endif //SVF_CDGBUILDER_H
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
#define DPITEM_H_
|
|
32
32
|
|
|
33
33
|
#include "MemoryModel/ConditionalPT.h"
|
|
34
|
+
#include "Util/GeneralType.h"
|
|
34
35
|
#include <algorithm> // std::sort
|
|
35
36
|
|
|
36
37
|
namespace SVF
|
|
@@ -615,4 +616,4 @@ struct std::hash<SVF::ContextCond>
|
|
|
615
616
|
return h(cc.getContexts());
|
|
616
617
|
}
|
|
617
618
|
};
|
|
618
|
-
#endif /* DPITEM_H_ */
|
|
619
|
+
#endif /* DPITEM_H_ */
|
|
@@ -30,11 +30,10 @@
|
|
|
30
30
|
#ifndef __ExtAPI_H
|
|
31
31
|
#define __ExtAPI_H
|
|
32
32
|
|
|
33
|
-
#include "
|
|
34
|
-
|
|
33
|
+
#include "Util/GeneralType.h"
|
|
34
|
+
|
|
35
35
|
#include <string>
|
|
36
36
|
#include <vector>
|
|
37
|
-
#include <map>
|
|
38
37
|
|
|
39
38
|
/// For a more detailed explanation of how External APIs are handled in SVF, please refer to the SVF Wiki: https://github.com/SVF-tools/SVF/wiki/Handling-External-APIs-with-extapi.c
|
|
40
39
|
|
|
@@ -115,4 +114,4 @@ private:
|
|
|
115
114
|
};
|
|
116
115
|
} // End namespace SVF
|
|
117
116
|
|
|
118
|
-
#endif
|
|
117
|
+
#endif
|
|
@@ -38,57 +38,12 @@
|
|
|
38
38
|
#include <unordered_map>
|
|
39
39
|
#include <unordered_set>
|
|
40
40
|
#include <vector>
|
|
41
|
-
|
|
41
|
+
|
|
42
|
+
#include "Util/Hash.h"
|
|
42
43
|
#include "Util/SparseBitVector.h"
|
|
43
44
|
|
|
44
45
|
namespace SVF
|
|
45
46
|
{
|
|
46
|
-
typedef std::ostream OutStream;
|
|
47
|
-
typedef unsigned u32_t;
|
|
48
|
-
typedef signed s32_t;
|
|
49
|
-
typedef unsigned long long u64_t;
|
|
50
|
-
typedef signed long long s64_t;
|
|
51
|
-
typedef unsigned char u8_t;
|
|
52
|
-
typedef signed char s8_t;
|
|
53
|
-
typedef unsigned short u16_t;
|
|
54
|
-
typedef signed short s16_t;
|
|
55
|
-
|
|
56
|
-
typedef u32_t NodeID;
|
|
57
|
-
typedef u32_t EdgeID;
|
|
58
|
-
typedef unsigned CallSiteID;
|
|
59
|
-
typedef unsigned ThreadID;
|
|
60
|
-
typedef s64_t APOffset;
|
|
61
|
-
|
|
62
|
-
typedef SparseBitVector<> NodeBS;
|
|
63
|
-
typedef unsigned PointsToID;
|
|
64
|
-
|
|
65
|
-
/// provide extra hash function for std::pair handling
|
|
66
|
-
template <class T> struct Hash;
|
|
67
|
-
|
|
68
|
-
template <class S, class T> struct Hash<std::pair<S, T>>
|
|
69
|
-
{
|
|
70
|
-
// Pairing function from: http://szudzik.com/ElegantPairing.pdf
|
|
71
|
-
static size_t szudzik(size_t a, size_t b)
|
|
72
|
-
{
|
|
73
|
-
return a > b ? b * b + a : a * a + a + b;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
size_t operator()(const std::pair<S, T>& t) const
|
|
77
|
-
{
|
|
78
|
-
Hash<decltype(t.first)> first;
|
|
79
|
-
Hash<decltype(t.second)> second;
|
|
80
|
-
return szudzik(first(t.first), second(t.second));
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
template <class T> struct Hash
|
|
85
|
-
{
|
|
86
|
-
size_t operator()(const T& t) const
|
|
87
|
-
{
|
|
88
|
-
std::hash<T> h;
|
|
89
|
-
return h(t);
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
47
|
|
|
93
48
|
template <typename Key, typename Hash = Hash<Key>,
|
|
94
49
|
typename KeyEqual = std::equal_to<Key>,
|
|
@@ -108,6 +63,25 @@ template <typename Key, typename Value, typename Hash = Hash<Key>,
|
|
|
108
63
|
typename Allocator = std::allocator<std::pair<const Key, Value>>>
|
|
109
64
|
using OrderedMap = std::map<Key, Value, Compare, Allocator>;
|
|
110
65
|
|
|
66
|
+
typedef std::ostream OutStream;
|
|
67
|
+
typedef unsigned u32_t;
|
|
68
|
+
typedef signed s32_t;
|
|
69
|
+
typedef unsigned long long u64_t;
|
|
70
|
+
typedef signed long long s64_t;
|
|
71
|
+
typedef unsigned char u8_t;
|
|
72
|
+
typedef signed char s8_t;
|
|
73
|
+
typedef unsigned short u16_t;
|
|
74
|
+
typedef signed short s16_t;
|
|
75
|
+
|
|
76
|
+
typedef u32_t NodeID;
|
|
77
|
+
typedef u32_t EdgeID;
|
|
78
|
+
typedef unsigned CallSiteID;
|
|
79
|
+
typedef unsigned ThreadID;
|
|
80
|
+
typedef s64_t APOffset;
|
|
81
|
+
|
|
82
|
+
typedef SparseBitVector<> NodeBS;
|
|
83
|
+
typedef unsigned PointsToID;
|
|
84
|
+
|
|
111
85
|
typedef std::pair<NodeID, NodeID> NodePair;
|
|
112
86
|
typedef OrderedSet<NodeID> OrderedNodeSet;
|
|
113
87
|
typedef Set<NodeID> NodeSet;
|
|
@@ -124,4 +98,34 @@ template <typename Key, typename Value, typename Hash = Hash<Key>,
|
|
|
124
98
|
typedef Set<Version> VersionSet;
|
|
125
99
|
typedef std::pair<NodeID, Version> VersionedVar;
|
|
126
100
|
typedef Set<VersionedVar> VersionedVarSet;
|
|
127
|
-
|
|
101
|
+
|
|
102
|
+
// TODO: be explicit that this is a pair of 32-bit unsigneds?
|
|
103
|
+
template <> struct Hash<NodePair>
|
|
104
|
+
{
|
|
105
|
+
size_t operator()(const NodePair& p) const
|
|
106
|
+
{
|
|
107
|
+
// Make sure our assumptions are sound: use u32_t
|
|
108
|
+
// and u64_t. If NodeID is not actually u32_t or size_t
|
|
109
|
+
// is not u64_t we should be fine since we get a
|
|
110
|
+
// consistent result.
|
|
111
|
+
uint32_t first = (uint32_t)(p.first);
|
|
112
|
+
uint32_t second = (uint32_t)(p.second);
|
|
113
|
+
return ((uint64_t)(first) << 32) | (uint64_t)(second);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
} // namespace SVF
|
|
118
|
+
|
|
119
|
+
template <> struct std::hash<SVF::NodePair>
|
|
120
|
+
{
|
|
121
|
+
size_t operator()(const SVF::NodePair& p) const
|
|
122
|
+
{
|
|
123
|
+
// Make sure our assumptions are sound: use u32_t
|
|
124
|
+
// and u64_t. If NodeID is not actually u32_t or size_t
|
|
125
|
+
// is not u64_t we should be fine since we get a
|
|
126
|
+
// consistent result.
|
|
127
|
+
uint32_t first = (uint32_t)(p.first);
|
|
128
|
+
uint32_t second = (uint32_t)(p.second);
|
|
129
|
+
return ((uint64_t)(first) << 32) | (uint64_t)(second);
|
|
130
|
+
}
|
|
131
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#ifndef Hash_H
|
|
2
|
+
#define Hash_H
|
|
3
|
+
|
|
4
|
+
#include <vector>
|
|
5
|
+
|
|
6
|
+
namespace SVF
|
|
7
|
+
{
|
|
8
|
+
|
|
9
|
+
/// provide extra hash function for std::pair handling
|
|
10
|
+
template <class T> struct Hash;
|
|
11
|
+
|
|
12
|
+
template <class S, class T> struct Hash<std::pair<S, T>>
|
|
13
|
+
{
|
|
14
|
+
// Pairing function from: http://szudzik.com/ElegantPairing.pdf
|
|
15
|
+
static size_t szudzik(size_t a, size_t b)
|
|
16
|
+
{
|
|
17
|
+
return a > b ? b * b + a : a * a + a + b;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
size_t operator()(const std::pair<S, T>& t) const
|
|
21
|
+
{
|
|
22
|
+
Hash<decltype(t.first)> first;
|
|
23
|
+
Hash<decltype(t.second)> second;
|
|
24
|
+
return szudzik(first(t.first), second(t.second));
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
template <class T> struct Hash
|
|
29
|
+
{
|
|
30
|
+
size_t operator()(const T& t) const
|
|
31
|
+
{
|
|
32
|
+
std::hash<T> h;
|
|
33
|
+
return h(t);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
} // namespace SVF
|
|
38
|
+
|
|
39
|
+
template <typename T> struct std::hash<std::vector<T>>
|
|
40
|
+
{
|
|
41
|
+
size_t operator()(const std::vector<T>& v) const
|
|
42
|
+
{
|
|
43
|
+
// TODO: repetition with CBV.
|
|
44
|
+
size_t h = v.size();
|
|
45
|
+
|
|
46
|
+
SVF::Hash<T> hf;
|
|
47
|
+
for (const T& t : v)
|
|
48
|
+
{
|
|
49
|
+
h ^= hf(t) + 0x9e3779b9 + (h << 6) + (h >> 2);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return h;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
#endif // Hash_H
|
|
@@ -30,13 +30,12 @@
|
|
|
30
30
|
#ifndef ANDERSENSTAT_H_
|
|
31
31
|
#define ANDERSENSTAT_H_
|
|
32
32
|
|
|
33
|
-
#include "SVFIR/SVFValue.h"
|
|
34
|
-
#include "MemoryModel/PointsTo.h"
|
|
35
|
-
#include "Util/SVFStat.h"
|
|
36
33
|
#include <iostream>
|
|
37
|
-
#include <map>
|
|
38
34
|
#include <string>
|
|
39
35
|
|
|
36
|
+
#include "Util/SVFStat.h"
|
|
37
|
+
#include "Util/GeneralType.h"
|
|
38
|
+
|
|
40
39
|
namespace SVF
|
|
41
40
|
{
|
|
42
41
|
|
|
@@ -27,15 +27,11 @@
|
|
|
27
27
|
#ifndef SVF_BUGRECODER_H
|
|
28
28
|
#define SVF_BUGRECODER_H
|
|
29
29
|
|
|
30
|
-
#include <vector>
|
|
31
|
-
#include "SVFIR/SVFValue.h"
|
|
32
|
-
#include "SVFIR/SVFVariables.h"
|
|
33
|
-
#include "SVFIR/SVFStatements.h"
|
|
34
|
-
#include "Graphs/ICFGNode.h"
|
|
35
30
|
#include <string>
|
|
36
|
-
#include <
|
|
31
|
+
#include <vector>
|
|
32
|
+
|
|
37
33
|
#include "Util/cJSON.h"
|
|
38
|
-
#include
|
|
34
|
+
#include "Util/GeneralType.h"
|
|
39
35
|
|
|
40
36
|
#define BRANCHFLAGMASK 0x00000010
|
|
41
37
|
#define EVENTTYPEMASK 0x0000000f
|
|
@@ -43,6 +39,8 @@
|
|
|
43
39
|
namespace SVF
|
|
44
40
|
{
|
|
45
41
|
|
|
42
|
+
class ICFGNode;
|
|
43
|
+
|
|
46
44
|
/*!
|
|
47
45
|
* Bug Detector Recoder
|
|
48
46
|
*/
|
|
@@ -84,7 +82,7 @@ public:
|
|
|
84
82
|
|
|
85
83
|
public:
|
|
86
84
|
enum BugType {FULLBUFOVERFLOW, PARTIALBUFOVERFLOW, NEVERFREE, PARTIALLEAK, DOUBLEFREE, FILENEVERCLOSE, FILEPARTIALCLOSE, FULLNULLPTRDEREFERENCE, PARTIALNULLPTRDEREFERENCE};
|
|
87
|
-
static const
|
|
85
|
+
static const OrderedMap<GenericBug::BugType, std::string> BugType2Str;
|
|
88
86
|
|
|
89
87
|
protected:
|
|
90
88
|
BugType bugType;
|
|
@@ -424,4 +422,4 @@ public:
|
|
|
424
422
|
};
|
|
425
423
|
}
|
|
426
424
|
|
|
427
|
-
#endif
|
|
425
|
+
#endif
|
|
@@ -31,13 +31,16 @@
|
|
|
31
31
|
#ifndef SVFLOOPANDDOMINFO_H
|
|
32
32
|
#define SVFLOOPANDDOMINFO_H
|
|
33
33
|
|
|
34
|
-
#include
|
|
35
|
-
#include
|
|
36
|
-
|
|
37
|
-
#include "
|
|
34
|
+
#include <algorithm>
|
|
35
|
+
#include <vector>
|
|
36
|
+
|
|
37
|
+
#include "Util/GeneralType.h"
|
|
38
38
|
|
|
39
39
|
namespace SVF
|
|
40
40
|
{
|
|
41
|
+
|
|
42
|
+
class SVFBasicBlock;
|
|
43
|
+
|
|
41
44
|
class SVFLoopAndDomInfo
|
|
42
45
|
{
|
|
43
46
|
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
#ifndef AnalysisUtil_H_
|
|
31
31
|
#define AnalysisUtil_H_
|
|
32
32
|
|
|
33
|
-
#include "FastCluster/fastcluster.h"
|
|
34
|
-
#include "SVFIR/SVFValue.h"
|
|
35
|
-
#include "Util/SVFLoopAndDomInfo.h"
|
|
36
|
-
#include "Util/ExtAPI.h"
|
|
37
|
-
#include "MemoryModel/PointsTo.h"
|
|
38
33
|
#include <time.h>
|
|
34
|
+
|
|
35
|
+
#include "MemoryModel/PointsTo.h"
|
|
36
|
+
#include "Util/Casting.h"
|
|
37
|
+
#include "Util/ExtAPI.h"
|
|
38
|
+
#include "Util/GeneralType.h"
|
|
39
39
|
#include "Util/NodeIDAllocator.h"
|
|
40
40
|
#include "Util/ThreadAPI.h"
|
|
41
41
|
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
#include <iterator>
|
|
17
17
|
#include <list>
|
|
18
18
|
|
|
19
|
+
#include "Util/Hash.h"
|
|
20
|
+
|
|
19
21
|
// Appease GCC?
|
|
20
22
|
#ifdef __has_builtin
|
|
21
23
|
# define HAS_CLZ __has_builtin(__builtin_clz)
|
|
@@ -1249,4 +1251,15 @@ void dump(const SparseBitVector<ElementSize> &LHS, std::ostream &out)
|
|
|
1249
1251
|
|
|
1250
1252
|
} // End namespace SVF
|
|
1251
1253
|
|
|
1254
|
+
/// Specialise hash for SparseBitVectors.
|
|
1255
|
+
template <unsigned N> struct std::hash<SVF::SparseBitVector<N>>
|
|
1256
|
+
{
|
|
1257
|
+
size_t operator()(const SVF::SparseBitVector<N>& sbv) const
|
|
1258
|
+
{
|
|
1259
|
+
SVF::Hash<std::pair<std::pair<size_t, size_t>, size_t>> h;
|
|
1260
|
+
return h(std::make_pair(std::make_pair(sbv.count(), sbv.find_first()),
|
|
1261
|
+
sbv.find_last()));
|
|
1262
|
+
}
|
|
1263
|
+
};
|
|
1264
|
+
|
|
1252
1265
|
#endif // SPARSEBITVECTOR_H
|
|
@@ -36,8 +36,6 @@
|
|
|
36
36
|
#ifndef WORKLIST_H_
|
|
37
37
|
#define WORKLIST_H_
|
|
38
38
|
|
|
39
|
-
#include "SVFIR/SVFValue.h"
|
|
40
|
-
|
|
41
39
|
#include <assert.h>
|
|
42
40
|
#include <cstdlib>
|
|
43
41
|
#include <vector>
|
|
@@ -45,6 +43,8 @@
|
|
|
45
43
|
#include <list>
|
|
46
44
|
#include <set>
|
|
47
45
|
|
|
46
|
+
#include "Util/GeneralType.h"
|
|
47
|
+
|
|
48
48
|
namespace SVF
|
|
49
49
|
{
|
|
50
50
|
|
|
@@ -37,17 +37,17 @@
|
|
|
37
37
|
|
|
38
38
|
#include "MemoryModel/PTATY.h"
|
|
39
39
|
#include "MemoryModel/PointerAnalysisImpl.h"
|
|
40
|
-
#include "
|
|
40
|
+
#include "MemoryModel/PointsTo.h"
|
|
41
41
|
#include "WPA/WPASolver.h"
|
|
42
|
-
#include "SVFIR/SVFIR.h"
|
|
43
42
|
#include "Graphs/ConsG.h"
|
|
43
|
+
#include "Util/GeneralType.h"
|
|
44
44
|
#include "Util/Options.h"
|
|
45
45
|
|
|
46
46
|
namespace SVF
|
|
47
47
|
{
|
|
48
48
|
|
|
49
|
-
|
|
50
49
|
class ThreadCallGraph;
|
|
50
|
+
class SVFIR;
|
|
51
51
|
|
|
52
52
|
/*!
|
|
53
53
|
* Abstract class of inclusion-based Pointer Analysis
|
|
@@ -30,17 +30,17 @@
|
|
|
30
30
|
#ifndef PROJECT_CSC_H
|
|
31
31
|
#define PROJECT_CSC_H
|
|
32
32
|
|
|
33
|
-
#include
|
|
33
|
+
#include <limits.h>
|
|
34
|
+
|
|
34
35
|
#include "Graphs/SCC.h"
|
|
35
|
-
#include "
|
|
36
|
+
#include "Util/GeneralType.h"
|
|
36
37
|
#include "Util/WorkList.h"
|
|
37
|
-
#include <limits.h>
|
|
38
|
-
#include <map>
|
|
39
|
-
#include <stack>
|
|
40
38
|
|
|
41
39
|
namespace SVF
|
|
42
40
|
{
|
|
43
41
|
|
|
42
|
+
class ConstraintGraph;
|
|
43
|
+
|
|
44
44
|
typedef SCCDetection<ConstraintGraph *> CGSCC;
|
|
45
45
|
|
|
46
46
|
/*!
|
|
@@ -30,8 +30,7 @@
|
|
|
30
30
|
#ifndef FLOWSENSITIVEANALYSIS_H_
|
|
31
31
|
#define FLOWSENSITIVEANALYSIS_H_
|
|
32
32
|
|
|
33
|
-
#include "
|
|
34
|
-
#include "Graphs/SVFGOPT.h"
|
|
33
|
+
#include "Graphs/SVFG.h"
|
|
35
34
|
#include "MemoryModel/PointerAnalysisImpl.h"
|
|
36
35
|
#include "MSSA/SVFGBuilder.h"
|
|
37
36
|
#include "WPA/WPAFSSolver.h"
|