svf-tools 1.0.442 → 1.0.445
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-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/BDDExpr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/BitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp.html +86 -0
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +104 -0
- package/SVF-doxygen/html/html/CFGNormalizer_8h.html +95 -0
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +95 -0
- package/SVF-doxygen/html/html/CFLAlias_8h.html +100 -0
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +136 -0
- package/SVF-doxygen/html/html/CFLGrammar_8cpp.html +81 -0
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +90 -0
- package/SVF-doxygen/html/html/CFLGrammar_8h.html +97 -0
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +114 -0
- package/SVF-doxygen/html/html/CFLGraph_8cpp.html +96 -0
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +123 -0
- package/SVF-doxygen/html/html/CFLGraph_8h.html +124 -0
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +114 -0
- package/SVF-doxygen/html/html/CFLSolver_8cpp.html +80 -0
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +107 -0
- package/SVF-doxygen/html/html/CFLSolver_8h.html +6 -5
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +27 -33
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CallGraphBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Casting_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +6 -6
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/GrammarBuilder_8cpp.html +94 -0
- package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +92 -0
- package/SVF-doxygen/html/html/GrammarBuilder_8h.html +96 -0
- package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +87 -0
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Graph2Json_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GraphReachSolver_8h.html +96 -0
- package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +113 -0
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8cpp_source.html +7 -2
- package/SVF-doxygen/html/html/Options_8h_source.html +7 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SCC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8h.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +61 -61
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +302 -288
- package/SVF-doxygen/html/html/cfl_8cpp.html +171 -0
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +95 -0
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +52 -52
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +59 -59
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +90 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +458 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +216 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +801 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge-members.html +96 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +216 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +110 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +591 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +122 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +756 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode-members.html +118 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +257 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +17 -28
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +181 -548
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +64 -64
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +66 -66
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +48 -48
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +59 -59
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +8 -24
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase-members.html +93 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +399 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder-members.html +85 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +226 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver-members.html +106 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +937 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +81 -81
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +80 -75
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +130 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +207 -207
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +0 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +42 -42
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +45 -45
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +61 -61
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +5 -5
- package/SVF-doxygen/html/html/classes.html +103 -101
- package/SVF-doxygen/html/html/cuddInt_8c.html +6 -6
- package/SVF-doxygen/html/html/cuddInt_8c_source.html +2 -2
- package/SVF-doxygen/html/html/cudd_8h.html +4 -4
- package/SVF-doxygen/html/html/dda_8cpp.html +2 -46
- package/SVF-doxygen/html/html/dda_8cpp_source.html +4 -5
- package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -0
- package/SVF-doxygen/html/html/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html +2 -0
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html +2 -0
- package/SVF-doxygen/html/html/dir_98f9a352f241e0e917d4efaa4086f6e8.html +89 -0
- package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +91 -0
- package/SVF-doxygen/html/html/dir_d44c64559bbebec7f509842c48db8b23.html +2 -0
- package/SVF-doxygen/html/html/dir_e6cca4e14eddbb730e0cbe3cab632ce5.html +83 -0
- package/SVF-doxygen/html/html/dir_fa02919a30fec2d2c2d591b4d920d648.html +2 -0
- package/SVF-doxygen/html/html/files.html +268 -252
- package/SVF-doxygen/html/html/functions.html +2 -1
- package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_a.html +16 -14
- package/SVF-doxygen/html/html/functions_b.html +16 -5
- package/SVF-doxygen/html/html/functions_c.html +69 -26
- package/SVF-doxygen/html/html/functions_d.html +3 -1
- package/SVF-doxygen/html/html/functions_e.html +19 -4
- package/SVF-doxygen/html/html/functions_eval.html +0 -6
- package/SVF-doxygen/html/html/functions_eval_c.html +9 -0
- package/SVF-doxygen/html/html/functions_eval_f.html +0 -3
- package/SVF-doxygen/html/html/functions_f.html +28 -21
- package/SVF-doxygen/html/html/functions_func.html +18 -10
- package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_func_b.html +19 -8
- package/SVF-doxygen/html/html/functions_func_c.html +42 -18
- package/SVF-doxygen/html/html/functions_func_d.html +4 -2
- package/SVF-doxygen/html/html/functions_func_e.html +10 -1
- package/SVF-doxygen/html/html/functions_func_f.html +6 -3
- package/SVF-doxygen/html/html/functions_func_g.html +56 -10
- package/SVF-doxygen/html/html/functions_func_h.html +12 -2
- package/SVF-doxygen/html/html/functions_func_i.html +19 -9
- package/SVF-doxygen/html/html/functions_func_n.html +7 -1
- package/SVF-doxygen/html/html/functions_func_p.html +8 -4
- package/SVF-doxygen/html/html/functions_func_s.html +20 -6
- package/SVF-doxygen/html/html/functions_func_v.html +3 -2
- package/SVF-doxygen/html/html/functions_g.html +86 -21
- package/SVF-doxygen/html/html/functions_h.html +15 -5
- package/SVF-doxygen/html/html/functions_i.html +27 -12
- package/SVF-doxygen/html/html/functions_l.html +5 -2
- package/SVF-doxygen/html/html/functions_n.html +22 -7
- package/SVF-doxygen/html/html/functions_o.html +6 -6
- package/SVF-doxygen/html/html/functions_p.html +23 -16
- package/SVF-doxygen/html/html/functions_r.html +11 -6
- package/SVF-doxygen/html/html/functions_s.html +53 -17
- package/SVF-doxygen/html/html/functions_t.html +11 -7
- package/SVF-doxygen/html/html/functions_type_c.html +5 -1
- package/SVF-doxygen/html/html/functions_type_g.html +6 -3
- package/SVF-doxygen/html/html/functions_type_i.html +4 -2
- package/SVF-doxygen/html/html/functions_type_n.html +6 -3
- package/SVF-doxygen/html/html/functions_type_p.html +9 -0
- package/SVF-doxygen/html/html/functions_type_s.html +6 -0
- package/SVF-doxygen/html/html/functions_type_w.html +3 -1
- package/SVF-doxygen/html/html/functions_v.html +2 -1
- package/SVF-doxygen/html/html/functions_vars.html +2 -1
- package/SVF-doxygen/html/html/functions_vars_c.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_e.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_f.html +9 -0
- package/SVF-doxygen/html/html/functions_vars_g.html +17 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_n.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_r.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_s.html +16 -0
- package/SVF-doxygen/html/html/functions_vars_t.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_w.html +3 -1
- package/SVF-doxygen/html/html/functions_w.html +15 -1
- package/SVF-doxygen/html/html/globals_func_i.html +3 -10
- package/SVF-doxygen/html/html/globals_func_m.html +12 -11
- package/SVF-doxygen/html/html/globals_func_s.html +1 -0
- package/SVF-doxygen/html/html/globals_i.html +3 -10
- package/SVF-doxygen/html/html/globals_m.html +14 -13
- package/SVF-doxygen/html/html/globals_s.html +8 -7
- package/SVF-doxygen/html/html/hierarchy.html +433 -417
- package/SVF-doxygen/html/html/mta_8cpp.html +2 -46
- package/SVF-doxygen/html/html/mta_8cpp_source.html +3 -4
- package/SVF-doxygen/html/html/namespaceSVF.html +83 -6
- package/SVF-doxygen/html/html/namespacellvm.html +9 -0
- package/SVF-doxygen/html/html/namespacemembers_c.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_g.html +11 -2
- package/SVF-doxygen/html/html/namespacemembers_type.html +10 -1
- package/SVF-doxygen/html/html/saber_8cpp.html +2 -46
- package/SVF-doxygen/html/html/saber_8cpp_source.html +4 -5
- package/SVF-doxygen/html/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +4 -4
- package/SVF-doxygen/html/html/search/all_10.js +8 -6
- package/SVF-doxygen/html/html/search/all_12.js +2 -1
- package/SVF-doxygen/html/html/search/all_13.js +20 -11
- package/SVF-doxygen/html/html/search/all_14.js +5 -3
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_1b.js +6 -0
- package/SVF-doxygen/html/html/search/all_2.js +6 -4
- package/SVF-doxygen/html/html/search/all_3.js +27 -4
- package/SVF-doxygen/html/html/search/all_4.js +3 -2
- package/SVF-doxygen/html/html/search/all_5.js +5 -0
- package/SVF-doxygen/html/html/search/all_6.js +8 -5
- package/SVF-doxygen/html/html/search/all_7.js +40 -13
- package/SVF-doxygen/html/html/search/all_8.js +4 -1
- package/SVF-doxygen/html/html/search/all_9.js +9 -7
- package/SVF-doxygen/html/html/search/all_c.js +2 -1
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +9 -5
- package/SVF-doxygen/html/html/search/all_f.js +4 -4
- package/SVF-doxygen/html/html/search/classes_2.js +7 -0
- package/SVF-doxygen/html/html/search/classes_3.js +1 -0
- package/SVF-doxygen/html/html/search/classes_5.js +1 -0
- package/SVF-doxygen/html/html/search/classes_6.js +7 -0
- package/SVF-doxygen/html/html/search/enumvalues_0.js +0 -2
- package/SVF-doxygen/html/html/search/enumvalues_2.js +3 -0
- package/SVF-doxygen/html/html/search/enumvalues_5.js +0 -1
- package/SVF-doxygen/html/html/search/files_2.js +11 -1
- package/SVF-doxygen/html/html/search/files_6.js +4 -1
- package/SVF-doxygen/html/html/search/functions_0.js +4 -2
- package/SVF-doxygen/html/html/search/functions_1.js +6 -4
- package/SVF-doxygen/html/html/search/functions_10.js +7 -3
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/SVF-doxygen/html/html/search/functions_16.js +6 -0
- package/SVF-doxygen/html/html/search/functions_2.js +8 -0
- package/SVF-doxygen/html/html/search/functions_3.js +2 -2
- package/SVF-doxygen/html/html/search/functions_4.js +3 -0
- package/SVF-doxygen/html/html/search/functions_5.js +3 -3
- package/SVF-doxygen/html/html/search/functions_6.js +22 -10
- package/SVF-doxygen/html/html/search/functions_7.js +4 -1
- package/SVF-doxygen/html/html/search/functions_8.js +5 -4
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_c.js +2 -0
- package/SVF-doxygen/html/html/search/functions_e.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +3 -2
- package/SVF-doxygen/html/html/search/typedefs_6.js +6 -3
- package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_d.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_f.js +2 -0
- package/SVF-doxygen/html/html/search/variables_0.js +1 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -0
- package/SVF-doxygen/html/html/search/variables_13.js +5 -0
- package/SVF-doxygen/html/html/search/variables_14.js +3 -1
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +2 -0
- package/SVF-doxygen/html/html/search/variables_5.js +3 -1
- package/SVF-doxygen/html/html/search/variables_6.js +3 -0
- package/SVF-doxygen/html/html/search/variables_7.js +5 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -0
- package/SVF-doxygen/html/html/search/variables_c.js +1 -0
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +2 -0
- package/SVF-doxygen/html/html/st_8c.html +4 -4
- package/SVF-doxygen/html/html/st_8c_source.html +2 -2
- package/SVF-doxygen/html/html/st_8h.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4-members.html +87 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +381 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +100 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +122 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +96 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +10 -54
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -9
- package/SVF-doxygen/html/html/tools_2CFL_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/wpa_8cpp.html +2 -46
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +3 -4
- package/include/CFL/CFGNormalizer.h +70 -0
- package/include/CFL/CFLAlias.h +124 -0
- package/include/CFL/CFLGrammar.h +127 -0
- package/include/CFL/CFLSolver.h +94 -0
- package/include/CFL/GrammarBuilder.h +65 -0
- package/include/Graphs/CFLGraph.h +175 -0
- package/include/Graphs/IRGraph.h +1 -1
- package/include/MemoryModel/PointerAnalysis.h +3 -3
- package/include/SABER/SrcSnkDDA.h +3 -2
- package/include/Util/GraphReachSolver.h +186 -0
- package/include/Util/Options.h +6 -0
- package/lib/CFL/CFGNormalizer.cpp +329 -0
- package/lib/CFL/CFLGrammar.cpp +101 -0
- package/lib/CFL/CFLSolver.cpp +106 -0
- package/lib/CFL/GrammarBuilder.cpp +155 -0
- package/lib/CMakeLists.txt +1 -0
- package/lib/Graphs/CFLGraph.cpp +225 -0
- package/lib/Util/Options.cpp +31 -0
- package/package.json +1 -1
- package/tools/CFL/CMakeLists.txt +12 -0
- package/tools/CFL/cfl.cpp +80 -0
- package/tools/CMakeLists.txt +1 -0
- package/tools/DDA/dda.cpp +0 -3
- package/tools/Example/svf-ex.cpp +0 -3
- package/tools/MTA/mta.cpp +0 -4
- package/tools/SABER/saber.cpp +0 -3
- package/tools/WPA/wpa.cpp +0 -4
|
@@ -81,10 +81,10 @@ Inheritance diagram for SVF::SrcSnkDDA:</div>
|
|
|
81
81
|
<div class="center">
|
|
82
82
|
<img src="classSVF_1_1SrcSnkDDA.png" usemap="#SVF::SrcSnkDDA_map" alt=""/>
|
|
83
83
|
<map id="SVF::SrcSnkDDA_map" name="SVF::SrcSnkDDA_map">
|
|
84
|
-
<area href="
|
|
85
|
-
<area href="classSVF_1_1LeakChecker.html" alt="SVF::LeakChecker" shape="rect" coords="
|
|
86
|
-
<area href="classSVF_1_1DoubleFreeChecker.html" alt="SVF::DoubleFreeChecker" shape="rect" coords="0,168,
|
|
87
|
-
<area href="classSVF_1_1FileChecker.html" alt="SVF::FileChecker" shape="rect" coords="
|
|
84
|
+
<area href="classSVF_1_1GraphReachSolver.html" alt="SVF::GraphReachSolver< GraphType, DPIm >" shape="rect" coords="148,0,435,24"/>
|
|
85
|
+
<area href="classSVF_1_1LeakChecker.html" alt="SVF::LeakChecker" shape="rect" coords="148,112,435,136"/>
|
|
86
|
+
<area href="classSVF_1_1DoubleFreeChecker.html" alt="SVF::DoubleFreeChecker" shape="rect" coords="0,168,287,192"/>
|
|
87
|
+
<area href="classSVF_1_1FileChecker.html" alt="SVF::FileChecker" shape="rect" coords="297,168,584,192"/>
|
|
88
88
|
</map>
|
|
89
89
|
</div></div>
|
|
90
90
|
<table class="memberdecls">
|
|
@@ -110,26 +110,26 @@ Public Types</h2></td></tr>
|
|
|
110
110
|
<tr class="separator:a70cff8ea7c033c01400935c9e446f2c6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
111
111
|
<tr class="memitem:a3c0d8850c4dae49a760ce5f80fb8822a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1ProgSlice.html#a684e44ade783439c6f77a8d84eed282c">ProgSlice::VFWorkList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">WorkList</a></td></tr>
|
|
112
112
|
<tr class="separator:a3c0d8850c4dae49a760ce5f80fb8822a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
113
|
-
<tr class="inherit_header
|
|
114
|
-
<tr class="memitem:
|
|
115
|
-
<tr class="memdesc:
|
|
116
|
-
<tr class="separator:
|
|
117
|
-
<tr class="memitem:
|
|
118
|
-
<tr class="separator:
|
|
119
|
-
<tr class="memitem:
|
|
120
|
-
<tr class="separator:
|
|
121
|
-
<tr class="memitem:
|
|
122
|
-
<tr class="separator:
|
|
123
|
-
<tr class="memitem:
|
|
124
|
-
<tr class="separator:
|
|
125
|
-
<tr class="memitem:
|
|
126
|
-
<tr class="memdesc:
|
|
127
|
-
<tr class="separator:
|
|
128
|
-
<tr class="memitem:
|
|
129
|
-
<tr class="separator:
|
|
130
|
-
<tr class="memitem:
|
|
131
|
-
<tr class="memdesc:
|
|
132
|
-
<tr class="separator:
|
|
113
|
+
<tr class="inherit_header pub_types_classSVF_1_1GraphReachSolver"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1GraphReachSolver')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="classSVF_1_1GraphReachSolver.html">SVF::GraphReachSolver< GraphType, DPIm ></a></td></tr>
|
|
114
|
+
<tr class="memitem:a2ede2e8b4c0f44d7f1d5ab7684915556 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef llvm::GraphTraits< GraphType > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a2ede2e8b4c0f44d7f1d5ab7684915556">GTraits</a></td></tr>
|
|
115
|
+
<tr class="memdesc:a2ede2e8b4c0f44d7f1d5ab7684915556 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">Define the GTraits and node iterator. <a href="classSVF_1_1GraphReachSolver.html#a2ede2e8b4c0f44d7f1d5ab7684915556">More...</a><br /></td></tr>
|
|
116
|
+
<tr class="separator:a2ede2e8b4c0f44d7f1d5ab7684915556 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
117
|
+
<tr class="memitem:af499845fe35ebe782f660146808506de inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::NodeType </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#af499845fe35ebe782f660146808506de">GNODE</a></td></tr>
|
|
118
|
+
<tr class="separator:af499845fe35ebe782f660146808506de inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
119
|
+
<tr class="memitem:a8a42bdbb5987d0a340f9935f09e2acd2 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::EdgeType </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a8a42bdbb5987d0a340f9935f09e2acd2">GEDGE</a></td></tr>
|
|
120
|
+
<tr class="separator:a8a42bdbb5987d0a340f9935f09e2acd2 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
121
|
+
<tr class="memitem:a4e5126b0e97e490ce65804e2017f0084 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::nodes_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a4e5126b0e97e490ce65804e2017f0084">node_iterator</a></td></tr>
|
|
122
|
+
<tr class="separator:a4e5126b0e97e490ce65804e2017f0084 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
123
|
+
<tr class="memitem:ad3fb81ac5017c6c3dc4b2b3b65b3ca04 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::ChildIteratorType </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#ad3fb81ac5017c6c3dc4b2b3b65b3ca04">child_iterator</a></td></tr>
|
|
124
|
+
<tr class="separator:ad3fb81ac5017c6c3dc4b2b3b65b3ca04 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
125
|
+
<tr class="memitem:aa1542934a87c9edce00355fe2d690b9e inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef llvm::GraphTraits< llvm::Inverse< <a class="el" href="classSVF_1_1GraphReachSolver.html#af499845fe35ebe782f660146808506de">GNODE</a> * > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#aa1542934a87c9edce00355fe2d690b9e">InvGTraits</a></td></tr>
|
|
126
|
+
<tr class="memdesc:aa1542934a87c9edce00355fe2d690b9e inherit pub_types_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">Define inverse GTraits and note iterator. <a href="classSVF_1_1GraphReachSolver.html#aa1542934a87c9edce00355fe2d690b9e">More...</a><br /></td></tr>
|
|
127
|
+
<tr class="separator:aa1542934a87c9edce00355fe2d690b9e inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
128
|
+
<tr class="memitem:a40fe9f5863619ee7c11a630e4fd89a91 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef InvGTraits::ChildIteratorType </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a40fe9f5863619ee7c11a630e4fd89a91">inv_child_iterator</a></td></tr>
|
|
129
|
+
<tr class="separator:a40fe9f5863619ee7c11a630e4fd89a91 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
130
|
+
<tr class="memitem:a472784c3cb958b4347958f039d2fe054 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a>< DPIm > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a472784c3cb958b4347958f039d2fe054">WorkList</a></td></tr>
|
|
131
|
+
<tr class="memdesc:a472784c3cb958b4347958f039d2fe054 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">Define worklist. <a href="classSVF_1_1GraphReachSolver.html#a472784c3cb958b4347958f039d2fe054">More...</a><br /></td></tr>
|
|
132
|
+
<tr class="separator:a472784c3cb958b4347958f039d2fe054 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
133
133
|
</table><table class="memberdecls">
|
|
134
134
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
135
135
|
Public Member Functions</h2></td></tr>
|
|
@@ -257,47 +257,47 @@ Protected Member Functions</h2></td></tr>
|
|
|
257
257
|
<tr class="separator:a8817604b20724703121e9466e5cdb4cd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
258
258
|
<tr class="memitem:ae3d665ff1e796348131e797eb0283bfb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#ae3d665ff1e796348131e797eb0283bfb">printBDDStat</a> ()</td></tr>
|
|
259
259
|
<tr class="separator:ae3d665ff1e796348131e797eb0283bfb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
260
|
-
<tr class="inherit_header
|
|
261
|
-
<tr class="memitem:
|
|
262
|
-
<tr class="memdesc:
|
|
263
|
-
<tr class="separator:
|
|
264
|
-
<tr class="memitem:
|
|
265
|
-
<tr class="memdesc:
|
|
266
|
-
<tr class="separator:
|
|
267
|
-
<tr class="memitem:
|
|
268
|
-
<tr class="separator:
|
|
269
|
-
<tr class="memitem:
|
|
270
|
-
<tr class="separator:
|
|
271
|
-
<tr class="memitem:
|
|
272
|
-
<tr class="memdesc:
|
|
273
|
-
<tr class="separator:
|
|
274
|
-
<tr class="memitem:
|
|
275
|
-
<tr class="memdesc:
|
|
276
|
-
<tr class="separator:
|
|
277
|
-
<tr class="memitem:
|
|
278
|
-
<tr class="memdesc:
|
|
279
|
-
<tr class="separator:
|
|
280
|
-
<tr class="memitem:
|
|
281
|
-
<tr class="separator:
|
|
282
|
-
<tr class="memitem:
|
|
283
|
-
<tr class="memdesc:
|
|
284
|
-
<tr class="separator:
|
|
285
|
-
<tr class="memitem:
|
|
286
|
-
<tr class="separator:
|
|
287
|
-
<tr class="memitem:
|
|
288
|
-
<tr class="memdesc:
|
|
289
|
-
<tr class="separator:
|
|
290
|
-
<tr class="memitem:
|
|
291
|
-
<tr class="separator:
|
|
292
|
-
<tr class="memitem:
|
|
293
|
-
<tr class="memdesc:
|
|
294
|
-
<tr class="separator:
|
|
295
|
-
<tr class="memitem:
|
|
296
|
-
<tr class="separator:
|
|
297
|
-
<tr class="memitem:
|
|
298
|
-
<tr class="separator:
|
|
299
|
-
<tr class="memitem:
|
|
300
|
-
<tr class="separator:
|
|
260
|
+
<tr class="inherit_header pro_methods_classSVF_1_1GraphReachSolver"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1GraphReachSolver')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classSVF_1_1GraphReachSolver.html">SVF::GraphReachSolver< GraphType, DPIm ></a></td></tr>
|
|
261
|
+
<tr class="memitem:a766dc60e7ce7b24b829ba591d069c174 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a766dc60e7ce7b24b829ba591d069c174">GraphReachSolver</a> ()</td></tr>
|
|
262
|
+
<tr class="memdesc:a766dc60e7ce7b24b829ba591d069c174 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="classSVF_1_1GraphReachSolver.html#a766dc60e7ce7b24b829ba591d069c174">More...</a><br /></td></tr>
|
|
263
|
+
<tr class="separator:a766dc60e7ce7b24b829ba591d069c174 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
264
|
+
<tr class="memitem:a31e78a14271a152f5b7c0d751a39312a inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a31e78a14271a152f5b7c0d751a39312a">~GraphReachSolver</a> ()</td></tr>
|
|
265
|
+
<tr class="memdesc:a31e78a14271a152f5b7c0d751a39312a inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="classSVF_1_1GraphReachSolver.html#a31e78a14271a152f5b7c0d751a39312a">More...</a><br /></td></tr>
|
|
266
|
+
<tr class="separator:a31e78a14271a152f5b7c0d751a39312a inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
267
|
+
<tr class="memitem:a0b7f0923105dfb198a2a8428d6c1ca98 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1GraphReachSolver.html#af499845fe35ebe782f660146808506de">GNODE</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a0b7f0923105dfb198a2a8428d6c1ca98">getNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id) const</td></tr>
|
|
268
|
+
<tr class="separator:a0b7f0923105dfb198a2a8428d6c1ca98 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
269
|
+
<tr class="memitem:a84f39b3234ddf8198c793ff8c5d59cdf inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a84f39b3234ddf8198c793ff8c5d59cdf">getNodeIDFromItem</a> (const DPIm &item) const</td></tr>
|
|
270
|
+
<tr class="separator:a84f39b3234ddf8198c793ff8c5d59cdf inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
271
|
+
<tr class="memitem:ad1ad147241183e1077a4691ebe7861b5 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">forwardTraverse</a> (DPIm &it)</td></tr>
|
|
272
|
+
<tr class="memdesc:ad1ad147241183e1077a4691ebe7861b5 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">CFL forward traverse solve. <a href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">More...</a><br /></td></tr>
|
|
273
|
+
<tr class="separator:ad1ad147241183e1077a4691ebe7861b5 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
274
|
+
<tr class="memitem:a8785ea71a1b0da03595fc8f594921819 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">backwardTraverse</a> (DPIm &it)</td></tr>
|
|
275
|
+
<tr class="memdesc:a8785ea71a1b0da03595fc8f594921819 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">CFL forward traverse solve. <a href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">More...</a><br /></td></tr>
|
|
276
|
+
<tr class="separator:a8785ea71a1b0da03595fc8f594921819 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
277
|
+
<tr class="memitem:a88775eedbbc3039caac1e350b48aa838 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">const GraphType </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a88775eedbbc3039caac1e350b48aa838">graph</a> () const</td></tr>
|
|
278
|
+
<tr class="memdesc:a88775eedbbc3039caac1e350b48aa838 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">Get/Set graph methods. <a href="classSVF_1_1GraphReachSolver.html#a88775eedbbc3039caac1e350b48aa838">More...</a><br /></td></tr>
|
|
279
|
+
<tr class="separator:a88775eedbbc3039caac1e350b48aa838 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
280
|
+
<tr class="memitem:a0298a692295a8a4eae32ab151aa6ccc3 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a0298a692295a8a4eae32ab151aa6ccc3">setGraph</a> (GraphType g)</td></tr>
|
|
281
|
+
<tr class="separator:a0298a692295a8a4eae32ab151aa6ccc3 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
282
|
+
<tr class="memitem:a6ea48755ca28468b426380e838494087 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a6ea48755ca28468b426380e838494087">FWProcessCurNode</a> (const DPIm &)</td></tr>
|
|
283
|
+
<tr class="memdesc:a6ea48755ca28468b426380e838494087 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">Process the DP item. <a href="classSVF_1_1GraphReachSolver.html#a6ea48755ca28468b426380e838494087">More...</a><br /></td></tr>
|
|
284
|
+
<tr class="separator:a6ea48755ca28468b426380e838494087 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
285
|
+
<tr class="memitem:a5b2ec04cbee0e457ed9d8a8a4c2e134f inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a5b2ec04cbee0e457ed9d8a8a4c2e134f">BWProcessCurNode</a> (const DPIm &)</td></tr>
|
|
286
|
+
<tr class="separator:a5b2ec04cbee0e457ed9d8a8a4c2e134f inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
287
|
+
<tr class="memitem:a3f205f7bc0f0ae1a14184bb8cae4bf92 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a3f205f7bc0f0ae1a14184bb8cae4bf92">FWProcessOutgoingEdge</a> (const DPIm &item, <a class="el" href="classSVF_1_1GraphReachSolver.html#a8a42bdbb5987d0a340f9935f09e2acd2">GEDGE</a> *edge)</td></tr>
|
|
288
|
+
<tr class="memdesc:a3f205f7bc0f0ae1a14184bb8cae4bf92 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">Propagation for the solving, to be implemented in the child class. <a href="classSVF_1_1GraphReachSolver.html#a3f205f7bc0f0ae1a14184bb8cae4bf92">More...</a><br /></td></tr>
|
|
289
|
+
<tr class="separator:a3f205f7bc0f0ae1a14184bb8cae4bf92 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
290
|
+
<tr class="memitem:aac7caf50b94caa7bd6960461c0c16014 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#aac7caf50b94caa7bd6960461c0c16014">BWProcessIncomingEdge</a> (const DPIm &item, <a class="el" href="classSVF_1_1GraphReachSolver.html#a8a42bdbb5987d0a340f9935f09e2acd2">GEDGE</a> *edge)</td></tr>
|
|
291
|
+
<tr class="separator:aac7caf50b94caa7bd6960461c0c16014 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
292
|
+
<tr class="memitem:a1638d1ccdcef472f2c54a2e18fc4130b inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">DPIm </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a1638d1ccdcef472f2c54a2e18fc4130b">popFromWorklist</a> ()</td></tr>
|
|
293
|
+
<tr class="memdesc:a1638d1ccdcef472f2c54a2e18fc4130b inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft"> </td><td class="mdescRight">Worklist operations. <a href="classSVF_1_1GraphReachSolver.html#a1638d1ccdcef472f2c54a2e18fc4130b">More...</a><br /></td></tr>
|
|
294
|
+
<tr class="separator:a1638d1ccdcef472f2c54a2e18fc4130b inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
295
|
+
<tr class="memitem:a53564d384938c19980cb138f720e34e9 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">pushIntoWorklist</a> (DPIm &item)</td></tr>
|
|
296
|
+
<tr class="separator:a53564d384938c19980cb138f720e34e9 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
297
|
+
<tr class="memitem:a7bfeccdf602cf901699e806e6c481f26 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a7bfeccdf602cf901699e806e6c481f26">isWorklistEmpty</a> ()</td></tr>
|
|
298
|
+
<tr class="separator:a7bfeccdf602cf901699e806e6c481f26 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
299
|
+
<tr class="memitem:a448dd77a75555479e9c8769c0638af2c inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a448dd77a75555479e9c8769c0638af2c">isInWorklist</a> (DPIm &item)</td></tr>
|
|
300
|
+
<tr class="separator:a448dd77a75555479e9c8769c0638af2c inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
301
301
|
</table><table class="memberdecls">
|
|
302
302
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
|
|
303
303
|
Protected Attributes</h2></td></tr>
|
|
@@ -331,7 +331,7 @@ Private Attributes</h2></td></tr>
|
|
|
331
331
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
332
332
|
<div class="textblock"><p>General source-sink analysis, which serves as a base analysis to be extended for various clients </p>
|
|
333
333
|
|
|
334
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
334
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00047">47</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
335
335
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
336
336
|
<a id="a47a4be28c625bf4d079a04ac24132165"></a>
|
|
337
337
|
<h2 class="memtitle"><span class="permalink"><a href="#a47a4be28c625bf4d079a04ac24132165">◆ </a></span>CallSiteSet</h2>
|
|
@@ -345,7 +345,7 @@ Private Attributes</h2></td></tr>
|
|
|
345
345
|
</table>
|
|
346
346
|
</div><div class="memdoc">
|
|
347
347
|
|
|
348
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
348
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00057">57</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
349
349
|
|
|
350
350
|
</div>
|
|
351
351
|
</div>
|
|
@@ -361,7 +361,7 @@ Private Attributes</h2></td></tr>
|
|
|
361
361
|
</table>
|
|
362
362
|
</div><div class="memdoc">
|
|
363
363
|
|
|
364
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
364
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00054">54</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
365
365
|
|
|
366
366
|
</div>
|
|
367
367
|
</div>
|
|
@@ -379,7 +379,7 @@ Private Attributes</h2></td></tr>
|
|
|
379
379
|
|
|
380
380
|
<p>dpitem set </p>
|
|
381
381
|
|
|
382
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
382
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00055">55</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
383
383
|
|
|
384
384
|
</div>
|
|
385
385
|
</div>
|
|
@@ -395,7 +395,7 @@ Private Attributes</h2></td></tr>
|
|
|
395
395
|
</table>
|
|
396
396
|
</div><div class="memdoc">
|
|
397
397
|
|
|
398
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
398
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00058">58</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
399
399
|
|
|
400
400
|
</div>
|
|
401
401
|
</div>
|
|
@@ -411,7 +411,7 @@ Private Attributes</h2></td></tr>
|
|
|
411
411
|
</table>
|
|
412
412
|
</div><div class="memdoc">
|
|
413
413
|
|
|
414
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
414
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00051">51</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
415
415
|
|
|
416
416
|
</div>
|
|
417
417
|
</div>
|
|
@@ -427,7 +427,7 @@ Private Attributes</h2></td></tr>
|
|
|
427
427
|
</table>
|
|
428
428
|
</div><div class="memdoc">
|
|
429
429
|
|
|
430
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
430
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00053">53</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
431
431
|
|
|
432
432
|
</div>
|
|
433
433
|
</div>
|
|
@@ -445,7 +445,7 @@ Private Attributes</h2></td></tr>
|
|
|
445
445
|
|
|
446
446
|
<p>map a SVFGNode to its visited dpitems </p>
|
|
447
447
|
|
|
448
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
448
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00056">56</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
449
449
|
|
|
450
450
|
</div>
|
|
451
451
|
</div>
|
|
@@ -461,7 +461,7 @@ Private Attributes</h2></td></tr>
|
|
|
461
461
|
</table>
|
|
462
462
|
</div><div class="memdoc">
|
|
463
463
|
|
|
464
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
464
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00052">52</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
465
465
|
|
|
466
466
|
</div>
|
|
467
467
|
</div>
|
|
@@ -477,7 +477,7 @@ Private Attributes</h2></td></tr>
|
|
|
477
477
|
</table>
|
|
478
478
|
</div><div class="memdoc">
|
|
479
479
|
|
|
480
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
480
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00059">59</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
481
481
|
|
|
482
482
|
</div>
|
|
483
483
|
</div>
|
|
@@ -507,11 +507,11 @@ Private Attributes</h2></td></tr>
|
|
|
507
507
|
|
|
508
508
|
<p>Constructor. </p>
|
|
509
509
|
|
|
510
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
511
|
-
<div class="fragment"><div class="line"><a name="
|
|
512
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
513
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3008dc334d4500516507544a86ec6d9c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">SVF::SrcSnkDDA::pathCondAllocator</a></div><div class="ttdeci">PathCondAllocator * pathCondAllocator</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
514
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ae657ebdeae8a083cfec210859a0023e4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">SVF::SrcSnkDDA::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
510
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00077">77</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
511
|
+
<div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  : <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">ptaCallGraph</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">pathCondAllocator</a> = <span class="keyword">new</span> PathCondAllocator();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
512
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00072">SrcSnkDDA.h:72</a></div></div>
|
|
513
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3008dc334d4500516507544a86ec6d9c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">SVF::SrcSnkDDA::pathCondAllocator</a></div><div class="ttdeci">PathCondAllocator * pathCondAllocator</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00065">SrcSnkDDA.h:65</a></div></div>
|
|
514
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ae657ebdeae8a083cfec210859a0023e4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">SVF::SrcSnkDDA::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00071">SrcSnkDDA.h:71</a></div></div>
|
|
515
515
|
</div><!-- fragment -->
|
|
516
516
|
</div>
|
|
517
517
|
</div>
|
|
@@ -541,9 +541,9 @@ Private Attributes</h2></td></tr>
|
|
|
541
541
|
<p>Destructor. </p>
|
|
542
542
|
<p>the following shared by multiple checkers, thus can not be released. </p>
|
|
543
543
|
|
|
544
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
545
|
-
<div class="fragment"><div class="line"><a name="
|
|
546
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ae657ebdeae8a083cfec210859a0023e4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">SVF::SrcSnkDDA::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
544
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00082">82</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
545
|
+
<div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">//if (ptaCallGraph != nullptr)</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// delete ptaCallGraph;</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">//ptaCallGraph = nullptr;</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">//if(pathCondAllocator)</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// delete pathCondAllocator;</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">//pathCondAllocator = nullptr;</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
546
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ae657ebdeae8a083cfec210859a0023e4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">SVF::SrcSnkDDA::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00071">SrcSnkDDA.h:71</a></div></div>
|
|
547
547
|
</div><!-- fragment -->
|
|
548
548
|
</div>
|
|
549
549
|
</div>
|
|
@@ -572,8 +572,8 @@ Private Attributes</h2></td></tr>
|
|
|
572
572
|
</table>
|
|
573
573
|
</div><div class="memdoc">
|
|
574
574
|
|
|
575
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
576
|
-
<div class="fragment"><div class="line"><a name="
|
|
575
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00281">281</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
576
|
+
<div class="fragment"><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.insert(node);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a2349db6c540e418600e2fdbe2e665628"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">SVF::SrcSnkDDA::visitedSet</a></div><div class="ttdeci">SVFGNodeSet visitedSet</div><div class="ttdoc">record backward visited nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00067">SrcSnkDDA.h:67</a></div></div>
|
|
577
577
|
</div><!-- fragment -->
|
|
578
578
|
</div>
|
|
579
579
|
</div>
|
|
@@ -611,8 +611,8 @@ Private Attributes</h2></td></tr>
|
|
|
611
611
|
</table>
|
|
612
612
|
</div><div class="memdoc">
|
|
613
613
|
|
|
614
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
615
|
-
<div class="fragment"><div class="line"><a name="
|
|
614
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00273">273</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
615
|
+
<div class="fragment"><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>[node].insert(item);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00066">SrcSnkDDA.h:66</a></div></div>
|
|
616
616
|
</div><!-- fragment -->
|
|
617
617
|
</div>
|
|
618
618
|
</div>
|
|
@@ -640,10 +640,10 @@ Private Attributes</h2></td></tr>
|
|
|
640
640
|
</table>
|
|
641
641
|
</div><div class="memdoc">
|
|
642
642
|
|
|
643
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
644
|
-
<div class="fragment"><div class="line"><a name="
|
|
643
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00145">145</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
644
|
+
<div class="fragment"><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed">addToSinks</a>(node);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">addToCurForwardSlice</a>(node);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
645
645
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_acee5145fb261280a1f8187184e393aed"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed">SVF::ProgSlice::addToSinks</a></div><div class="ttdeci">void addToSinks(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00116">ProgSlice.h:116</a></div></div>
|
|
646
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a57262e29e81cf71a40d4feb87b92925f"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">SVF::SrcSnkDDA::addToCurForwardSlice</a></div><div class="ttdeci">void addToCurForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
646
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a57262e29e81cf71a40d4feb87b92925f"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">SVF::SrcSnkDDA::addToCurForwardSlice</a></div><div class="ttdeci">void addToCurForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00158">SrcSnkDDA.h:158</a></div></div>
|
|
647
647
|
</div><!-- fragment -->
|
|
648
648
|
</div>
|
|
649
649
|
</div>
|
|
@@ -671,8 +671,8 @@ Private Attributes</h2></td></tr>
|
|
|
671
671
|
</table>
|
|
672
672
|
</div><div class="memdoc">
|
|
673
673
|
|
|
674
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
675
|
-
<div class="fragment"><div class="line"><a name="
|
|
674
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00162">162</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
675
|
+
<div class="fragment"><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1">addToBackwardSlice</a>(node);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
676
676
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_ac98eccef9fc2521b833a8c14b43e49e1"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1">SVF::ProgSlice::addToBackwardSlice</a></div><div class="ttdeci">void addToBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00080">ProgSlice.h:80</a></div></div>
|
|
677
677
|
</div><!-- fragment -->
|
|
678
678
|
</div>
|
|
@@ -701,8 +701,8 @@ Private Attributes</h2></td></tr>
|
|
|
701
701
|
</table>
|
|
702
702
|
</div><div class="memdoc">
|
|
703
703
|
|
|
704
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
705
|
-
<div class="fragment"><div class="line"><a name="
|
|
704
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00158">158</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
705
|
+
<div class="fragment"><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd">addToForwardSlice</a>(node);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
706
706
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a0017e160c2a5412947c170f944e593bd"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd">SVF::ProgSlice::addToForwardSlice</a></div><div class="ttdeci">void addToForwardSlice(const SVFGNode *node)</div><div class="ttdoc">Forward and backward slice operations. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00076">ProgSlice.h:76</a></div></div>
|
|
707
707
|
</div><!-- fragment -->
|
|
708
708
|
</div>
|
|
@@ -731,8 +731,8 @@ Private Attributes</h2></td></tr>
|
|
|
731
731
|
</table>
|
|
732
732
|
</div><div class="memdoc">
|
|
733
733
|
|
|
734
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
735
|
-
<div class="fragment"><div class="line"><a name="
|
|
734
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00225">225</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
735
|
+
<div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>.insert(node);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_aaffd4b48be1f99e0450b23f20f034b1e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">SVF::SrcSnkDDA::sinks</a></div><div class="ttdeci">SVFGNodeSet sinks</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00064">SrcSnkDDA.h:64</a></div></div>
|
|
736
736
|
</div><!-- fragment -->
|
|
737
737
|
</div>
|
|
738
738
|
</div>
|
|
@@ -760,8 +760,8 @@ Private Attributes</h2></td></tr>
|
|
|
760
760
|
</table>
|
|
761
761
|
</div><div class="memdoc">
|
|
762
762
|
|
|
763
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
764
|
-
<div class="fragment"><div class="line"><a name="
|
|
763
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00209">209</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
764
|
+
<div class="fragment"><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>.insert(node);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00063">SrcSnkDDA.h:63</a></div></div>
|
|
765
765
|
</div><!-- fragment -->
|
|
766
766
|
</div>
|
|
767
767
|
</div>
|
|
@@ -793,31 +793,31 @@ Private Attributes</h2></td></tr>
|
|
|
793
793
|
<p>do not consider there is bug when reaching a global SVFGNode if we touch a global, then we assume the client uses this memory until the program exits. </p>
|
|
794
794
|
|
|
795
795
|
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00062">62</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
|
|
796
|
-
<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8883b9a42106ed8c55835d2ba9a579cd">initialize</a>(module);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">ContextCond::setMaxCxtLen</a>(<a class="code" href="classSVF_1_1Options.html#a21cbaab292e9f5bd39109f774fcc88d4">Options::CxtLimit</a>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> iter = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0515c9079f28f8c5d4f0f9a2fc39a137">sourcesBegin</a>(), eiter = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad0cb9de24cbc99d148f63b694dc3908e">sourcesEnd</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  iter != eiter; ++iter)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab35c0d1f02c83a2c10717905f1abf5cd">setCurSlice</a>(*iter);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Analysing slice:"</span> << (*iter)->getId() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> item((*iter)->getId(),cxt);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1SrcSnkSolver.html#ab0a1ee24b5899d54b65f0c7a92b7b52d">forwardTraverse</a>(item);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()->isReachGlobal())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Forward analysis reaches globals for slice:"</span> << (*iter)->getId() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Forward process for slice:"</span> << (*iter)->getId() << <span class="stringliteral">" (size = "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">getForwardSliceSize</a>() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> sit = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">sinksBegin</a>(), esit =</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">sinksEnd</a>(); sit != esit; ++sit)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> item((*sit)->getId(),cxt);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1SrcSnkSolver.html#a9c2fbfa1a4563ce45726ae79f0f34fcc">backwardTraverse</a>(item);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Backward process for slice:"</span> << (*iter)->getId() << <span class="stringliteral">" (size = "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">getBackwardSliceSize</a>() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ace1f2368a0a466f98c9e53def47db3ab">Options::DumpSlice</a>)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8817604b20724703121e9466e5cdb4cd">annotateSlice</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">AllPathReachableSolve</a>())</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd">setAllReachable</a>();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Guard computation for slice:"</span> << (*iter)->getId() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#aa87e9ca3c9a9dc6ae5cc88a0182a8154">reportBug</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>());</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#af6ee1f79b67c736ceeb591d0cdba4b06">finalize</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a8817604b20724703121e9466e5cdb4cd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a8817604b20724703121e9466e5cdb4cd">SVF::SrcSnkDDA::annotateSlice</a></div><div class="ttdeci">void annotateSlice(ProgSlice *slice)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00284">SrcSnkDDA.cpp:284</a></div></div>
|
|
796
|
+
<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8883b9a42106ed8c55835d2ba9a579cd">initialize</a>(module);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">ContextCond::setMaxCxtLen</a>(<a class="code" href="classSVF_1_1Options.html#a21cbaab292e9f5bd39109f774fcc88d4">Options::CxtLimit</a>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> iter = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0515c9079f28f8c5d4f0f9a2fc39a137">sourcesBegin</a>(), eiter = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad0cb9de24cbc99d148f63b694dc3908e">sourcesEnd</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  iter != eiter; ++iter)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab35c0d1f02c83a2c10717905f1abf5cd">setCurSlice</a>(*iter);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Analysing slice:"</span> << (*iter)->getId() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> item((*iter)->getId(),cxt);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">forwardTraverse</a>(item);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()->isReachGlobal())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Forward analysis reaches globals for slice:"</span> << (*iter)->getId() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Forward process for slice:"</span> << (*iter)->getId() << <span class="stringliteral">" (size = "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">getForwardSliceSize</a>() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> sit = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">sinksBegin</a>(), esit =</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">sinksEnd</a>(); sit != esit; ++sit)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> item((*sit)->getId(),cxt);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">backwardTraverse</a>(item);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Backward process for slice:"</span> << (*iter)->getId() << <span class="stringliteral">" (size = "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">getBackwardSliceSize</a>() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ace1f2368a0a466f98c9e53def47db3ab">Options::DumpSlice</a>)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8817604b20724703121e9466e5cdb4cd">annotateSlice</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">AllPathReachableSolve</a>())</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd">setAllReachable</a>();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Guard computation for slice:"</span> << (*iter)->getId() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#aa87e9ca3c9a9dc6ae5cc88a0182a8154">reportBug</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>());</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#af6ee1f79b67c736ceeb591d0cdba4b06">finalize</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> }</div><div class="ttc" id="classSVF_1_1GraphReachSolver_html_ad1ad147241183e1077a4691ebe7861b5"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">SVF::GraphReachSolver::forwardTraverse</a></div><div class="ttdeci">virtual void forwardTraverse(DPIm &it)</div><div class="ttdoc">CFL forward traverse solve. </div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00093">GraphReachSolver.h:93</a></div></div>
|
|
797
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a8817604b20724703121e9466e5cdb4cd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a8817604b20724703121e9466e5cdb4cd">SVF::SrcSnkDDA::annotateSlice</a></div><div class="ttdeci">void annotateSlice(ProgSlice *slice)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00284">SrcSnkDDA.cpp:284</a></div></div>
|
|
797
798
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_aa87e9ca3c9a9dc6ae5cc88a0182a8154"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aa87e9ca3c9a9dc6ae5cc88a0182a8154">SVF::SrcSnkDDA::reportBug</a></div><div class="ttdeci">virtual void reportBug(ProgSlice *slice)=0</div><div class="ttdoc">report bug on the current analyzed slice </div></div>
|
|
798
799
|
<div class="ttc" id="classSVF_1_1ContextCond_html_a92e89bbae0f31bb9eb971ab3edcc8071"><div class="ttname"><a href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">SVF::ContextCond::setMaxCxtLen</a></div><div class="ttdeci">static void setMaxCxtLen(u32_t max)</div><div class="ttdoc">set max context limit </div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00240">DPItem.h:240</a></div></div>
|
|
799
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a83d5ccf0836f8f751aff078f88328cca"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">SVF::SrcSnkDDA::DPIm</a></div><div class="ttdeci">CxtDPItem DPIm</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
800
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
801
|
-
<div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a9c2fbfa1a4563ce45726ae79f0f34fcc"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a9c2fbfa1a4563ce45726ae79f0f34fcc">SVF::SrcSnkSolver::backwardTraverse</a></div><div class="ttdeci">virtual void backwardTraverse(DPIm &it)</div><div class="ttdoc">CFL forward traverse solve. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00112">SrcSnkSolver.h:112</a></div></div>
|
|
800
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a83d5ccf0836f8f751aff078f88328cca"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">SVF::SrcSnkDDA::DPIm</a></div><div class="ttdeci">CxtDPItem DPIm</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00054">SrcSnkDDA.h:54</a></div></div>
|
|
801
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
802
802
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a27636f096ec825c4d5cb1dca608afb31"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">SVF::ProgSlice::sinksEnd</a></div><div class="ttdeci">SVFGNodeSetIter sinksEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00128">ProgSlice.h:128</a></div></div>
|
|
803
803
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a8883b9a42106ed8c55835d2ba9a579cd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a8883b9a42106ed8c55835d2ba9a579cd">SVF::SrcSnkDDA::initialize</a></div><div class="ttdeci">virtual void initialize(SVFModule *module)</div><div class="ttdoc">Initialize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00042">SrcSnkDDA.cpp:42</a></div></div>
|
|
804
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad6935e27bbd95d26a01b22b879efed58"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA::SVFGNodeSetIter</a></div><div class="ttdeci">SVFGNodeSet::const_iterator SVFGNodeSetIter</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
804
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad6935e27bbd95d26a01b22b879efed58"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA::SVFGNodeSetIter</a></div><div class="ttdeci">SVFGNodeSet::const_iterator SVFGNodeSetIter</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00053">SrcSnkDDA.h:53</a></div></div>
|
|
805
805
|
<div class="ttc" id="SVFBasicTypes_8h_html_a817abc424f7cfcdec5954c7807970f36"><div class="ttname"><a href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a></div><div class="ttdeci">#define DSaber</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00170">SVFBasicTypes.h:170</a></div></div>
|
|
806
806
|
<div class="ttc" id="classSVF_1_1Options_html_a21cbaab292e9f5bd39109f774fcc88d4"><div class="ttname"><a href="classSVF_1_1Options.html#a21cbaab292e9f5bd39109f774fcc88d4">SVF::Options::CxtLimit</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned > CxtLimit</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00199">Options.h:199</a></div></div>
|
|
807
807
|
<div class="ttc" id="classSVF_1_1Options_html_ace1f2368a0a466f98c9e53def47db3ab"><div class="ttname"><a href="classSVF_1_1Options.html#ace1f2368a0a466f98c9e53def47db3ab">SVF::Options::DumpSlice</a></div><div class="ttdeci">static const llvm::cl::opt< bool > DumpSlice</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00198">Options.h:198</a></div></div>
|
|
808
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a0515c9079f28f8c5d4f0f9a2fc39a137"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a0515c9079f28f8c5d4f0f9a2fc39a137">SVF::SrcSnkDDA::sourcesBegin</a></div><div class="ttdeci">SVFGNodeSetIter sourcesBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
809
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad50e479db8f0733326974709d6ffe653"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">SVF::SrcSnkDDA::getCurSlice</a></div><div class="ttdeci">ProgSlice * getCurSlice() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
808
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a0515c9079f28f8c5d4f0f9a2fc39a137"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a0515c9079f28f8c5d4f0f9a2fc39a137">SVF::SrcSnkDDA::sourcesBegin</a></div><div class="ttdeci">SVFGNodeSetIter sourcesBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00201">SrcSnkDDA.h:201</a></div></div>
|
|
809
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad50e479db8f0733326974709d6ffe653"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">SVF::SrcSnkDDA::getCurSlice</a></div><div class="ttdeci">ProgSlice * getCurSlice() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00141">SrcSnkDDA.h:141</a></div></div>
|
|
810
810
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
811
811
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_adf620c97daed49735d21b485c448b4a2"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">SVF::ProgSlice::sinksBegin</a></div><div class="ttdeci">SVFGNodeSetIter sinksBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00124">ProgSlice.h:124</a></div></div>
|
|
812
812
|
<div class="ttc" id="classSVF_1_1ContextCond_html"><div class="ttname"><a href="classSVF_1_1ContextCond.html">SVF::ContextCond</a></div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00193">DPItem.h:193</a></div></div>
|
|
813
813
|
<div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
|
|
814
|
+
<div class="ttc" id="classSVF_1_1GraphReachSolver_html_a8785ea71a1b0da03595fc8f594921819"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">SVF::GraphReachSolver::backwardTraverse</a></div><div class="ttdeci">virtual void backwardTraverse(DPIm &it)</div><div class="ttdoc">CFL forward traverse solve. </div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00112">GraphReachSolver.h:112</a></div></div>
|
|
814
815
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_aa7979418bed24fcecfc6fa04532cd586"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">SVF::ProgSlice::AllPathReachableSolve</a></div><div class="ttdeci">bool AllPathReachableSolve()</div><div class="ttdoc">Guarded reachability solve. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00044">ProgSlice.cpp:44</a></div></div>
|
|
815
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad0cb9de24cbc99d148f63b694dc3908e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad0cb9de24cbc99d148f63b694dc3908e">SVF::SrcSnkDDA::sourcesEnd</a></div><div class="ttdeci">SVFGNodeSetIter sourcesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
816
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad0cb9de24cbc99d148f63b694dc3908e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad0cb9de24cbc99d148f63b694dc3908e">SVF::SrcSnkDDA::sourcesEnd</a></div><div class="ttdeci">SVFGNodeSetIter sourcesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00205">SrcSnkDDA.h:205</a></div></div>
|
|
816
817
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_ae6102647fa4985142c293116516612cd"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd">SVF::ProgSlice::setAllReachable</a></div><div class="ttdeci">void setAllReachable()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00136">ProgSlice.h:136</a></div></div>
|
|
817
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_af6ee1f79b67c736ceeb591d0cdba4b06"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#af6ee1f79b67c736ceeb591d0cdba4b06">SVF::SrcSnkDDA::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
818
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_af6ee1f79b67c736ceeb591d0cdba4b06"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#af6ee1f79b67c736ceeb591d0cdba4b06">SVF::SrcSnkDDA::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00109">SrcSnkDDA.h:109</a></div></div>
|
|
818
819
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a967fa01a8baae0dd086b5c09ae0faa7b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">SVF::ProgSlice::getBackwardSliceSize</a></div><div class="ttdeci">u32_t getBackwardSliceSize() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00070">ProgSlice.h:70</a></div></div>
|
|
819
820
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_aae54f4e8a827f55abe08762b69d9f84b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">SVF::ProgSlice::getForwardSliceSize</a></div><div class="ttdeci">u32_t getForwardSliceSize() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00066">ProgSlice.h:66</a></div></div>
|
|
820
|
-
<div class="ttc" id="classSVF_1_1SrcSnkSolver_html_ab0a1ee24b5899d54b65f0c7a92b7b52d"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#ab0a1ee24b5899d54b65f0c7a92b7b52d">SVF::SrcSnkSolver::forwardTraverse</a></div><div class="ttdeci">virtual void forwardTraverse(DPIm &it)</div><div class="ttdoc">CFL forward traverse solve. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00093">SrcSnkSolver.h:93</a></div></div>
|
|
821
821
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00151">SVFBasicTypes.h:151</a></div></div>
|
|
822
822
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ab35c0d1f02c83a2c10717905f1abf5cd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ab35c0d1f02c83a2c10717905f1abf5cd">SVF::SrcSnkDDA::setCurSlice</a></div><div class="ttdeci">virtual void setCurSlice(const SVFGNode *src)</div><div class="ttdoc">Slice operations. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00272">SrcSnkDDA.cpp:272</a></div></div>
|
|
823
823
|
</div><!-- fragment -->
|
|
@@ -854,10 +854,10 @@ Private Attributes</h2></td></tr>
|
|
|
854
854
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_ae482fcb138aaf345586a39daa34ff895"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ae482fcb138aaf345586a39daa34ff895">SVF::ProgSlice::forwardSliceBegin</a></div><div class="ttdeci">SVFGNodeSetIter forwardSliceBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00092">ProgSlice.h:92</a></div></div>
|
|
855
855
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a27636f096ec825c4d5cb1dca608afb31"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">SVF::ProgSlice::sinksEnd</a></div><div class="ttdeci">SVFGNodeSetIter sinksEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00128">ProgSlice.h:128</a></div></div>
|
|
856
856
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_aed4bedc716a3e252e44a6f28e677d61c"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aed4bedc716a3e252e44a6f28e677d61c">SVF::ProgSlice::backwardSliceEnd</a></div><div class="ttdeci">SVFGNodeSetIter backwardSliceEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00104">ProgSlice.h:104</a></div></div>
|
|
857
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad6935e27bbd95d26a01b22b879efed58"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA::SVFGNodeSetIter</a></div><div class="ttdeci">SVFGNodeSet::const_iterator SVFGNodeSetIter</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
857
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad6935e27bbd95d26a01b22b879efed58"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA::SVFGNodeSetIter</a></div><div class="ttdeci">SVFGNodeSet::const_iterator SVFGNodeSetIter</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00053">SrcSnkDDA.h:53</a></div></div>
|
|
858
858
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_add10d8fd041ac7e6eb611df8a6b1384b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#add10d8fd041ac7e6eb611df8a6b1384b">SVF::ProgSlice::forwardSliceEnd</a></div><div class="ttdeci">SVFGNodeSetIter forwardSliceEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00096">ProgSlice.h:96</a></div></div>
|
|
859
859
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a59585ec387e8cc30a85eeec99a97e968"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a59585ec387e8cc30a85eeec99a97e968">SVF::SVFGStat::addToSources</a></div><div class="ttdeci">void addToSources(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00237">SVFGStat.h:237</a></div></div>
|
|
860
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
860
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00121">SrcSnkDDA.h:121</a></div></div>
|
|
861
861
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_aee8cb3fa54e882bba54bf557bbc5e1a3"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#aee8cb3fa54e882bba54bf557bbc5e1a3">SVF::SVFGStat::addToForwardSlice</a></div><div class="ttdeci">void addToForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00245">SVFGStat.h:245</a></div></div>
|
|
862
862
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_adf620c97daed49735d21b485c448b4a2"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">SVF::ProgSlice::sinksBegin</a></div><div class="ttdeci">SVFGNodeSetIter sinksBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00124">ProgSlice.h:124</a></div></div>
|
|
863
863
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a54e61121cdfac31e336cd79fa0513419"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a54e61121cdfac31e336cd79fa0513419">SVF::SVFGStat::addToBackwardSlice</a></div><div class="ttdeci">void addToBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00249">SVFGStat.h:249</a></div></div>
|
|
@@ -889,8 +889,8 @@ Private Attributes</h2></td></tr>
|
|
|
889
889
|
</table>
|
|
890
890
|
</div><div class="memdoc">
|
|
891
891
|
|
|
892
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
893
|
-
<div class="fragment"><div class="line"><a name="
|
|
892
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00277">277</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
893
|
+
<div class="fragment"><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.find(node)!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.end();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a2349db6c540e418600e2fdbe2e665628"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">SVF::SrcSnkDDA::visitedSet</a></div><div class="ttdeci">SVFGNodeSet visitedSet</div><div class="ttdoc">record backward visited nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00067">SrcSnkDDA.h:67</a></div></div>
|
|
894
894
|
</div><!-- fragment -->
|
|
895
895
|
</div>
|
|
896
896
|
</div>
|
|
@@ -920,11 +920,11 @@ Private Attributes</h2></td></tr>
|
|
|
920
920
|
|
|
921
921
|
<p>Backward traverse. </p>
|
|
922
922
|
|
|
923
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
924
|
-
<div class="fragment"><div class="line"><a name="
|
|
925
|
-
<div class="ttc" id="
|
|
926
|
-
<div class="ttc" id="
|
|
927
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad28ffe435790d36ad872cddc213ea799"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad28ffe435790d36ad872cddc213ea799">SVF::SrcSnkDDA::addToCurBackwardSlice</a></div><div class="ttdeci">void addToCurBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
923
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00251">251</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
924
|
+
<div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = <a class="code" href="classSVF_1_1GraphReachSolver.html#a0b7f0923105dfb198a2a8428d6c1ca98">getNode</a>(item.getCurNodeID());</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a4bde70a5d9dbf5a9234a93aaeaaacb94">isInCurForwardSlice</a>(node))</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad28ffe435790d36ad872cddc213ea799">addToCurBackwardSlice</a>(node);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div><div class="ttc" id="classSVF_1_1GraphReachSolver_html_a0b7f0923105dfb198a2a8428d6c1ca98"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a0b7f0923105dfb198a2a8428d6c1ca98">SVF::GraphReachSolver::getNode</a></div><div class="ttdeci">GNODE * getNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00084">GraphReachSolver.h:84</a></div></div>
|
|
925
|
+
<div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
926
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a4bde70a5d9dbf5a9234a93aaeaaacb94"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a4bde70a5d9dbf5a9234a93aaeaaacb94">SVF::SrcSnkDDA::isInCurForwardSlice</a></div><div class="ttdeci">bool isInCurForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00150">SrcSnkDDA.h:150</a></div></div>
|
|
927
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad28ffe435790d36ad872cddc213ea799"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad28ffe435790d36ad872cddc213ea799">SVF::SrcSnkDDA::addToCurBackwardSlice</a></div><div class="ttdeci">void addToCurBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00162">SrcSnkDDA.h:162</a></div></div>
|
|
928
928
|
</div><!-- fragment -->
|
|
929
929
|
</div>
|
|
930
930
|
</div>
|
|
@@ -966,18 +966,18 @@ Private Attributes</h2></td></tr>
|
|
|
966
966
|
<p>Propagate information backward without matching context, as forward analysis already did it </p>
|
|
967
967
|
|
|
968
968
|
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00257">257</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
|
|
969
|
-
<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"backward propagate from ("</span> << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">" --> "</span> << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcNode = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">backwardVisited</a>(srcNode))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#aa061e2d72d3045c9712512c6df002544">addBackwardVisited</a>(srcNode);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> newItem(srcNode->getId(), cxt);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="
|
|
969
|
+
<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"backward propagate from ("</span> << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">" --> "</span> << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() << <span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcNode = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">backwardVisited</a>(srcNode))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#aa061e2d72d3045c9712512c6df002544">addBackwardVisited</a>(srcNode);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> newItem(srcNode->getId(), cxt);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">pushIntoWorklist</a>(newItem);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a32cc8a131b2448b5e8e1fe65d99fd286"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">SVF::SrcSnkDDA::backwardVisited</a></div><div class="ttdeci">bool backwardVisited(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00277">SrcSnkDDA.h:277</a></div></div>
|
|
970
970
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
971
971
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
|
|
972
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a83d5ccf0836f8f751aff078f88328cca"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">SVF::SrcSnkDDA::DPIm</a></div><div class="ttdeci">CxtDPItem DPIm</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
972
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a83d5ccf0836f8f751aff078f88328cca"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">SVF::SrcSnkDDA::DPIm</a></div><div class="ttdeci">CxtDPItem DPIm</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00054">SrcSnkDDA.h:54</a></div></div>
|
|
973
973
|
<div class="ttc" id="SVFBasicTypes_8h_html_a817abc424f7cfcdec5954c7807970f36"><div class="ttname"><a href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a></div><div class="ttdeci">#define DSaber</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00170">SVFBasicTypes.h:170</a></div></div>
|
|
974
|
+
<div class="ttc" id="classSVF_1_1GraphReachSolver_html_a53564d384938c19980cb138f720e34e9"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">SVF::GraphReachSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &item)</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00160">GraphReachSolver.h:160</a></div></div>
|
|
974
975
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
975
976
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
|
|
976
977
|
<div class="ttc" id="classSVF_1_1ContextCond_html"><div class="ttname"><a href="classSVF_1_1ContextCond.html">SVF::ContextCond</a></div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00193">DPItem.h:193</a></div></div>
|
|
977
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_aa061e2d72d3045c9712512c6df002544"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aa061e2d72d3045c9712512c6df002544">SVF::SrcSnkDDA::addBackwardVisited</a></div><div class="ttdeci">void addBackwardVisited(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
978
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_aa061e2d72d3045c9712512c6df002544"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aa061e2d72d3045c9712512c6df002544">SVF::SrcSnkDDA::addBackwardVisited</a></div><div class="ttdeci">void addBackwardVisited(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00281">SrcSnkDDA.h:281</a></div></div>
|
|
978
979
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00151">SVFBasicTypes.h:151</a></div></div>
|
|
979
980
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
980
|
-
<div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a4451d97a06bb74223e2dad0ea04265d7"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">SVF::SrcSnkSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &item)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00160">SrcSnkSolver.h:160</a></div></div>
|
|
981
981
|
</div><!-- fragment -->
|
|
982
982
|
</div>
|
|
983
983
|
</div>
|
|
@@ -1004,9 +1004,9 @@ Private Attributes</h2></td></tr>
|
|
|
1004
1004
|
</table>
|
|
1005
1005
|
</div><div class="memdoc">
|
|
1006
1006
|
|
|
1007
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1008
|
-
<div class="fragment"><div class="line"><a name="
|
|
1009
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1007
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00285">285</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1008
|
+
<div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>.clear();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.clear();</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a2349db6c540e418600e2fdbe2e665628"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">SVF::SrcSnkDDA::visitedSet</a></div><div class="ttdeci">SVFGNodeSet visitedSet</div><div class="ttdoc">record backward visited nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00067">SrcSnkDDA.h:67</a></div></div>
|
|
1009
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00066">SrcSnkDDA.h:66</a></div></div>
|
|
1010
1010
|
</div><!-- fragment -->
|
|
1011
1011
|
</div>
|
|
1012
1012
|
</div>
|
|
@@ -1037,7 +1037,7 @@ Private Attributes</h2></td></tr>
|
|
|
1037
1037
|
|
|
1038
1038
|
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00295">295</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
|
|
1039
1039
|
<div class="fragment"><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ace1f2368a0a466f98c9e53def47db3ab">Options::DumpSlice</a>)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1SVFG.html">SVFG</a>*<span class="keyword">></span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>())->dump(<span class="stringliteral">"Slice"</span>,<span class="keyword">true</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> }</div><div class="ttc" id="classSVF_1_1Options_html_ace1f2368a0a466f98c9e53def47db3ab"><div class="ttname"><a href="classSVF_1_1Options.html#ace1f2368a0a466f98c9e53def47db3ab">SVF::Options::DumpSlice</a></div><div class="ttdeci">static const llvm::cl::opt< bool > DumpSlice</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00198">Options.h:198</a></div></div>
|
|
1040
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1040
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00121">SrcSnkDDA.h:121</a></div></div>
|
|
1041
1041
|
<div class="ttc" id="classSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
|
|
1042
1042
|
</div><!-- fragment -->
|
|
1043
1043
|
</div>
|
|
@@ -1068,8 +1068,8 @@ Private Attributes</h2></td></tr>
|
|
|
1068
1068
|
|
|
1069
1069
|
<p>Finalize analysis. </p>
|
|
1070
1070
|
|
|
1071
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1072
|
-
<div class="fragment"><div class="line"><a name="
|
|
1071
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00109">109</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1072
|
+
<div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#acae985068ff1c20fb81c4c9ba730aaba">dumpSlices</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_acae985068ff1c20fb81c4c9ba730aaba"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#acae985068ff1c20fb81c4c9ba730aaba">SVF::SrcSnkDDA::dumpSlices</a></div><div class="ttdeci">void dumpSlices()</div><div class="ttdoc">Dump SVFG with annotated slice informaiton. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00295">SrcSnkDDA.cpp:295</a></div></div>
|
|
1073
1073
|
</div><!-- fragment -->
|
|
1074
1074
|
</div>
|
|
1075
1075
|
</div>
|
|
@@ -1109,8 +1109,8 @@ Private Attributes</h2></td></tr>
|
|
|
1109
1109
|
|
|
1110
1110
|
<p>Whether has been visited or not, in order to avoid recursion on <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
1111
1111
|
|
|
1112
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1113
|
-
<div class="fragment"><div class="line"><a name="
|
|
1112
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00265">265</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1113
|
+
<div class="fragment"><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  SVFGNodeToDPItemsMap::const_iterator it = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>.find(node);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>.end())</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">return</span> it->second.find(item)!=it->second.end();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00066">SrcSnkDDA.h:66</a></div></div>
|
|
1114
1114
|
</div><!-- fragment -->
|
|
1115
1115
|
</div>
|
|
1116
1116
|
</div>
|
|
@@ -1140,14 +1140,14 @@ Private Attributes</h2></td></tr>
|
|
|
1140
1140
|
|
|
1141
1141
|
<p>Forward traverse. </p>
|
|
1142
1142
|
|
|
1143
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1144
|
-
<div class="fragment"><div class="line"><a name="
|
|
1143
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00239">239</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1144
|
+
<div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = <a class="code" href="classSVF_1_1GraphReachSolver.html#a0b7f0923105dfb198a2a8428d6c1ca98">getNode</a>(item.getCurNodeID());</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a703bfc5c825d66fdb0d74eb89d181581">isSink</a>(node))</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a6caea43079963b13e9a7a017074bdbb7">addSinkToCurSlice</a>(node);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d">setPartialReachable</a>();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">addToCurForwardSlice</a>(node);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a6caea43079963b13e9a7a017074bdbb7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a6caea43079963b13e9a7a017074bdbb7">SVF::SrcSnkDDA::addSinkToCurSlice</a></div><div class="ttdeci">void addSinkToCurSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00145">SrcSnkDDA.h:145</a></div></div>
|
|
1145
1145
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_af6f137be08ca0e743424ff07d679777d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d">SVF::ProgSlice::setPartialReachable</a></div><div class="ttdeci">void setPartialReachable()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00132">ProgSlice.h:132</a></div></div>
|
|
1146
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1147
|
-
<div class="ttc" id="
|
|
1146
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
1147
|
+
<div class="ttc" id="classSVF_1_1GraphReachSolver_html_a0b7f0923105dfb198a2a8428d6c1ca98"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a0b7f0923105dfb198a2a8428d6c1ca98">SVF::GraphReachSolver::getNode</a></div><div class="ttdeci">GNODE * getNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00084">GraphReachSolver.h:84</a></div></div>
|
|
1148
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a703bfc5c825d66fdb0d74eb89d181581"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a703bfc5c825d66fdb0d74eb89d181581">SVF::SrcSnkDDA::isSink</a></div><div class="ttdeci">bool isSink(const SVFGNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00184">SrcSnkDDA.h:184</a></div></div>
|
|
1148
1149
|
<div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
1149
|
-
<div class="ttc" id="
|
|
1150
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a57262e29e81cf71a40d4feb87b92925f"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">SVF::SrcSnkDDA::addToCurForwardSlice</a></div><div class="ttdeci">void addToCurForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00157">SrcSnkDDA.h:157</a></div></div>
|
|
1150
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a57262e29e81cf71a40d4feb87b92925f"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">SVF::SrcSnkDDA::addToCurForwardSlice</a></div><div class="ttdeci">void addToCurForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00158">SrcSnkDDA.h:158</a></div></div>
|
|
1151
1151
|
</div><!-- fragment -->
|
|
1152
1152
|
</div>
|
|
1153
1153
|
</div>
|
|
@@ -1192,18 +1192,19 @@ Private Attributes</h2></td></tr>
|
|
|
1192
1192
|
<p>whether this dstNode has been visited or not </p>
|
|
1193
1193
|
|
|
1194
1194
|
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00192">192</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
|
|
1195
|
-
<div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n##processing source: "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()->getSource()->getId() <<<span class="stringliteral">" forward propagate from ("</span> << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>());</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// for indirect SVFGEdge, the propagation should follow the def-use chains</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">// points-to on the edge indicate whether the object of source node can be propagated</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstNode = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> newItem(dstNode->getId(),item.getContexts());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a391bb031b2f244e930b266a29cda0af7">isGlobalSVFGNode</a>(dstNode) || <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">isReachGlobal</a>())</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d">setReachGlobal</a>();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// push context for calling</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>())</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge))</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  csId = callEdge->getCallSiteId();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  csId = SVFUtil::cast<CallIndSVFGEdge>(edge)->getCallSiteId();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  newItem.pushContext(csId);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" push cxt ["</span> << csId << <span class="stringliteral">"] "</span>);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// match context for return</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge))</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  csId = callEdge->getCallSiteId();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  csId = SVFUtil::cast<RetIndSVFGEdge>(edge)->getCallSiteId();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">if</span> (newItem.matchContext(csId) == <span class="keyword">false</span>)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"-|-\n"</span>);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" pop cxt ["</span> << csId << <span class="stringliteral">"] "</span>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a8c86d30498e86745883fbaea4f530eae">forwardVisited</a>(dstNode,newItem))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" node "</span><< dstNode->getId() <<<span class="stringliteral">" has been visited\n"</span>);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a51c65cb4b8ea107161e112a8fd3fb7d4">addForwardVisited</a>(dstNode, newItem);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">pushIntoWorklist</a>(newItem))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" --> "</span> << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">", cxt size: "</span> << newItem.getContexts().cxtSize() <<<span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a51c65cb4b8ea107161e112a8fd3fb7d4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a51c65cb4b8ea107161e112a8fd3fb7d4">SVF::SrcSnkDDA::addForwardVisited</a></div><div class="ttdeci">void addForwardVisited(const SVFGNode *node, const DPIm &item)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00272">SrcSnkDDA.h:272</a></div></div>
|
|
1196
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a391bb031b2f244e930b266a29cda0af7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a391bb031b2f244e930b266a29cda0af7">SVF::SrcSnkDDA::isGlobalSVFGNode</a></div><div class="ttdeci">bool isGlobalSVFGNode(const SVFGNode *node) const</div><div class="ttdoc">Whether this svfg node may access global variable. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1195
|
+
<div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n##processing source: "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()->getSource()->getId() <<<span class="stringliteral">" forward propagate from ("</span> << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>());</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// for indirect SVFGEdge, the propagation should follow the def-use chains</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">// points-to on the edge indicate whether the object of source node can be propagated</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstNode = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> newItem(dstNode->getId(),item.getContexts());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a391bb031b2f244e930b266a29cda0af7">isGlobalSVFGNode</a>(dstNode) || <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">isReachGlobal</a>())</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-><a class="code" href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d">setReachGlobal</a>();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// push context for calling</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>())</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge))</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  csId = callEdge->getCallSiteId();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  csId = SVFUtil::cast<CallIndSVFGEdge>(edge)->getCallSiteId();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  newItem.pushContext(csId);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" push cxt ["</span> << csId << <span class="stringliteral">"] "</span>);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// match context for return</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge))</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  csId = callEdge->getCallSiteId();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  csId = SVFUtil::cast<RetIndSVFGEdge>(edge)->getCallSiteId();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">if</span> (newItem.matchContext(csId) == <span class="keyword">false</span>)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"-|-\n"</span>);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" pop cxt ["</span> << csId << <span class="stringliteral">"] "</span>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a8c86d30498e86745883fbaea4f530eae">forwardVisited</a>(dstNode,newItem))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" node "</span><< dstNode->getId() <<<span class="stringliteral">" has been visited\n"</span>);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a51c65cb4b8ea107161e112a8fd3fb7d4">addForwardVisited</a>(dstNode, newItem);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">pushIntoWorklist</a>(newItem))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" --> "</span> << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">", cxt size: "</span> << newItem.getContexts().cxtSize() <<<span class="stringliteral">")\n"</span>);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a51c65cb4b8ea107161e112a8fd3fb7d4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a51c65cb4b8ea107161e112a8fd3fb7d4">SVF::SrcSnkDDA::addForwardVisited</a></div><div class="ttdeci">void addForwardVisited(const SVFGNode *node, const DPIm &item)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00273">SrcSnkDDA.h:273</a></div></div>
|
|
1196
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a391bb031b2f244e930b266a29cda0af7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a391bb031b2f244e930b266a29cda0af7">SVF::SrcSnkDDA::isGlobalSVFGNode</a></div><div class="ttdeci">bool isGlobalSVFGNode(const SVFGNode *node) const</div><div class="ttdoc">Whether this svfg node may access global variable. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00133">SrcSnkDDA.h:133</a></div></div>
|
|
1197
1197
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
1198
1198
|
<div class="ttc" id="classSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
|
|
1199
1199
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
|
|
1200
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a83d5ccf0836f8f751aff078f88328cca"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">SVF::SrcSnkDDA::DPIm</a></div><div class="ttdeci">CxtDPItem DPIm</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1200
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a83d5ccf0836f8f751aff078f88328cca"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">SVF::SrcSnkDDA::DPIm</a></div><div class="ttdeci">CxtDPItem DPIm</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00054">SrcSnkDDA.h:54</a></div></div>
|
|
1201
1201
|
<div class="ttc" id="classSVF_1_1CallDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html">SVF::CallDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00211">VFGEdge.h:211</a></div></div>
|
|
1202
1202
|
<div class="ttc" id="SVFBasicTypes_8h_html_a817abc424f7cfcdec5954c7807970f36"><div class="ttname"><a href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a></div><div class="ttdeci">#define DSaber</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00170">SVFBasicTypes.h:170</a></div></div>
|
|
1203
1203
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a397632ce0c523c4a54c5dc578606d14d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d">SVF::ProgSlice::setReachGlobal</a></div><div class="ttdeci">bool setReachGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00140">ProgSlice.h:140</a></div></div>
|
|
1204
|
-
<div class="ttc" id="
|
|
1204
|
+
<div class="ttc" id="classSVF_1_1GraphReachSolver_html_a53564d384938c19980cb138f720e34e9"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">SVF::GraphReachSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &item)</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00160">GraphReachSolver.h:160</a></div></div>
|
|
1205
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a8c86d30498e86745883fbaea4f530eae"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a8c86d30498e86745883fbaea4f530eae">SVF::SrcSnkDDA::forwardVisited</a></div><div class="ttdeci">bool forwardVisited(const SVFGNode *node, const DPIm &item)</div><div class="ttdoc">Whether has been visited or not, in order to avoid recursion on SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00265">SrcSnkDDA.h:265</a></div></div>
|
|
1205
1206
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
1206
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad50e479db8f0733326974709d6ffe653"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">SVF::SrcSnkDDA::getCurSlice</a></div><div class="ttdeci">ProgSlice * getCurSlice() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1207
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad50e479db8f0733326974709d6ffe653"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">SVF::SrcSnkDDA::getCurSlice</a></div><div class="ttdeci">ProgSlice * getCurSlice() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00141">SrcSnkDDA.h:141</a></div></div>
|
|
1207
1208
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a067480a9815fdb728cd259ef9b687e3e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">SVF::ProgSlice::isReachGlobal</a></div><div class="ttdeci">bool isReachGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00152">ProgSlice.h:152</a></div></div>
|
|
1208
1209
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00089">SVFBasicTypes.h:89</a></div></div>
|
|
1209
1210
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
@@ -1211,7 +1212,6 @@ Private Attributes</h2></td></tr>
|
|
|
1211
1212
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00151">SVFBasicTypes.h:151</a></div></div>
|
|
1212
1213
|
<div class="ttc" id="classSVF_1_1RetDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetDirSVFGEdge.html">SVF::RetDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00254">VFGEdge.h:254</a></div></div>
|
|
1213
1214
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
1214
|
-
<div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a4451d97a06bb74223e2dad0ea04265d7"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">SVF::SrcSnkSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &item)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00160">SrcSnkSolver.h:160</a></div></div>
|
|
1215
1215
|
</div><!-- fragment -->
|
|
1216
1216
|
</div>
|
|
1217
1217
|
</div>
|
|
@@ -1240,8 +1240,8 @@ Private Attributes</h2></td></tr>
|
|
|
1240
1240
|
|
|
1241
1241
|
<p>Get Callgraph. </p>
|
|
1242
1242
|
|
|
1243
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1244
|
-
<div class="fragment"><div class="line"><a name="
|
|
1243
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00127">127</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1244
|
+
<div class="fragment"><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">ptaCallGraph</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00072">SrcSnkDDA.h:72</a></div></div>
|
|
1245
1245
|
</div><!-- fragment -->
|
|
1246
1246
|
</div>
|
|
1247
1247
|
</div>
|
|
@@ -1268,8 +1268,8 @@ Private Attributes</h2></td></tr>
|
|
|
1268
1268
|
</table>
|
|
1269
1269
|
</div><div class="memdoc">
|
|
1270
1270
|
|
|
1271
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1272
|
-
<div class="fragment"><div class="line"><a name="
|
|
1271
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00141">141</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1272
|
+
<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
1273
1273
|
</div><!-- fragment -->
|
|
1274
1274
|
</div>
|
|
1275
1275
|
</div>
|
|
@@ -1298,8 +1298,8 @@ Private Attributes</h2></td></tr>
|
|
|
1298
1298
|
|
|
1299
1299
|
<p>Get <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a>. </p>
|
|
1300
1300
|
|
|
1301
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1302
|
-
<div class="fragment"><div class="line"><a name="
|
|
1301
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00115">115</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1302
|
+
<div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
|
|
1303
1303
|
</div><!-- fragment -->
|
|
1304
1304
|
</div>
|
|
1305
1305
|
</div>
|
|
@@ -1328,8 +1328,8 @@ Private Attributes</h2></td></tr>
|
|
|
1328
1328
|
|
|
1329
1329
|
<p>Get path condition allocator. </p>
|
|
1330
1330
|
|
|
1331
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1332
|
-
<div class="fragment"><div class="line"><a name="
|
|
1331
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00232">232</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1332
|
+
<div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">pathCondAllocator</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3008dc334d4500516507544a86ec6d9c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">SVF::SrcSnkDDA::pathCondAllocator</a></div><div class="ttdeci">PathCondAllocator * pathCondAllocator</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00065">SrcSnkDDA.h:65</a></div></div>
|
|
1333
1333
|
</div><!-- fragment -->
|
|
1334
1334
|
</div>
|
|
1335
1335
|
</div>
|
|
@@ -1356,8 +1356,8 @@ Private Attributes</h2></td></tr>
|
|
|
1356
1356
|
</table>
|
|
1357
1357
|
</div><div class="memdoc">
|
|
1358
1358
|
|
|
1359
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1360
|
-
<div class="fragment"><div class="line"><a name="
|
|
1359
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00213">213</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1360
|
+
<div class="fragment"><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_aaffd4b48be1f99e0450b23f20f034b1e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">SVF::SrcSnkDDA::sinks</a></div><div class="ttdeci">SVFGNodeSet sinks</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00064">SrcSnkDDA.h:64</a></div></div>
|
|
1361
1361
|
</div><!-- fragment -->
|
|
1362
1362
|
</div>
|
|
1363
1363
|
</div>
|
|
@@ -1386,8 +1386,8 @@ Private Attributes</h2></td></tr>
|
|
|
1386
1386
|
|
|
1387
1387
|
<p>Get sources/sinks. </p>
|
|
1388
1388
|
|
|
1389
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1390
|
-
<div class="fragment"><div class="line"><a name="
|
|
1389
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00197">197</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1390
|
+
<div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00063">SrcSnkDDA.h:63</a></div></div>
|
|
1391
1391
|
</div><!-- fragment -->
|
|
1392
1392
|
</div>
|
|
1393
1393
|
</div>
|
|
@@ -1416,8 +1416,8 @@ Private Attributes</h2></td></tr>
|
|
|
1416
1416
|
|
|
1417
1417
|
<p>Get <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
1418
1418
|
|
|
1419
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1420
|
-
<div class="fragment"><div class="line"><a name="
|
|
1419
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00121">121</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1420
|
+
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GraphReachSolver.html#a88775eedbbc3039caac1e350b48aa838">graph</a>();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div><div class="ttc" id="classSVF_1_1GraphReachSolver_html_a88775eedbbc3039caac1e350b48aa838"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a88775eedbbc3039caac1e350b48aa838">SVF::GraphReachSolver::graph</a></div><div class="ttdeci">const GraphType graph() const</div><div class="ttdoc">Get/Set graph methods. </div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00074">GraphReachSolver.h:74</a></div></div>
|
|
1421
1421
|
</div><!-- fragment -->
|
|
1422
1422
|
</div>
|
|
1423
1423
|
</div>
|
|
@@ -1449,24 +1449,24 @@ Private Attributes</h2></td></tr>
|
|
|
1449
1449
|
<p>allocate control-flow graph branch conditions </p>
|
|
1450
1450
|
|
|
1451
1451
|
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00042">42</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
|
|
1452
|
-
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(module);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a>* ander = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(pag);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a5fb7733fd66ecad30eea8ced3839e590">Options::SABERFULLSVFG</a>)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">buildFullSVFG</a>(ander);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">buildPTROnlySVFG</a>(ander);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="
|
|
1452
|
+
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(module);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a>* ander = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(pag);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a5fb7733fd66ecad30eea8ced3839e590">Options::SABERFULLSVFG</a>)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">buildFullSVFG</a>(ander);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">buildPTROnlySVFG</a>(ander);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1GraphReachSolver.html#a0298a692295a8a4eae32ab151aa6ccc3">setGraph</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5">getSVFG</a>());</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">ptaCallGraph</a> = ander-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">//AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"></span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-><a class="code" href="classSVF_1_1PathCondAllocator.html#a3fce010083b85a4421eed4c17eb54640">allocate</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">getPAG</a>()->getModule());</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1c8f91ffa0b9f01d51c8cd5e14f076d5">initSrcs</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0f6cfa30c346aab1fb03a44e47c32559">initSnks</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00232">SrcSnkDDA.h:232</a></div></div>
|
|
1453
1453
|
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa6d56f9580f76fd09d25ce6cf7541e98"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build(SVFModule *svfModule)</div><div class="ttdoc">Start building SVFIR here. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00048">SVFIRBuilder.cpp:48</a></div></div>
|
|
1454
1454
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a0f6cfa30c346aab1fb03a44e47c32559"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a0f6cfa30c346aab1fb03a44e47c32559">SVF::SrcSnkDDA::initSnks</a></div><div class="ttdeci">virtual void initSnks()=0</div></div>
|
|
1455
1455
|
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00052">SVFGBuilder.cpp:52</a></div></div>
|
|
1456
|
-
<div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a49cae8f70144639f529956478a8fca2b"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a49cae8f70144639f529956478a8fca2b">SVF::SrcSnkSolver::setGraph</a></div><div class="ttdeci">void setGraph(GraphType g)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00078">SrcSnkSolver.h:78</a></div></div>
|
|
1457
1456
|
<div class="ttc" id="classSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00419">Andersen.h:419</a></div></div>
|
|
1458
1457
|
<div class="ttc" id="classSVF_1_1Options_html_a5fb7733fd66ecad30eea8ced3839e590"><div class="ttname"><a href="classSVF_1_1Options.html#a5fb7733fd66ecad30eea8ced3839e590">SVF::Options::SABERFULLSVFG</a></div><div class="ttdeci">static const llvm::cl::opt< bool > SABERFULLSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00249">Options.h:249</a></div></div>
|
|
1459
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ab6803f0a2b3507213ad2979b9b12f700"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">SVF::SrcSnkDDA::memSSA</a></div><div class="ttdeci">SaberSVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1460
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1458
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ab6803f0a2b3507213ad2979b9b12f700"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">SVF::SrcSnkDDA::memSSA</a></div><div class="ttdeci">SaberSVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00070">SrcSnkDDA.h:70</a></div></div>
|
|
1459
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00072">SrcSnkDDA.h:72</a></div></div>
|
|
1461
1460
|
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_ab7353191edd06568e2598177d253c1d9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVF::SVFGBuilder::buildPTROnlySVFG</a></div><div class="ttdeci">SVFG * buildPTROnlySVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00044">SVFGBuilder.cpp:44</a></div></div>
|
|
1462
1461
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00178">PointerAnalysis.h:178</a></div></div>
|
|
1463
1462
|
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
|
|
1464
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ae657ebdeae8a083cfec210859a0023e4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">SVF::SrcSnkDDA::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1463
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ae657ebdeae8a083cfec210859a0023e4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">SVF::SrcSnkDDA::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00071">SrcSnkDDA.h:71</a></div></div>
|
|
1465
1464
|
<div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3fce010083b85a4421eed4c17eb54640"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3fce010083b85a4421eed4c17eb54640">SVF::PathCondAllocator::allocate</a></div><div class="ttdeci">void allocate(const SVFModule *module)</div><div class="ttdoc">Perform path allocation. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00054">PathCondAllocator.cpp:54</a></div></div>
|
|
1466
1465
|
<div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00430">Andersen.h:430</a></div></div>
|
|
1467
1466
|
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_ad70dc4134a6290223b4168bde146b6d5"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5">SVF::SVFGBuilder::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG instance. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00087">SVFGBuilder.h:87</a></div></div>
|
|
1468
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a4f37c66db2588cd691353a9ad1a4d5b1"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">SVF::SrcSnkDDA::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Get SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1467
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a4f37c66db2588cd691353a9ad1a4d5b1"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">SVF::SrcSnkDDA::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Get SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00115">SrcSnkDDA.h:115</a></div></div>
|
|
1469
1468
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1c8f91ffa0b9f01d51c8cd5e14f076d5"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1c8f91ffa0b9f01d51c8cd5e14f076d5">SVF::SrcSnkDDA::initSrcs</a></div><div class="ttdeci">virtual void initSrcs()=0</div></div>
|
|
1469
|
+
<div class="ttc" id="classSVF_1_1GraphReachSolver_html_a0298a692295a8a4eae32ab151aa6ccc3"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a0298a692295a8a4eae32ab151aa6ccc3">SVF::GraphReachSolver::setGraph</a></div><div class="ttdeci">void setGraph(GraphType g)</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00078">GraphReachSolver.h:78</a></div></div>
|
|
1470
1470
|
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
1471
1471
|
</div><!-- fragment -->
|
|
1472
1472
|
</div>
|
|
@@ -1551,8 +1551,8 @@ Private Attributes</h2></td></tr>
|
|
|
1551
1551
|
|
|
1552
1552
|
<p>Whether it is all path reachable from a source. </p>
|
|
1553
1553
|
|
|
1554
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1555
|
-
<div class="fragment"><div class="line"><a name="
|
|
1554
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00293">293</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1555
|
+
<div class="fragment"><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e">isAllReachable</a>();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
1556
1556
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a2f96f034b7236791fe1d4d351174722e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e">SVF::ProgSlice::isAllReachable</a></div><div class="ttdeci">bool isAllReachable() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00148">ProgSlice.h:148</a></div></div>
|
|
1557
1557
|
</div><!-- fragment -->
|
|
1558
1558
|
</div>
|
|
@@ -1583,9 +1583,9 @@ Private Attributes</h2></td></tr>
|
|
|
1583
1583
|
|
|
1584
1584
|
<p>Whether this svfg node may access global variable. </p>
|
|
1585
1585
|
|
|
1586
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1587
|
-
<div class="fragment"><div class="line"><a name="
|
|
1588
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ab6803f0a2b3507213ad2979b9b12f700"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">SVF::SrcSnkDDA::memSSA</a></div><div class="ttdeci">SaberSVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1586
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00133">133</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1587
|
+
<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#afbcd75844af51ff51c09c377f80a49cf">isGlobalSVFGNode</a>(node);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div><div class="ttc" id="classSVF_1_1SaberSVFGBuilder_html_afbcd75844af51ff51c09c377f80a49cf"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#afbcd75844af51ff51c09c377f80a49cf">SVF::SaberSVFGBuilder::isGlobalSVFGNode</a></div><div class="ttdeci">bool isGlobalSVFGNode(const SVFGNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00054">SaberSVFGBuilder.h:54</a></div></div>
|
|
1588
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ab6803f0a2b3507213ad2979b9b12f700"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">SVF::SrcSnkDDA::memSSA</a></div><div class="ttdeci">SaberSVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00070">SrcSnkDDA.h:70</a></div></div>
|
|
1589
1589
|
</div><!-- fragment -->
|
|
1590
1590
|
</div>
|
|
1591
1591
|
</div>
|
|
@@ -1619,16 +1619,16 @@ Private Attributes</h2></td></tr>
|
|
|
1619
1619
|
<p>determine whether a SVFGNode n is in a allocation wrapper function, if so, return all SVFGNodes which receive the value of node n </p>
|
|
1620
1620
|
|
|
1621
1621
|
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00119">119</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
|
|
1622
|
-
<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">bool</span> reachFunExit = <span class="keyword">false</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">WorkList</a> <a class="code" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">worklist</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(src);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVFGNodeBS</a> visited;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> step = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">while</span> (!worklist.empty())</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = worklist.pop();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span>(visited.test(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())==0)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  visited.set(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">// reaching maximum steps when traversing on SVFG to identify a memory allocation wrapper</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span> (step++ > <a class="code" href="classSVF_1_1Options.html#a0b82f16ee0c7e6566a6ae20662525e84">Options::MaxStepInWrapper</a>)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = node-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  node-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = (*it);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">//assert(edge->isDirectVFGEdge() && "the edge should always be direct VF");</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// if this is a call edge</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a92e3da59f7f5a693945b9a93f169da04">isCallDirectVFGEdge</a>())</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="comment">// if this is a return edge</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a49cbf2a714c9b965b19452d266cd8bdf">isRetDirectVFGEdge</a>())</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  reachFunExit = <span class="keyword">true</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  csIdSet.insert(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()->getCallSite(SVFUtil::cast<RetDirSVFGEdge>(edge)->getCallSiteId()));</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="comment">// (1) an intra direct edge, we will keep tracking</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="comment">// (2) an intra indirect edge, we only track if the succ SVFGNode is a load, which means we only track one level store-load pair .</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="comment">// (3) do not track for all other interprocedural edges.</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* succ = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">if</span>(SVFUtil::isa<IntraDirSVFGEdge>(edge)){</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CopySVFGNode>(succ) || SVFUtil::isa<GepSVFGNode>(succ)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  || SVFUtil::isa<PHISVFGNode>(succ) || SVFUtil::isa<FormalRetSVFGNode>(succ)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  || SVFUtil::isa<ActualRetSVFGNode>(succ) || SVFUtil::isa<StoreSVFGNode>(succ))</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  worklist.push(succ);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<IntraIndSVFGEdge>(edge))</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span>(SVFUtil::isa<LoadSVFGNode>(succ))</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  worklist.push(succ);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span>(reachFunExit)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> }</div><div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00202">GenericGraph.h:202</a></div></div>
|
|
1622
|
+
<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">bool</span> reachFunExit = <span class="keyword">false</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">WorkList</a> <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(src);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVFGNodeBS</a> visited;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> step = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">while</span> (!worklist.empty())</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = worklist.pop();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span>(visited.test(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())==0)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  visited.set(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">// reaching maximum steps when traversing on SVFG to identify a memory allocation wrapper</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span> (step++ > <a class="code" href="classSVF_1_1Options.html#a0b82f16ee0c7e6566a6ae20662525e84">Options::MaxStepInWrapper</a>)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = node-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  node-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = (*it);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">//assert(edge->isDirectVFGEdge() && "the edge should always be direct VF");</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// if this is a call edge</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a92e3da59f7f5a693945b9a93f169da04">isCallDirectVFGEdge</a>())</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="comment">// if this is a return edge</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a49cbf2a714c9b965b19452d266cd8bdf">isRetDirectVFGEdge</a>())</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  reachFunExit = <span class="keyword">true</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  csIdSet.insert(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()->getCallSite(SVFUtil::cast<RetDirSVFGEdge>(edge)->getCallSiteId()));</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="comment">// (1) an intra direct edge, we will keep tracking</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="comment">// (2) an intra indirect edge, we only track if the succ SVFGNode is a load, which means we only track one level store-load pair .</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="comment">// (3) do not track for all other interprocedural edges.</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* succ = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">if</span>(SVFUtil::isa<IntraDirSVFGEdge>(edge)){</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CopySVFGNode>(succ) || SVFUtil::isa<GepSVFGNode>(succ)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  || SVFUtil::isa<PHISVFGNode>(succ) || SVFUtil::isa<FormalRetSVFGNode>(succ)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  || SVFUtil::isa<ActualRetSVFGNode>(succ) || SVFUtil::isa<StoreSVFGNode>(succ))</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  worklist.push(succ);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<IntraIndSVFGEdge>(edge))</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span>(SVFUtil::isa<LoadSVFGNode>(succ))</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  worklist.push(succ);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span>(reachFunExit)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> }</div><div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00202">GenericGraph.h:202</a></div></div>
|
|
1623
|
+
<div class="ttc" id="classSVF_1_1GraphReachSolver_html_a5032d3988dbce5a29274c55dc4dbe6bc"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">SVF::GraphReachSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00180">GraphReachSolver.h:180</a></div></div>
|
|
1623
1624
|
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
|
|
1624
1625
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
1625
1626
|
<div class="ttc" id="classSVF_1_1Options_html_a0b82f16ee0c7e6566a6ae20662525e84"><div class="ttname"><a href="classSVF_1_1Options.html#a0b82f16ee0c7e6566a6ae20662525e84">SVF::Options::MaxStepInWrapper</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned > MaxStepInWrapper</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00096">Options.h:96</a></div></div>
|
|
1626
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3c0d8850c4dae49a760ce5f80fb8822a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">SVF::SrcSnkDDA::WorkList</a></div><div class="ttdeci">ProgSlice::VFWorkList WorkList</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1627
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3c0d8850c4dae49a760ce5f80fb8822a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">SVF::SrcSnkDDA::WorkList</a></div><div class="ttdeci">ProgSlice::VFWorkList WorkList</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00059">SrcSnkDDA.h:59</a></div></div>
|
|
1627
1628
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
1628
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a70cff8ea7c033c01400935c9e446f2c6"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVF::SrcSnkDDA::SVFGNodeBS</a></div><div class="ttdeci">NodeBS SVFGNodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1629
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1629
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a70cff8ea7c033c01400935c9e446f2c6"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVF::SrcSnkDDA::SVFGNodeBS</a></div><div class="ttdeci">NodeBS SVFGNodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00058">SrcSnkDDA.h:58</a></div></div>
|
|
1630
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00121">SrcSnkDDA.h:121</a></div></div>
|
|
1630
1631
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
|
|
1631
|
-
<div class="ttc" id="classSVF_1_1SrcSnkSolver_html_aeecbd88066567b2f123e84072dd09941"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">SVF::SrcSnkSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00180">SrcSnkSolver.h:180</a></div></div>
|
|
1632
1632
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
1633
1633
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
1634
1634
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00206">GenericGraph.h:206</a></div></div>
|
|
@@ -1662,8 +1662,8 @@ Private Attributes</h2></td></tr>
|
|
|
1662
1662
|
</table>
|
|
1663
1663
|
</div><div class="memdoc">
|
|
1664
1664
|
|
|
1665
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1666
|
-
<div class="fragment"><div class="line"><a name="
|
|
1665
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00154">154</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1666
|
+
<div class="fragment"><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7">inBackwardSlice</a>(node);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
1667
1667
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a066430ffa98a3fa0a5ad48d26e0450f7"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7">SVF::ProgSlice::inBackwardSlice</a></div><div class="ttdeci">bool inBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00088">ProgSlice.h:88</a></div></div>
|
|
1668
1668
|
</div><!-- fragment -->
|
|
1669
1669
|
</div>
|
|
@@ -1692,8 +1692,8 @@ Private Attributes</h2></td></tr>
|
|
|
1692
1692
|
</table>
|
|
1693
1693
|
</div><div class="memdoc">
|
|
1694
1694
|
|
|
1695
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1696
|
-
<div class="fragment"><div class="line"><a name="
|
|
1695
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00150">150</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1696
|
+
<div class="fragment"><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6">inForwardSlice</a>(node);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
1697
1697
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a5a4b7f34001cc90f9b60222caee1bde6"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6">SVF::ProgSlice::inForwardSlice</a></div><div class="ttdeci">bool inForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00084">ProgSlice.h:84</a></div></div>
|
|
1698
1698
|
</div><!-- fragment -->
|
|
1699
1699
|
</div>
|
|
@@ -1722,8 +1722,8 @@ Private Attributes</h2></td></tr>
|
|
|
1722
1722
|
</table>
|
|
1723
1723
|
</div><div class="memdoc">
|
|
1724
1724
|
|
|
1725
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1726
|
-
<div class="fragment"><div class="line"><a name="
|
|
1725
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00184">184</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1726
|
+
<div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1145c601df2e3dec1e32e43613447b96">getSinks</a>().find(node)!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a1145c601df2e3dec1e32e43613447b96">getSinks</a>().end();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1145c601df2e3dec1e32e43613447b96"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1145c601df2e3dec1e32e43613447b96">SVF::SrcSnkDDA::getSinks</a></div><div class="ttdeci">const SVFGNodeSet & getSinks() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00213">SrcSnkDDA.h:213</a></div></div>
|
|
1727
1727
|
</div><!-- fragment -->
|
|
1728
1728
|
</div>
|
|
1729
1729
|
</div>
|
|
@@ -1753,8 +1753,8 @@ Private Attributes</h2></td></tr>
|
|
|
1753
1753
|
|
|
1754
1754
|
<p>Reimplemented in <a class="el" href="classSVF_1_1LeakChecker.html#aa45d35a0dc5162e8cef8b27b92ff243d">SVF::LeakChecker</a>, and <a class="el" href="classSVF_1_1FileChecker.html#aac61c4566cd79827879f4862664a432e">SVF::FileChecker</a>.</p>
|
|
1755
1755
|
|
|
1756
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1757
|
-
<div class="fragment"><div class="line"><a name="
|
|
1756
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00176">176</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1757
|
+
<div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div></div><!-- fragment -->
|
|
1758
1758
|
</div>
|
|
1759
1759
|
</div>
|
|
1760
1760
|
<a id="a19ab6f6df2a67b294268cfe7f4287fd7"></a>
|
|
@@ -1782,8 +1782,8 @@ Private Attributes</h2></td></tr>
|
|
|
1782
1782
|
|
|
1783
1783
|
<p>Whether it is some path reachable from a source. </p>
|
|
1784
1784
|
|
|
1785
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1786
|
-
<div class="fragment"><div class="line"><a name="
|
|
1785
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00298">298</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1786
|
+
<div class="fragment"><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-><a class="code" href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2">isPartialReachable</a>();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
1787
1787
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a3822badbbe9ac808296d5248f2dbf8e2"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2">SVF::ProgSlice::isPartialReachable</a></div><div class="ttdeci">bool isPartialReachable() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00144">ProgSlice.h:144</a></div></div>
|
|
1788
1788
|
</div><!-- fragment -->
|
|
1789
1789
|
</div>
|
|
@@ -1812,8 +1812,8 @@ Private Attributes</h2></td></tr>
|
|
|
1812
1812
|
</table>
|
|
1813
1813
|
</div><div class="memdoc">
|
|
1814
1814
|
|
|
1815
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1816
|
-
<div class="fragment"><div class="line"><a name="
|
|
1815
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00180">180</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1816
|
+
<div class="fragment"><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0c3d3b5ac74aa933178fa46b949d8bef">getSources</a>().find(node)!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a0c3d3b5ac74aa933178fa46b949d8bef">getSources</a>().end();</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a0c3d3b5ac74aa933178fa46b949d8bef"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a0c3d3b5ac74aa933178fa46b949d8bef">SVF::SrcSnkDDA::getSources</a></div><div class="ttdeci">const SVFGNodeSet & getSources() const</div><div class="ttdoc">Get sources/sinks. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00197">SrcSnkDDA.h:197</a></div></div>
|
|
1817
1817
|
</div><!-- fragment -->
|
|
1818
1818
|
</div>
|
|
1819
1819
|
</div>
|
|
@@ -1843,8 +1843,8 @@ Private Attributes</h2></td></tr>
|
|
|
1843
1843
|
|
|
1844
1844
|
<p>Reimplemented in <a class="el" href="classSVF_1_1LeakChecker.html#afeee30f5f0c08d9aed59be3064bcc134">SVF::LeakChecker</a>, and <a class="el" href="classSVF_1_1FileChecker.html#ab2ed4c1d3aa00ac663441f32d9f3115f">SVF::FileChecker</a>.</p>
|
|
1845
1845
|
|
|
1846
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1847
|
-
<div class="fragment"><div class="line"><a name="
|
|
1846
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00172">172</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1847
|
+
<div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div></div><!-- fragment -->
|
|
1848
1848
|
</div>
|
|
1849
1849
|
</div>
|
|
1850
1850
|
<a id="ae3d665ff1e796348131e797eb0283bfb"></a>
|
|
@@ -1871,7 +1871,7 @@ Private Attributes</h2></td></tr>
|
|
|
1871
1871
|
</div><div class="memdoc">
|
|
1872
1872
|
|
|
1873
1873
|
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00302">302</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
|
|
1874
|
-
<div class="fragment"><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"BDD Mem usage: "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-><a class="code" href="classSVF_1_1PathCondAllocator.html#ad6d58127299d87ae3c231065bb411557">getMemUsage</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"BDD Number: "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-><a class="code" href="classSVF_1_1PathCondAllocator.html#ae8f2447d33e2c638c1375f97ff3c3b40">getCondNum</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1874
|
+
<div class="fragment"><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"BDD Mem usage: "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-><a class="code" href="classSVF_1_1PathCondAllocator.html#ad6d58127299d87ae3c231065bb411557">getMemUsage</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"BDD Number: "</span> << <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-><a class="code" href="classSVF_1_1PathCondAllocator.html#ae8f2447d33e2c638c1375f97ff3c3b40">getCondNum</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00232">SrcSnkDDA.h:232</a></div></div>
|
|
1875
1875
|
<div class="ttc" id="classSVF_1_1PathCondAllocator_html_ad6d58127299d87ae3c231065bb411557"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ad6d58127299d87ae3c231065bb411557">SVF::PathCondAllocator::getMemUsage</a></div><div class="ttdeci">std::string getMemUsage()</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00071">PathCondAllocator.h:71</a></div></div>
|
|
1876
1876
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1877
1877
|
<div class="ttc" id="classSVF_1_1PathCondAllocator_html_ae8f2447d33e2c638c1375f97ff3c3b40"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ae8f2447d33e2c638c1375f97ff3c3b40">SVF::PathCondAllocator::getCondNum</a></div><div class="ttdeci">u32_t getCondNum()</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00075">PathCondAllocator.h:75</a></div></div>
|
|
@@ -1936,10 +1936,10 @@ Private Attributes</h2></td></tr>
|
|
|
1936
1936
|
<p>Set current slice. </p>
|
|
1937
1937
|
|
|
1938
1938
|
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00272">272</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
|
|
1939
|
-
<div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>!=<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#af048c70d7e68da22835570a3381eb14d">clearVisitedMap</a>();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ProgSlice.html">ProgSlice</a>(src,<a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>(), <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>());</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1940
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1941
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_af048c70d7e68da22835570a3381eb14d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#af048c70d7e68da22835570a3381eb14d">SVF::SrcSnkDDA::clearVisitedMap</a></div><div class="ttdeci">void clearVisitedMap()</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1942
|
-
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#
|
|
1939
|
+
<div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>!=<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#af048c70d7e68da22835570a3381eb14d">clearVisitedMap</a>();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ProgSlice.html">ProgSlice</a>(src,<a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>(), <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>());</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00232">SrcSnkDDA.h:232</a></div></div>
|
|
1940
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
|
|
1941
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_af048c70d7e68da22835570a3381eb14d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#af048c70d7e68da22835570a3381eb14d">SVF::SrcSnkDDA::clearVisitedMap</a></div><div class="ttdeci">void clearVisitedMap()</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00285">SrcSnkDDA.h:285</a></div></div>
|
|
1942
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00121">SrcSnkDDA.h:121</a></div></div>
|
|
1943
1943
|
<div class="ttc" id="classSVF_1_1ProgSlice_html"><div class="ttname"><a href="classSVF_1_1ProgSlice.html">SVF::ProgSlice</a></div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00041">ProgSlice.h:41</a></div></div>
|
|
1944
1944
|
</div><!-- fragment -->
|
|
1945
1945
|
</div>
|
|
@@ -1967,8 +1967,8 @@ Private Attributes</h2></td></tr>
|
|
|
1967
1967
|
</table>
|
|
1968
1968
|
</div><div class="memdoc">
|
|
1969
1969
|
|
|
1970
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1971
|
-
<div class="fragment"><div class="line"><a name="
|
|
1970
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00217">217</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1971
|
+
<div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>.begin();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_aaffd4b48be1f99e0450b23f20f034b1e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">SVF::SrcSnkDDA::sinks</a></div><div class="ttdeci">SVFGNodeSet sinks</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00064">SrcSnkDDA.h:64</a></div></div>
|
|
1972
1972
|
</div><!-- fragment -->
|
|
1973
1973
|
</div>
|
|
1974
1974
|
</div>
|
|
@@ -1995,8 +1995,8 @@ Private Attributes</h2></td></tr>
|
|
|
1995
1995
|
</table>
|
|
1996
1996
|
</div><div class="memdoc">
|
|
1997
1997
|
|
|
1998
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
1999
|
-
<div class="fragment"><div class="line"><a name="
|
|
1998
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00221">221</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
1999
|
+
<div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>.end();</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_aaffd4b48be1f99e0450b23f20f034b1e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">SVF::SrcSnkDDA::sinks</a></div><div class="ttdeci">SVFGNodeSet sinks</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00064">SrcSnkDDA.h:64</a></div></div>
|
|
2000
2000
|
</div><!-- fragment -->
|
|
2001
2001
|
</div>
|
|
2002
2002
|
</div>
|
|
@@ -2023,8 +2023,8 @@ Private Attributes</h2></td></tr>
|
|
|
2023
2023
|
</table>
|
|
2024
2024
|
</div><div class="memdoc">
|
|
2025
2025
|
|
|
2026
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2027
|
-
<div class="fragment"><div class="line"><a name="
|
|
2026
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00201">201</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2027
|
+
<div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>.begin();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00063">SrcSnkDDA.h:63</a></div></div>
|
|
2028
2028
|
</div><!-- fragment -->
|
|
2029
2029
|
</div>
|
|
2030
2030
|
</div>
|
|
@@ -2051,8 +2051,8 @@ Private Attributes</h2></td></tr>
|
|
|
2051
2051
|
</table>
|
|
2052
2052
|
</div><div class="memdoc">
|
|
2053
2053
|
|
|
2054
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2055
|
-
<div class="fragment"><div class="line"><a name="
|
|
2054
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00205">205</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2055
|
+
<div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>.end();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00063">SrcSnkDDA.h:63</a></div></div>
|
|
2056
2056
|
</div><!-- fragment -->
|
|
2057
2057
|
</div>
|
|
2058
2058
|
</div>
|
|
@@ -2077,7 +2077,7 @@ Private Attributes</h2></td></tr>
|
|
|
2077
2077
|
</table>
|
|
2078
2078
|
</div><div class="memdoc">
|
|
2079
2079
|
|
|
2080
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2080
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00062">62</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2081
2081
|
|
|
2082
2082
|
</div>
|
|
2083
2083
|
</div>
|
|
@@ -2101,7 +2101,7 @@ Private Attributes</h2></td></tr>
|
|
|
2101
2101
|
</table>
|
|
2102
2102
|
</div><div class="memdoc">
|
|
2103
2103
|
|
|
2104
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2104
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00070">70</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2105
2105
|
|
|
2106
2106
|
</div>
|
|
2107
2107
|
</div>
|
|
@@ -2127,7 +2127,7 @@ Private Attributes</h2></td></tr>
|
|
|
2127
2127
|
|
|
2128
2128
|
<p>record forward visited dpitems </p>
|
|
2129
2129
|
|
|
2130
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2130
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00066">66</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2131
2131
|
|
|
2132
2132
|
</div>
|
|
2133
2133
|
</div>
|
|
@@ -2153,7 +2153,7 @@ Private Attributes</h2></td></tr>
|
|
|
2153
2153
|
|
|
2154
2154
|
<p>source nodes </p>
|
|
2155
2155
|
|
|
2156
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2156
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00065">65</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2157
2157
|
|
|
2158
2158
|
</div>
|
|
2159
2159
|
</div>
|
|
@@ -2177,7 +2177,7 @@ Private Attributes</h2></td></tr>
|
|
|
2177
2177
|
</table>
|
|
2178
2178
|
</div><div class="memdoc">
|
|
2179
2179
|
|
|
2180
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2180
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00072">72</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2181
2181
|
|
|
2182
2182
|
</div>
|
|
2183
2183
|
</div>
|
|
@@ -2203,7 +2203,7 @@ Private Attributes</h2></td></tr>
|
|
|
2203
2203
|
|
|
2204
2204
|
<p>source nodes </p>
|
|
2205
2205
|
|
|
2206
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2206
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00064">64</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2207
2207
|
|
|
2208
2208
|
</div>
|
|
2209
2209
|
</div>
|
|
@@ -2229,7 +2229,7 @@ Private Attributes</h2></td></tr>
|
|
|
2229
2229
|
|
|
2230
2230
|
<p>current program slice </p>
|
|
2231
2231
|
|
|
2232
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2232
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00063">63</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2233
2233
|
|
|
2234
2234
|
</div>
|
|
2235
2235
|
</div>
|
|
@@ -2253,7 +2253,7 @@ Private Attributes</h2></td></tr>
|
|
|
2253
2253
|
</table>
|
|
2254
2254
|
</div><div class="memdoc">
|
|
2255
2255
|
|
|
2256
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2256
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00071">71</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2257
2257
|
|
|
2258
2258
|
</div>
|
|
2259
2259
|
</div>
|
|
@@ -2279,7 +2279,7 @@ Private Attributes</h2></td></tr>
|
|
|
2279
2279
|
|
|
2280
2280
|
<p>record backward visited nodes </p>
|
|
2281
2281
|
|
|
2282
|
-
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#
|
|
2282
|
+
<p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00067">67</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
|
|
2283
2283
|
|
|
2284
2284
|
</div>
|
|
2285
2285
|
</div>
|