svf-lib 1.0.2319 → 1.0.2321
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-aarch64/Release-build/include/{Util → SVF/Util}/WorkList.h +0 -0
- package/SVF-linux-aarch64/Release-build/lib/cmake/SVF/Modules/FindZ3.cmake +93 -0
- package/SVF-linux-aarch64/Release-build/lib/cmake/SVF/SVFConfig.cmake +106 -0
- package/SVF-linux-aarch64/Release-build/lib/cmake/SVF/SVFConfigVersion.cmake +43 -0
- package/SVF-linux-aarch64/Release-build/lib/cmake/SVF/SVFTargets-release.cmake +101 -0
- package/SVF-linux-aarch64/Release-build/lib/cmake/SVF/SVFTargets.cmake +180 -0
- package/SVF-linux-aarch64/Release-build/lib/libSvfCore.so.3.1 +0 -0
- package/SVF-linux-aarch64/Release-build/lib/libSvfLLVM.so.3.1 +0 -0
- package/SVF-linux-aarch64/Release-build/lib/pkgconfig/SVF.pc +12 -0
- package/SVF-osx/Release-build/bin/ae +0 -0
- package/SVF-osx/Release-build/bin/cfl +0 -0
- package/SVF-osx/Release-build/bin/dvf +0 -0
- package/SVF-osx/Release-build/bin/llvm2svf +0 -0
- package/SVF-osx/Release-build/bin/mta +0 -0
- package/SVF-osx/Release-build/bin/saber +0 -0
- package/SVF-osx/Release-build/bin/svf-ex +0 -0
- package/SVF-osx/Release-build/bin/wpa +0 -0
- package/SVF-osx/Release-build/include/SVF/AE/Core/AbstractState.h +425 -0
- package/SVF-osx/Release-build/include/SVF/AE/Core/AbstractValue.h +157 -0
- package/SVF-osx/Release-build/include/SVF/AE/Core/AddressValue.h +225 -0
- package/SVF-osx/Release-build/include/SVF/AE/Core/ICFGWTO.h +135 -0
- package/SVF-osx/Release-build/include/SVF/AE/Core/IntervalValue.h +1055 -0
- package/SVF-osx/Release-build/include/SVF/AE/Core/NumericValue.h +1292 -0
- package/SVF-osx/Release-build/include/SVF/AE/Core/RelExeState.h +226 -0
- package/SVF-osx/Release-build/include/SVF/AE/Core/RelationSolver.h +91 -0
- package/SVF-osx/Release-build/include/SVF/AE/Svfexe/AEDetector.h +439 -0
- package/SVF-osx/Release-build/include/SVF/AE/Svfexe/AbsExtAPI.h +138 -0
- package/SVF-osx/Release-build/include/SVF/AE/Svfexe/AbstractInterpretation.h +384 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFGNormalizer.h +84 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFGrammar.h +468 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFLAlias.h +168 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFLBase.h +118 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFLGramGraphChecker.h +74 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFLGraphBuilder.h +168 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFLSVFGBuilder.h +58 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFLSolver.h +374 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFLStat.h +67 -0
- package/SVF-osx/Release-build/include/SVF/CFL/CFLVF.h +68 -0
- package/SVF-osx/Release-build/include/SVF/CFL/GrammarBuilder.h +100 -0
- package/SVF-osx/Release-build/include/SVF/DDA/ContextDDA.h +230 -0
- package/SVF-osx/Release-build/include/SVF/DDA/DDAClient.h +163 -0
- package/SVF-osx/Release-build/include/SVF/DDA/DDAPass.h +102 -0
- package/SVF-osx/Release-build/include/SVF/DDA/DDAStat.h +121 -0
- package/SVF-osx/Release-build/include/SVF/DDA/DDAVFSolver.h +794 -0
- package/SVF-osx/Release-build/include/SVF/DDA/FlowDDA.h +178 -0
- package/SVF-osx/Release-build/include/SVF/FastCluster/fastcluster.h +80 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/BasicBlockG.h +318 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/CDG.h +482 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/CFLGraph.h +232 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/CHG.h +368 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/CallGraph.h +497 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/ConsG.h +402 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/ConsGEdge.h +355 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/ConsGNode.h +418 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/DOTGraphTraits.h +188 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/GenericGraph.h +628 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/GraphPrinter.h +111 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/GraphTraits.h +150 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/GraphWriter.h +380 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/ICFG.h +331 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/ICFGEdge.h +281 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/ICFGNode.h +669 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/ICFGStat.h +164 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/IRGraph.h +398 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/SCC.h +375 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/SVFG.h +491 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/SVFGEdge.h +237 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/SVFGNode.h +501 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/SVFGOPT.h +372 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/SVFGStat.h +273 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/ThreadCallGraph.h +399 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/VFG.h +726 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/VFGEdge.h +295 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/VFGNode.h +1266 -0
- package/SVF-osx/Release-build/include/SVF/Graphs/WTO.h +872 -0
- package/SVF-osx/Release-build/include/SVF/MSSA/MSSAMuChi.h +722 -0
- package/SVF-osx/Release-build/include/SVF/MSSA/MemPartition.h +169 -0
- package/SVF-osx/Release-build/include/SVF/MSSA/MemRegion.h +489 -0
- package/SVF-osx/Release-build/include/SVF/MSSA/MemSSA.h +452 -0
- package/SVF-osx/Release-build/include/SVF/MSSA/SVFGBuilder.h +104 -0
- package/SVF-osx/Release-build/include/SVF/MTA/LockAnalysis.h +533 -0
- package/SVF-osx/Release-build/include/SVF/MTA/MHP.h +546 -0
- package/SVF-osx/Release-build/include/SVF/MTA/MTA.h +97 -0
- package/SVF-osx/Release-build/include/SVF/MTA/MTAStat.h +73 -0
- package/SVF-osx/Release-build/include/SVF/MTA/TCT.h +620 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/AbstractPointsToDS.h +316 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/AccessPath.h +194 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/ConditionalPT.h +878 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/MutablePointsToDS.h +1025 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/PersistentPointsToCache.h +463 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/PersistentPointsToDS.h +955 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/PointerAnalysis.h +428 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/PointerAnalysisImpl.h +602 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/PointsTo.h +255 -0
- package/SVF-osx/Release-build/include/SVF/MemoryModel/SVFLoop.h +167 -0
- package/SVF-osx/Release-build/include/SVF/SABER/DoubleFreeChecker.h +76 -0
- package/SVF-osx/Release-build/include/SVF/SABER/FileChecker.h +80 -0
- package/SVF-osx/Release-build/include/SVF/SABER/LeakChecker.h +122 -0
- package/SVF-osx/Release-build/include/SVF/SABER/ProgSlice.h +327 -0
- package/SVF-osx/Release-build/include/SVF/SABER/SaberCheckerAPI.h +151 -0
- package/SVF-osx/Release-build/include/SVF/SABER/SaberCondAllocator.h +317 -0
- package/SVF-osx/Release-build/include/SVF/SABER/SaberSVFGBuilder.h +114 -0
- package/SVF-osx/Release-build/include/SVF/SABER/SrcSnkDDA.h +327 -0
- package/SVF-osx/Release-build/include/SVF/SABER/SrcSnkSolver.h +186 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/BasicTypes.h +280 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/BreakConstantExpr.h +93 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/CHGBuilder.h +78 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/CppUtil.h +184 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/DCHG.h +474 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/GEPTypeBridgeIterator.h +183 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/ICFGBuilder.h +160 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/LLVMLoopAnalysis.h +60 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/LLVMModule.h +527 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/LLVMUtil.h +433 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/ObjTypeInference.h +129 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/SVFIRBuilder.h +523 -0
- package/SVF-osx/Release-build/include/SVF/SVF-LLVM/SymbolTableBuilder.h +132 -0
- package/SVF-osx/Release-build/include/SVF/SVFIR/ObjTypeInfo.h +224 -0
- package/SVF-osx/Release-build/include/SVF/SVFIR/PAGBuilderFromFile.h +80 -0
- package/SVF-osx/Release-build/include/SVF/SVFIR/SVFIR.h +856 -0
- package/SVF-osx/Release-build/include/SVF/SVFIR/SVFStatements.h +1330 -0
- package/SVF-osx/Release-build/include/SVF/SVFIR/SVFType.h +606 -0
- package/SVF-osx/Release-build/include/SVF/SVFIR/SVFValue.h +338 -0
- package/SVF-osx/Release-build/include/SVF/SVFIR/SVFVariables.h +2212 -0
- package/SVF-osx/Release-build/include/SVF/Util/Annotator.h +180 -0
- package/SVF-osx/Release-build/include/SVF/Util/BitVector.h +55 -0
- package/SVF-osx/Release-build/include/SVF/Util/CDGBuilder.h +107 -0
- package/SVF-osx/Release-build/include/SVF/Util/CallGraphBuilder.h +61 -0
- package/SVF-osx/Release-build/include/SVF/Util/Casting.h +426 -0
- package/SVF-osx/Release-build/include/SVF/Util/CommandLine.h +530 -0
- package/SVF-osx/Release-build/include/SVF/Util/CoreBitVector.h +214 -0
- package/SVF-osx/Release-build/include/SVF/Util/CxtStmt.h +502 -0
- package/SVF-osx/Release-build/include/SVF/Util/DPItem.h +618 -0
- package/SVF-osx/Release-build/include/SVF/Util/ExtAPI.h +117 -0
- package/SVF-osx/Release-build/include/SVF/Util/GeneralType.h +127 -0
- package/SVF-osx/Release-build/include/SVF/Util/GraphReachSolver.h +186 -0
- package/SVF-osx/Release-build/include/SVF/Util/NodeIDAllocator.h +203 -0
- package/SVF-osx/Release-build/include/SVF/Util/Options.h +273 -0
- package/SVF-osx/Release-build/include/SVF/Util/PTAStat.h +83 -0
- package/SVF-osx/Release-build/include/SVF/Util/SVFBugReport.h +427 -0
- package/SVF-osx/Release-build/include/SVF/Util/SVFLoopAndDomInfo.h +169 -0
- package/SVF-osx/Release-build/include/SVF/Util/SVFStat.h +103 -0
- package/SVF-osx/Release-build/include/SVF/Util/SVFUtil.h +478 -0
- package/SVF-osx/Release-build/include/SVF/Util/SparseBitVector.h +1252 -0
- package/SVF-osx/Release-build/include/SVF/Util/ThreadAPI.h +188 -0
- package/SVF-osx/Release-build/include/SVF/Util/WorkList.h +317 -0
- package/SVF-osx/Release-build/include/SVF/Util/Z3Expr.h +325 -0
- package/SVF-osx/Release-build/include/SVF/Util/cJSON.h +300 -0
- package/SVF-osx/Release-build/include/SVF/Util/config.h +46 -0
- package/SVF-osx/Release-build/include/SVF/Util/iterator.h +407 -0
- package/SVF-osx/Release-build/include/SVF/Util/iterator_range.h +76 -0
- package/SVF-osx/Release-build/include/SVF/WPA/Andersen.h +434 -0
- package/SVF-osx/Release-build/include/SVF/WPA/AndersenPWC.h +160 -0
- package/SVF-osx/Release-build/include/SVF/WPA/CSC.h +95 -0
- package/SVF-osx/Release-build/include/SVF/WPA/FlowSensitive.h +322 -0
- package/SVF-osx/Release-build/include/SVF/WPA/Steensgaard.h +131 -0
- package/SVF-osx/Release-build/include/SVF/WPA/TypeAnalysis.h +90 -0
- package/SVF-osx/Release-build/include/SVF/WPA/VersionedFlowSensitive.h +295 -0
- package/SVF-osx/Release-build/include/SVF/WPA/WPAFSSolver.h +246 -0
- package/SVF-osx/Release-build/include/SVF/WPA/WPAPass.h +115 -0
- package/SVF-osx/Release-build/include/SVF/WPA/WPASolver.h +205 -0
- package/SVF-osx/Release-build/include/SVF/WPA/WPAStat.h +222 -0
- package/SVF-osx/Release-build/include/SVF/extapi.bc +2384 -0
- package/SVF-osx/Release-build/lib/cmake/SVF/Modules/FindZ3.cmake +93 -0
- package/SVF-osx/Release-build/lib/cmake/SVF/SVFConfig.cmake +106 -0
- package/SVF-osx/Release-build/lib/cmake/SVF/SVFConfigVersion.cmake +43 -0
- package/SVF-osx/Release-build/lib/cmake/SVF/SVFTargets-release.cmake +101 -0
- package/SVF-osx/Release-build/lib/cmake/SVF/SVFTargets.cmake +180 -0
- package/SVF-osx/Release-build/lib/libSvfCore.3.1.dylib +0 -0
- package/SVF-osx/Release-build/lib/libSvfLLVM.3.1.dylib +0 -0
- package/SVF-osx/Release-build/lib/pkgconfig/SVF.pc +12 -0
- package/package.json +1 -1
- package/SVF-linux-aarch64/Release-build/include/CFL/grammar/PAGGrammar.txt +0 -15
- package/SVF-linux-aarch64/Release-build/include/CFL/grammar/PEGGrammar.txt +0 -11
- package/SVF-linux-aarch64/Release-build/include/CFL/grammar/VFGGrammar.txt +0 -7
- package/SVF-linux-aarch64/Release-build/include/FastCluster/LICENSE.TXT +0 -13
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Core/AbstractState.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Core/AbstractValue.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Core/AddressValue.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Core/ICFGWTO.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Core/IntervalValue.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Core/NumericValue.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Core/RelExeState.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Core/RelationSolver.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Svfexe/AEDetector.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Svfexe/AbsExtAPI.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{AE → SVF/AE}/Svfexe/AbstractInterpretation.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFGNormalizer.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFGrammar.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFLAlias.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFLBase.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFLGramGraphChecker.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFLGraphBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFLSVFGBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFLSolver.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFLStat.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/CFLVF.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{CFL → SVF/CFL}/GrammarBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{DDA → SVF/DDA}/ContextDDA.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{DDA → SVF/DDA}/DDAClient.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{DDA → SVF/DDA}/DDAPass.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{DDA → SVF/DDA}/DDAStat.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{DDA → SVF/DDA}/DDAVFSolver.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{DDA → SVF/DDA}/FlowDDA.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{FastCluster → SVF/FastCluster}/fastcluster.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/BasicBlockG.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/CDG.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/CFLGraph.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/CHG.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/CallGraph.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/ConsG.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/ConsGEdge.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/ConsGNode.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/DOTGraphTraits.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/GenericGraph.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/GraphPrinter.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/GraphTraits.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/GraphWriter.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/ICFG.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/ICFGEdge.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/ICFGNode.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/ICFGStat.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/IRGraph.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/SCC.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/SVFG.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/SVFGEdge.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/SVFGNode.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/SVFGOPT.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/SVFGStat.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/ThreadCallGraph.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/VFG.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/VFGEdge.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/VFGNode.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Graphs → SVF/Graphs}/WTO.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MSSA → SVF/MSSA}/MSSAMuChi.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MSSA → SVF/MSSA}/MemPartition.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MSSA → SVF/MSSA}/MemRegion.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MSSA → SVF/MSSA}/MemSSA.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MSSA → SVF/MSSA}/SVFGBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MTA → SVF/MTA}/LockAnalysis.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MTA → SVF/MTA}/MHP.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MTA → SVF/MTA}/MTA.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MTA → SVF/MTA}/MTAStat.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MTA → SVF/MTA}/TCT.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/AbstractPointsToDS.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/AccessPath.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/ConditionalPT.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/MutablePointsToDS.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/PersistentPointsToCache.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/PersistentPointsToDS.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/PointerAnalysis.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/PointerAnalysisImpl.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/PointsTo.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{MemoryModel → SVF/MemoryModel}/SVFLoop.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SABER → SVF/SABER}/DoubleFreeChecker.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SABER → SVF/SABER}/FileChecker.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SABER → SVF/SABER}/LeakChecker.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SABER → SVF/SABER}/ProgSlice.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SABER → SVF/SABER}/SaberCheckerAPI.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SABER → SVF/SABER}/SaberCondAllocator.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SABER → SVF/SABER}/SaberSVFGBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SABER → SVF/SABER}/SrcSnkDDA.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SABER → SVF/SABER}/SrcSnkSolver.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/BasicTypes.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/BreakConstantExpr.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/CHGBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/CppUtil.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/DCHG.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/GEPTypeBridgeIterator.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/ICFGBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/LLVMLoopAnalysis.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/LLVMModule.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/LLVMUtil.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/ObjTypeInference.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/SVFIRBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVF-LLVM → SVF/SVF-LLVM}/SymbolTableBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVFIR → SVF/SVFIR}/ObjTypeInfo.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVFIR → SVF/SVFIR}/PAGBuilderFromFile.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVFIR → SVF/SVFIR}/SVFIR.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVFIR → SVF/SVFIR}/SVFStatements.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVFIR → SVF/SVFIR}/SVFType.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVFIR → SVF/SVFIR}/SVFValue.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{SVFIR → SVF/SVFIR}/SVFVariables.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/Annotator.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/BitVector.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/CDGBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/CallGraphBuilder.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/Casting.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/CommandLine.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/CoreBitVector.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/CxtStmt.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/DPItem.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/ExtAPI.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/GeneralType.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/GraphReachSolver.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/NodeIDAllocator.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/Options.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/PTAStat.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/SVFBugReport.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/SVFLoopAndDomInfo.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/SVFStat.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/SVFUtil.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/SparseBitVector.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/ThreadAPI.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/Z3Expr.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/cJSON.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/iterator.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{Util → SVF/Util}/iterator_range.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/Andersen.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/AndersenPWC.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/CSC.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/FlowSensitive.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/Steensgaard.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/TypeAnalysis.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/VersionedFlowSensitive.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/WPAFSSolver.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/WPAPass.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/WPASolver.h +0 -0
- /package/SVF-linux-aarch64/Release-build/include/{WPA → SVF/WPA}/WPAStat.h +0 -0
- /package/SVF-linux-aarch64/Release-build/{lib → include/SVF}/extapi.bc +0 -0
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
//===- BasicTypes.h -- Basic types 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 Affero 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 Affero General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU Affero General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
* BasicTypes.h
|
|
25
|
+
*
|
|
26
|
+
* Created on: Apr 1, 2014
|
|
27
|
+
* Author: Yulei Sui
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
#ifndef INCLUDE_SVFIR_SVFVALUE_H_
|
|
31
|
+
#define INCLUDE_SVFIR_SVFVALUE_H_
|
|
32
|
+
|
|
33
|
+
#include "SVFIR/SVFType.h"
|
|
34
|
+
#include "Graphs/GraphPrinter.h"
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
namespace SVF
|
|
38
|
+
{
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class SVFValue
|
|
42
|
+
{
|
|
43
|
+
|
|
44
|
+
public:
|
|
45
|
+
|
|
46
|
+
enum GNodeK
|
|
47
|
+
{
|
|
48
|
+
// ┌─────────────────────────────────────────────────────────────────────────┐
|
|
49
|
+
// │ ICFGNode: Classes of inter-procedural and intra-procedural control flow │
|
|
50
|
+
// │ graph nodes (Parent class: ICFGNode) │
|
|
51
|
+
// └─────────────────────────────────────────────────────────────────────────┘
|
|
52
|
+
IntraBlock, // ├── Represents a node within a single procedure
|
|
53
|
+
GlobalBlock, // ├── Represents a global-level block
|
|
54
|
+
// │ └─ Subclass: InterICFGNode
|
|
55
|
+
FunEntryBlock, // │ ├── Entry point of a function
|
|
56
|
+
FunExitBlock, // │ ├── Exit point of a function
|
|
57
|
+
FunCallBlock, // │ ├── Call site in the function
|
|
58
|
+
FunRetBlock, // │ └── Return site in the function
|
|
59
|
+
|
|
60
|
+
// ┌─────────────────────────────────────────────────────────────────────────┐
|
|
61
|
+
// │ SVFVar: Classes of variable nodes (Parent class: SVFVar) │
|
|
62
|
+
// │ Includes two main subclasses: ValVar and ObjVar │
|
|
63
|
+
// └─────────────────────────────────────────────────────────────────────────┘
|
|
64
|
+
// └─ Subclass: ValVar (Top-level variable nodes)
|
|
65
|
+
ValNode, // ├── Represents a standard value variable
|
|
66
|
+
ArgValNode, // ├── Represents an argument value variable
|
|
67
|
+
FunValNode, // ├── Represents a function value variable
|
|
68
|
+
GepValNode, // ├── Represents a GEP value variable
|
|
69
|
+
RetValNode, // ├── Represents a return value node
|
|
70
|
+
VarargValNode, // ├── Represents a variadic argument node
|
|
71
|
+
GlobalValNode, // ├── Represents a global variable node
|
|
72
|
+
ConstAggValNode, // ├── Represents a constant aggregate value node
|
|
73
|
+
// │ └─ Subclass: ConstDataValVar
|
|
74
|
+
ConstDataValNode, // │ ├── Represents a constant data variable
|
|
75
|
+
BlackHoleValNode, // │ ├── Represents a black hole node
|
|
76
|
+
ConstFPValNode, // │ ├── Represents a constant floating-point value node
|
|
77
|
+
ConstIntValNode, // │ ├── Represents a constant integer value node
|
|
78
|
+
ConstNullptrValNode, // │ └── Represents a constant nullptr value node
|
|
79
|
+
// │ └─ Subclass: DummyValVar
|
|
80
|
+
DummyValNode, // │ └── Dummy node for uninitialized values
|
|
81
|
+
|
|
82
|
+
// └─ Subclass: ObjVar (Object variable nodes)
|
|
83
|
+
ObjNode, // ├── Represents an object variable
|
|
84
|
+
// │ └─ Subclass: GepObjVar
|
|
85
|
+
GepObjNode, // │ ├── Represents a GEP object variable
|
|
86
|
+
// │ └─ Subclass: BaseObjVar
|
|
87
|
+
BaseObjNode, // │ ├── Represents a base object node
|
|
88
|
+
FunObjNode, // │ ├── Represents a function object
|
|
89
|
+
HeapObjNode, // │ ├── Represents a heap object
|
|
90
|
+
StackObjNode, // │ ├── Represents a stack object
|
|
91
|
+
GlobalObjNode, // │ ├── Represents a global object
|
|
92
|
+
ConstAggObjNode, // │ ├── Represents a constant aggregate object
|
|
93
|
+
// │ └─ Subclass: ConstDataObjVar
|
|
94
|
+
ConstDataObjNode, // │ ├── Represents a constant data object
|
|
95
|
+
ConstFPObjNode, // │ ├── Represents a constant floating-point object
|
|
96
|
+
ConstIntObjNode, // │ ├── Represents a constant integer object
|
|
97
|
+
ConstNullptrObjNode, // │ └── Represents a constant nullptr object
|
|
98
|
+
// │ └─ Subclass: DummyObjVar
|
|
99
|
+
DummyObjNode, // │ └── Dummy node for uninitialized objects
|
|
100
|
+
|
|
101
|
+
// ┌─────────────────────────────────────────────────────────────────────────┐
|
|
102
|
+
// │ VFGNode: Classes of Value Flow Graph (VFG) node kinds (Parent class: │
|
|
103
|
+
// │ VFGNode) │
|
|
104
|
+
// │ Includes operation nodes and specialized subclasses │
|
|
105
|
+
// └─────────────────────────────────────────────────────────────────────────┘
|
|
106
|
+
Cmp, // ├── Represents a comparison operation
|
|
107
|
+
BinaryOp, // ├── Represents a binary operation
|
|
108
|
+
UnaryOp, // ├── Represents a unary operation
|
|
109
|
+
Branch, // ├── Represents a branch operation
|
|
110
|
+
DummyVProp, // ├── Dummy node for value propagation
|
|
111
|
+
NPtr, // ├── Represents a null pointer operation
|
|
112
|
+
// │ └─ Subclass: ArgumentVFGNode
|
|
113
|
+
FRet, // │ ├── Represents a function return value
|
|
114
|
+
ARet, // │ ├── Represents an argument return value
|
|
115
|
+
AParm, // │ ├── Represents an argument parameter
|
|
116
|
+
FParm, // │ └── Represents a function parameter
|
|
117
|
+
// │ └─ Subclass: StmtVFGNode
|
|
118
|
+
Addr, // │ ├── Represents an address operation
|
|
119
|
+
Copy, // │ ├── Represents a copy operation
|
|
120
|
+
Gep, // │ ├── Represents a GEP operation
|
|
121
|
+
Store, // │ ├── Represents a store operation
|
|
122
|
+
Load, // │ └── Represents a load operation
|
|
123
|
+
// │ └─ Subclass: PHIVFGNode
|
|
124
|
+
TPhi, // │ ├── Represents a type-based PHI node
|
|
125
|
+
TIntraPhi, // │ ├── Represents an intra-procedural PHI node
|
|
126
|
+
TInterPhi, // │ └── Represents an inter-procedural PHI node
|
|
127
|
+
// │ └─ Subclass: MRSVFGNode
|
|
128
|
+
FPIN, // │ ├── Function parameter input
|
|
129
|
+
FPOUT, // │ ├── Function parameter output
|
|
130
|
+
APIN, // │ ├── Argument parameter input
|
|
131
|
+
APOUT, // │ └── Argument parameter output
|
|
132
|
+
// │ └─ Subclass: MSSAPHISVFGNode
|
|
133
|
+
MPhi, // │ ├── Memory PHI node
|
|
134
|
+
MIntraPhi, // │ ├── Intra-procedural memory PHI node
|
|
135
|
+
MInterPhi, // │ └── Inter-procedural memory PHI node
|
|
136
|
+
|
|
137
|
+
// ┌─────────────────────────────────────────────────────────────────────────┐
|
|
138
|
+
// │ Additional specific graph node types │
|
|
139
|
+
// └─────────────────────────────────────────────────────────────────────────┘
|
|
140
|
+
CallNodeKd, // Callgraph node
|
|
141
|
+
CDNodeKd, // Control dependence graph node
|
|
142
|
+
CFLNodeKd, // CFL graph node
|
|
143
|
+
CHNodeKd, // Class hierarchy graph node
|
|
144
|
+
ConstraintNodeKd, // Constraint graph node
|
|
145
|
+
TCTNodeKd, // Thread creation tree node
|
|
146
|
+
DCHNodeKd, // DCHG node
|
|
147
|
+
BasicBlockKd, // Basic block node
|
|
148
|
+
OtherKd // Other node kind
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
SVFValue(NodeID i, GNodeK k, const SVFType* ty = nullptr): id(i),nodeKind(k), type(ty)
|
|
153
|
+
{
|
|
154
|
+
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/// Get ID
|
|
158
|
+
inline NodeID getId() const
|
|
159
|
+
{
|
|
160
|
+
return id;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/// Get node kind
|
|
164
|
+
inline GNodeK getNodeKind() const
|
|
165
|
+
{
|
|
166
|
+
return nodeKind;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
virtual const SVFType* getType() const
|
|
170
|
+
{
|
|
171
|
+
return type;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
inline virtual void setName(const std::string& nameInfo)
|
|
175
|
+
{
|
|
176
|
+
name = nameInfo;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
inline virtual void setName(std::string&& nameInfo)
|
|
180
|
+
{
|
|
181
|
+
name = std::move(nameInfo);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
virtual const std::string& getName() const
|
|
185
|
+
{
|
|
186
|
+
return name;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
inline virtual void setSourceLoc(const std::string& sourceCodeInfo)
|
|
190
|
+
{
|
|
191
|
+
sourceLoc = sourceCodeInfo;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
virtual const std::string getSourceLoc() const
|
|
195
|
+
{
|
|
196
|
+
return sourceLoc;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const std::string valueOnlyToString() const;
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
protected:
|
|
203
|
+
NodeID id; ///< Node ID
|
|
204
|
+
GNodeK nodeKind; ///< Node kind
|
|
205
|
+
const SVFType* type; ///< SVF type
|
|
206
|
+
|
|
207
|
+
std::string name;
|
|
208
|
+
std::string sourceLoc; ///< Source code information of this value
|
|
209
|
+
|
|
210
|
+
/// Helper functions to check node kinds
|
|
211
|
+
//{@ Check node kind
|
|
212
|
+
static inline bool isICFGNodeKinds(GNodeK n)
|
|
213
|
+
{
|
|
214
|
+
static_assert(FunRetBlock - IntraBlock == 5,
|
|
215
|
+
"the number of ICFGNodeKinds has changed, make sure "
|
|
216
|
+
"the range is correct");
|
|
217
|
+
return n <= FunRetBlock && n >= IntraBlock;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
static inline bool isInterICFGNodeKind(GNodeK n)
|
|
221
|
+
{
|
|
222
|
+
static_assert(FunRetBlock - FunEntryBlock == 3,
|
|
223
|
+
"the number of InterICFGNodeKind has changed, make sure "
|
|
224
|
+
"the range is correct");
|
|
225
|
+
return n <= FunRetBlock && n >= FunEntryBlock;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
static inline bool isSVFVarKind(GNodeK n)
|
|
229
|
+
{
|
|
230
|
+
static_assert(DummyObjNode - ValNode == 26,
|
|
231
|
+
"The number of SVFVarKinds has changed, make sure the "
|
|
232
|
+
"range is correct");
|
|
233
|
+
|
|
234
|
+
return n <= DummyObjNode && n >= ValNode;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
static inline bool isValVarKinds(GNodeK n)
|
|
238
|
+
{
|
|
239
|
+
static_assert(DummyValNode - ValNode == 13,
|
|
240
|
+
"The number of ValVarKinds has changed, make sure the "
|
|
241
|
+
"range is correct");
|
|
242
|
+
return n <= DummyValNode && n >= ValNode;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
static inline bool isConstantDataValVar(GNodeK n)
|
|
247
|
+
{
|
|
248
|
+
static_assert(ConstNullptrValNode - ConstDataValNode == 4,
|
|
249
|
+
"The number of ConstantDataValVarKinds has changed, make "
|
|
250
|
+
"sure the range is correct");
|
|
251
|
+
return n <= ConstNullptrValNode && n >= ConstDataValNode;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
static inline bool isObjVarKinds(GNodeK n)
|
|
255
|
+
{
|
|
256
|
+
static_assert(DummyObjNode - ObjNode == 12,
|
|
257
|
+
"The number of ObjVarKinds has changed, make sure the "
|
|
258
|
+
"range is correct");
|
|
259
|
+
return n <= DummyObjNode && n >= ObjNode;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
static inline bool isBaseObjVarKinds(GNodeK n)
|
|
263
|
+
{
|
|
264
|
+
static_assert(DummyObjNode - BaseObjNode == 10,
|
|
265
|
+
"The number of BaseObjVarKinds has changed, make sure the "
|
|
266
|
+
"range is correct");
|
|
267
|
+
return n <= DummyObjNode && n >= BaseObjNode;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
static inline bool isConstantDataObjVarKinds(GNodeK n)
|
|
271
|
+
{
|
|
272
|
+
static_assert(ConstNullptrObjNode - ConstDataObjNode == 3,
|
|
273
|
+
"The number of ConstantDataObjVarKinds has changed, make "
|
|
274
|
+
"sure the range is correct");
|
|
275
|
+
return n <= ConstNullptrObjNode && n >= ConstDataObjNode;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
static inline bool isVFGNodeKinds(GNodeK n)
|
|
279
|
+
{
|
|
280
|
+
static_assert(MInterPhi - Cmp == 24,
|
|
281
|
+
"The number of VFGNodeKinds has changed, make sure the "
|
|
282
|
+
"range is correct");
|
|
283
|
+
return n <= MInterPhi && n >= Cmp;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
static inline bool isArgumentVFGNodeKinds(GNodeK n)
|
|
287
|
+
{
|
|
288
|
+
static_assert(FParm - FRet == 3,
|
|
289
|
+
"The number of ArgumentVFGNodeKinds has changed, make "
|
|
290
|
+
"sure the range is correct");
|
|
291
|
+
return n <= FParm && n >= FRet;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
static inline bool isStmtVFGNodeKinds(GNodeK n)
|
|
295
|
+
{
|
|
296
|
+
static_assert(Load - Addr == 4,
|
|
297
|
+
"The number of StmtVFGNodeKinds has changed, make sure "
|
|
298
|
+
"the range is correct");
|
|
299
|
+
return n <= Load && n >= Addr;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
static inline bool isPHIVFGNodeKinds(GNodeK n)
|
|
303
|
+
{
|
|
304
|
+
static_assert(TInterPhi - TPhi == 2,
|
|
305
|
+
"The number of PHIVFGNodeKinds has changed, make sure "
|
|
306
|
+
"the range is correct");
|
|
307
|
+
return n <= TInterPhi && n >= TPhi;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
static inline bool isMRSVFGNodeKinds(GNodeK n)
|
|
311
|
+
{
|
|
312
|
+
static_assert(MInterPhi - FPIN == 6,
|
|
313
|
+
"The number of MRSVFGNodeKinds has changed, make sure "
|
|
314
|
+
"the range is correct");
|
|
315
|
+
return n <= MInterPhi && n >= FPIN;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
static inline bool isMSSAPHISVFGNodeKinds(GNodeK n)
|
|
319
|
+
{
|
|
320
|
+
static_assert(MInterPhi - MPhi == 2,
|
|
321
|
+
"The number of MSSAPHISVFGNodeKinds has changed, make "
|
|
322
|
+
"sure the range is correct");
|
|
323
|
+
return n <= MInterPhi && n >= MPhi;
|
|
324
|
+
}
|
|
325
|
+
//@}
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
template <typename F, typename S>
|
|
330
|
+
OutStream& operator<< (OutStream &o, const std::pair<F, S> &var)
|
|
331
|
+
{
|
|
332
|
+
o << "<" << var.first << ", " << var.second << ">";
|
|
333
|
+
return o;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
#endif /* INCLUDE_SVFIR_SVFVALUE_H_ */
|