svf-tools 1.0.551 → 1.0.554
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/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +1 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/CHGBuilder_8h.html +1 -0
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +11 -10
- package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DCHG_8cpp.html +2 -2
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +38 -35
- package/SVF-doxygen/html/html/DCHG_8h_source.html +9 -10
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +11 -14
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +12 -13
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DPItem_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +4 -4
- 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/FlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +20 -18
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +17 -17
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/MHP_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTA_8h_source.html +3 -3
- 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 +6 -6
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +2 -0
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +110 -109
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +61 -61
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +47 -47
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +49 -52
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +34 -34
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +5 -5
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/TCT_8h_source.html +8 -8
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -2
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +79 -80
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +29 -29
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +27 -27
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +9 -12
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +10 -11
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +114 -111
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +5 -6
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +42 -79
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +95 -54
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +61 -61
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +123 -120
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +85 -83
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass-members.html +4 -5
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +28 -66
- package/SVF-doxygen/html/html/functions_b.html +1 -1
- package/SVF-doxygen/html/html/functions_func_b.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +8 -8
- package/SVF-doxygen/html/html/functions_func_r.html +3 -3
- package/SVF-doxygen/html/html/functions_g.html +9 -9
- package/SVF-doxygen/html/html/functions_r.html +2 -4
- package/SVF-doxygen/html/html/namespaceSVF.html +141 -141
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +49 -49
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +168 -171
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +28 -28
- package/SVF-doxygen/html/html/search/all_11.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/html/search/all_7.js +3 -3
- package/SVF-doxygen/html/html/search/functions_1.js +1 -1
- package/SVF-doxygen/html/html/search/functions_10.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/DDA/DDAPass.h +0 -3
- package/include/SVF-FE/BasicTypes.h +1 -0
- package/include/SVF-FE/CHGBuilder.h +1 -0
- package/include/SVF-FE/DCHG.h +1 -1
- package/include/SVF-FE/LLVMModule.h +17 -0
- package/include/Util/BasicTypes.h +0 -1
- package/include/Util/ExtAPI.h +2 -2
- package/include/Util/ExtAPI.json +3 -3
- package/include/Util/SVFUtil.h +1 -13
- package/include/WPA/WPAPass.h +0 -3
- package/lib/DDA/DDAPass.cpp +0 -7
- package/lib/SVF-FE/DCHG.cpp +4 -7
- package/lib/SVF-FE/SVFIRBuilder.cpp +63 -23
- package/lib/Util/ExtAPI.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +41 -15
- package/lib/WPA/WPAPass.cpp +0 -10
- package/package.json +1 -1
|
@@ -100,9 +100,6 @@ Public Member Functions</h2></td></tr>
|
|
|
100
100
|
<tr class="memitem:af196994d6ec7f5cead72212407842103"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">runOnModule</a> (<a class="el" href="classSVF_1_1SVFModule.html">SVFModule</a> *module)</td></tr>
|
|
101
101
|
<tr class="memdesc:af196994d6ec7f5cead72212407842103"><td class="mdescLeft"> </td><td class="mdescRight">We start from here. <a href="#af196994d6ec7f5cead72212407842103">More...</a><br /></td></tr>
|
|
102
102
|
<tr class="separator:af196994d6ec7f5cead72212407842103"><td class="memSeparator" colspan="2"> </td></tr>
|
|
103
|
-
<tr class="memitem:a7bc2c9a62b7d97b8e19bee0c4625aea3"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1DDAPass.html#a7bc2c9a62b7d97b8e19bee0c4625aea3">runOnModule</a> (<a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &module)</td></tr>
|
|
104
|
-
<tr class="memdesc:a7bc2c9a62b7d97b8e19bee0c4625aea3"><td class="mdescLeft"> </td><td class="mdescRight">We start from here. <a href="#a7bc2c9a62b7d97b8e19bee0c4625aea3">More...</a><br /></td></tr>
|
|
105
|
-
<tr class="separator:a7bc2c9a62b7d97b8e19bee0c4625aea3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
106
103
|
<tr class="memitem:aa33694e0b5f30c451c229e92877e4842"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1DDAPass.html#aa33694e0b5f30c451c229e92877e4842">selectClient</a> (<a class="el" href="classSVF_1_1SVFModule.html">SVFModule</a> *module)</td></tr>
|
|
107
104
|
<tr class="memdesc:aa33694e0b5f30c451c229e92877e4842"><td class="mdescLeft"> </td><td class="mdescRight">Select a client. <a href="#aa33694e0b5f30c451c229e92877e4842">More...</a><br /></td></tr>
|
|
108
105
|
<tr class="separator:aa33694e0b5f30c451c229e92877e4842"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -225,8 +222,8 @@ Private Attributes</h2></td></tr>
|
|
|
225
222
|
</div><div class="memdoc">
|
|
226
223
|
|
|
227
224
|
<p class="definition">Definition at line <a class="el" href="DDAPass_8h_source.html#l00034">34</a> of file <a class="el" href="DDAPass_8h_source.html">DDAPass.h</a>.</p>
|
|
228
|
-
<div class="fragment"><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> : <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>(<span class="keyword">nullptr</span>) {}</div><div class="ttc" id="classSVF_1_1DDAPass_html_a240ffa3ed0963e579db60784f4a21b9f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">SVF::DDAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#
|
|
229
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#
|
|
225
|
+
<div class="fragment"><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> : <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>(<span class="keyword">nullptr</span>) {}</div><div class="ttc" id="classSVF_1_1DDAPass_html_a240ffa3ed0963e579db60784f4a21b9f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">SVF::DDAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00070">DDAPass.h:70</a></div></div>
|
|
226
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00071">DDAPass.h:71</a></div></div>
|
|
230
227
|
</div><!-- fragment -->
|
|
231
228
|
</div>
|
|
232
229
|
</div>
|
|
@@ -246,7 +243,7 @@ Private Attributes</h2></td></tr>
|
|
|
246
243
|
</div><div class="memdoc">
|
|
247
244
|
|
|
248
245
|
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00024">24</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
249
|
-
<div class="fragment"><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="comment">// _pta->dumpStat();</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> }</div><div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#
|
|
246
|
+
<div class="fragment"><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="comment">// _pta->dumpStat();</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> }</div><div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00071">DDAPass.h:71</a></div></div>
|
|
250
247
|
</div><!-- fragment -->
|
|
251
248
|
</div>
|
|
252
249
|
</div>
|
|
@@ -289,10 +286,10 @@ Private Attributes</h2></td></tr>
|
|
|
289
286
|
<p>Return alias results based on our points-to/alias analysis TODO: Need to handle PartialAlias and MustAlias here. </p>
|
|
290
287
|
<p>TODO: When this method is invoked during compiler optimizations, the IR used for pointer analysis may been changed, so some Values may not find corresponding <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> node. In this case, we only check alias between two Values if they both have <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> nodes. Otherwise, MayAlias will be returned. </p>
|
|
291
288
|
|
|
292
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
293
|
-
<div class="fragment"><div class="line"><a name="
|
|
289
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00276">276</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
290
|
+
<div class="fragment"><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">if</span> (pag-><a class="code" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">hasValueNode</a>(V1) && pag-><a class="code" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">hasValueNode</a>(V2))</div><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_1SVFVar.html">PAGNode</a>* node1 = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-><a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(V1));</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">if</span>(pag-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(node1))</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a0bb90b398ef85504bcd816ae57bee01d">computeDDAPts</a>(node1-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node2 = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-><a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(V2));</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">if</span>(pag-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(node2))</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a0bb90b398ef85504bcd816ae57bee01d">computeDDAPts</a>(node2-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><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_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a6c01f259ad2379a422d7106ce0255eb8">alias</a>(V1,V2);</div><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">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> }</div><div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
294
291
|
<div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00124">IRGraph.h:124</a></div></div>
|
|
295
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_a240ffa3ed0963e579db60784f4a21b9f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">SVF::DDAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#
|
|
292
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_a240ffa3ed0963e579db60784f4a21b9f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">SVF::DDAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00070">DDAPass.h:70</a></div></div>
|
|
296
293
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a5c3b194ebada47baaccf0e9f3ab1a139"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">SVF::SVFIR::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00705">SVFIR.cpp:705</a></div></div>
|
|
297
294
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
298
295
|
<div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">SVF::MayAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00199">SVFBasicTypes.h:199</a></div></div>
|
|
@@ -341,8 +338,8 @@ Private Attributes</h2></td></tr>
|
|
|
341
338
|
|
|
342
339
|
<p>Interface expose to users of our pointer analysis, given PAGNodes. </p>
|
|
343
340
|
|
|
344
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
345
|
-
<div class="fragment"><div class="line"><a name="
|
|
341
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00260">260</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
342
|
+
<div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">if</span>(pag-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node1)))</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a0bb90b398ef85504bcd816ae57bee01d">computeDDAPts</a>(node1);</div><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>  <span class="keywordflow">if</span>(pag-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node2)))</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a0bb90b398ef85504bcd816ae57bee01d">computeDDAPts</a>(node2);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a6c01f259ad2379a422d7106ce0255eb8">alias</a>(node1,node2);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> }</div><div class="ttc" id="classSVF_1_1DDAPass_html_a240ffa3ed0963e579db60784f4a21b9f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">SVF::DDAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00070">DDAPass.h:70</a></div></div>
|
|
346
343
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a5c3b194ebada47baaccf0e9f3ab1a139"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">SVF::SVFIR::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00705">SVFIR.cpp:705</a></div></div>
|
|
347
344
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
348
345
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a6c01f259ad2379a422d7106ce0255eb8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a6c01f259ad2379a422d7106ce0255eb8">SVF::PointerAnalysis::alias</a></div><div class="ttdeci">virtual AliasResult alias(const Value *V1, const Value *V2)=0</div><div class="ttdoc">Interface exposed to users of our pointer analysis, given Value infos. </div></div>
|
|
@@ -393,9 +390,9 @@ Private Attributes</h2></td></tr>
|
|
|
393
390
|
</div><div class="memdoc">
|
|
394
391
|
<p>Mark insensitive edge for function recursions </p>
|
|
395
392
|
|
|
396
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
397
|
-
<div class="fragment"><div class="line"><a name="
|
|
398
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_aab60429398a89ec1c8663a305130376f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#aab60429398a89ec1c8663a305130376f">SVF::DDAPass::edgeInCallGraphSCC</a></div><div class="ttdeci">bool edgeInCallGraphSCC(PointerAnalysis *pta, const SVFGEdge *edge)</div><div class="ttdoc">Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#
|
|
393
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00175">175</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
394
|
+
<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> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">for</span> (SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</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>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it->second->InEdgeBegin();</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it->second->InEdgeEnd();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><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="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAPass.html#aab60429398a89ec1c8663a305130376f">edgeInCallGraphSCC</a>(pta,edge))</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  insensitveEdges.insert(edge);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
395
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_aab60429398a89ec1c8663a305130376f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#aab60429398a89ec1c8663a305130376f">SVF::DDAPass::edgeInCallGraphSCC</a></div><div class="ttdeci">bool edgeInCallGraphSCC(PointerAnalysis *pta, const SVFGEdge *edge)</div><div class="ttdoc">Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00157">DDAPass.cpp:157</a></div></div>
|
|
399
396
|
<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>
|
|
400
397
|
<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>
|
|
401
398
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
|
|
@@ -450,17 +447,17 @@ Private Attributes</h2></td></tr>
|
|
|
450
447
|
</div><div class="memdoc">
|
|
451
448
|
<p>Mark insensitive edge for value-flow cycles </p>
|
|
452
449
|
|
|
453
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
454
|
-
<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> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet<NodePair></a> insensitvefunPairs;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">for</span> (SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it->second->InEdgeBegin();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it->second->InEdgeEnd();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</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>  <span class="keywordflow">if</span>(this-><a class="code" href="classSVF_1_1DDAPass.html#a3810708c5e2695d2a0e36084b589e432">edgeInSVFGSCC</a>(svfgSCC,edge))</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</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="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()->getICFGNode()->getFun();</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getICFGNode()->getFun();</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>  <span class="keywordflow">if</span>(srcFun && dstFun)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(srcFun)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(dstFun)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  insensitvefunPairs.insert(std::make_pair(src,dst));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  insensitvefunPairs.insert(std::make_pair(dst,src));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  assert(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>() == <span class="keyword">false</span> && <span class="stringliteral">"should not be an inter-procedural return edge"</span> );</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</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>  }</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="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">for</span>(SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it->second->InEdgeBegin();</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it->second->InEdgeEnd();</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</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="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()->getICFGNode()->getFun();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getICFGNode()->getFun();</div><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="keywordflow">if</span>(srcFun && dstFun)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(srcFun)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(dstFun)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">if</span>(insensitvefunPairs.find(std::make_pair(src,dst))!=insensitvefunPairs.end())</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  insensitveEdges.insert(edge);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(insensitvefunPairs.find(std::make_pair(dst,src))!=insensitvefunPairs.end())</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  insensitveEdges.insert(edge);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
450
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00198">198</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
451
|
+
<div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet<NodePair></a> insensitvefunPairs;</div><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">for</span> (SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</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> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it->second->InEdgeBegin();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it->second->InEdgeEnd();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">if</span>(this-><a class="code" href="classSVF_1_1DDAPass.html#a3810708c5e2695d2a0e36084b589e432">edgeInSVFGSCC</a>(svfgSCC,edge))</div><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> </div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()->getICFGNode()->getFun();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getICFGNode()->getFun();</div><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">if</span>(srcFun && dstFun)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(srcFun)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(dstFun)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  insensitvefunPairs.insert(std::make_pair(src,dst));</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  insensitvefunPairs.insert(std::make_pair(dst,src));</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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  assert(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>() == <span class="keyword">false</span> && <span class="stringliteral">"should not be an inter-procedural return edge"</span> );</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</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> </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">for</span>(SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it->second->InEdgeBegin();</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it->second->InEdgeEnd();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><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="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()->getICFGNode()->getFun();</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getICFGNode()->getFun();</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">if</span>(srcFun && dstFun)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(srcFun)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(dstFun)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">if</span>(insensitvefunPairs.find(std::make_pair(src,dst))!=insensitvefunPairs.end())</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  insensitveEdges.insert(edge);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(insensitvefunPairs.find(std::make_pair(dst,src))!=insensitvefunPairs.end())</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  insensitveEdges.insert(edge);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  }</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>  }</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_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
455
452
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
|
|
456
453
|
<div class="ttc" id="namespaceSVF_html_a4f21e91ff8eaea5207afe5c60dbd78d7"><div class="ttname"><a href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">SVF::OrderedSet</a></div><div class="ttdeci">std::set< Key, Compare, Allocator > OrderedSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00113">SVFBasicTypes.h:113</a></div></div>
|
|
457
454
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
458
455
|
<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>
|
|
459
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
456
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00125">BasicTypes.h:125</a></div></div>
|
|
460
457
|
<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>
|
|
461
458
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
|
|
462
459
|
<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#l00174">PointerAnalysis.h:174</a></div></div>
|
|
463
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_a3810708c5e2695d2a0e36084b589e432"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a3810708c5e2695d2a0e36084b589e432">SVF::DDAPass::edgeInSVFGSCC</a></div><div class="ttdeci">bool edgeInSVFGSCC(const SVFGSCC *svfgSCC, const SVFGEdge *edge)</div><div class="ttdoc">Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#
|
|
460
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_a3810708c5e2695d2a0e36084b589e432"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a3810708c5e2695d2a0e36084b589e432">SVF::DDAPass::edgeInSVFGSCC</a></div><div class="ttdeci">bool edgeInSVFGSCC(const SVFGSCC *svfgSCC, const SVFGEdge *edge)</div><div class="ttdoc">Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00149">DDAPass.cpp:149</a></div></div>
|
|
464
461
|
<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#l00093">GenericGraph.h:93</a></div></div>
|
|
465
462
|
<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#l00089">GenericGraph.h:89</a></div></div>
|
|
466
463
|
<div class="ttc" id="classSVF_1_1VFGEdge_html_a4352297ef44c4eff1efe2f348cce6fe9"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">SVF::VFGEdge::isCallVFGEdge</a></div><div class="ttdeci">bool isCallVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00084">VFGEdge.h:84</a></div></div>
|
|
@@ -505,9 +502,9 @@ Private Attributes</h2></td></tr>
|
|
|
505
502
|
<p>Return TRUE if this edge is inside a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC, i.e., src node and dst node are in the same SCC on the <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
506
503
|
<p>Whether call graph edge in <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC </p>
|
|
507
504
|
|
|
508
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
509
|
-
<div class="fragment"><div class="line"><a name="
|
|
510
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
505
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00157">157</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
506
|
+
<div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()->getICFGNode()->getFun();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getICFGNode()->getFun();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">if</span>(srcFun && dstFun)</div><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>  <span class="keywordflow">return</span> pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#ae58c2b25494ec51e714c83c6cfd5dd67">inSameCallGraphSCC</a>(srcFun,dstFun);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</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>  assert(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>() == <span class="keyword">false</span> && <span class="stringliteral">"should not be an inter-procedural return edge"</span> );</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>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }</div><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>
|
|
507
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00125">BasicTypes.h:125</a></div></div>
|
|
511
508
|
<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#l00093">GenericGraph.h:93</a></div></div>
|
|
512
509
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ae58c2b25494ec51e714c83c6cfd5dd67"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae58c2b25494ec51e714c83c6cfd5dd67">SVF::PointerAnalysis::inSameCallGraphSCC</a></div><div class="ttdeci">bool inSameCallGraphSCC(const SVFFunction *fun1, const SVFFunction *fun2)</div><div class="ttdoc">Return TRUE if this edge is inside a CallGraph SCC, i.e., src node and dst node are in the same SCC o...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00410">PointerAnalysis.h:410</a></div></div>
|
|
513
510
|
<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#l00089">GenericGraph.h:89</a></div></div>
|
|
@@ -551,8 +548,8 @@ Private Attributes</h2></td></tr>
|
|
|
551
548
|
<p>Return TRUE if this edge is inside a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC, i.e., src node and dst node are in the same SCC on the <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
552
549
|
<p>Whether <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> edge in a SCC cycle </p>
|
|
553
550
|
|
|
554
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
555
|
-
<div class="fragment"><div class="line"><a name="
|
|
551
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00149">149</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
552
|
+
<div class="fragment"><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">return</span> (svfgSCC->repNode(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) == svfgSCC->repNode(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()));</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> }</div><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>
|
|
556
553
|
<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>
|
|
557
554
|
</div><!-- fragment -->
|
|
558
555
|
</div>
|
|
@@ -582,8 +579,8 @@ Private Attributes</h2></td></tr>
|
|
|
582
579
|
|
|
583
580
|
<p>Pass name. </p>
|
|
584
581
|
|
|
585
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8h_source.html#
|
|
586
|
-
<div class="fragment"><div class="line"><a name="
|
|
582
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8h_source.html#l00050">50</a> of file <a class="el" href="DDAPass_8h_source.html">DDAPass.h</a>.</p>
|
|
583
|
+
<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">return</span> <span class="stringliteral">"DDAPass"</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div></div><!-- fragment -->
|
|
587
584
|
</div>
|
|
588
585
|
</div>
|
|
589
586
|
<a id="add44aee75c9a59327b4eb46774551e2b"></a>
|
|
@@ -635,9 +632,9 @@ Private Attributes</h2></td></tr>
|
|
|
635
632
|
<p>Context insensitive Edge for DDA. </p>
|
|
636
633
|
<p>Initialize context insensitive Edge for DDA </p>
|
|
637
634
|
|
|
638
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
639
|
-
<div class="fragment"><div class="line"><a name="
|
|
640
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_af8bc7f84e7dc8c7032eec6162a837ba6"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af8bc7f84e7dc8c7032eec6162a837ba6">SVF::DDAPass::collectCxtInsenEdgeForRecur</a></div><div class="ttdeci">void collectCxtInsenEdgeForRecur(PointerAnalysis *pta, const SVFG *svfg, SVFGEdgeSet &insensitveEdges)</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#
|
|
635
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00138">138</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
636
|
+
<div class="fragment"><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">if</span>(<a class="code" href="classSVF_1_1Options.html#aa1a3b9293dffeef1bb16a2a7b3a007dd">Options::InsenRecur</a>)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="classSVF_1_1DDAPass.html#af8bc7f84e7dc8c7032eec6162a837ba6">collectCxtInsenEdgeForRecur</a>(pta,svfg,insensitveEdges);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a35cfe6add81dc82983e0c53c36c6e667">Options::InsenCycle</a>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classSVF_1_1DDAPass.html#af03661604ba924d1c3fd34a231ba87a6">collectCxtInsenEdgeForVFCycle</a>(pta,svfg,svfgSCC,insensitveEdges);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div><div class="ttc" id="classSVF_1_1DDAPass_html_af03661604ba924d1c3fd34a231ba87a6"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af03661604ba924d1c3fd34a231ba87a6">SVF::DDAPass::collectCxtInsenEdgeForVFCycle</a></div><div class="ttdeci">void collectCxtInsenEdgeForVFCycle(PointerAnalysis *pta, const SVFG *svfg, const SVFGSCC *svfgSCC, SVFGEdgeSet &insensitveEdges)</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00198">DDAPass.cpp:198</a></div></div>
|
|
637
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_af8bc7f84e7dc8c7032eec6162a837ba6"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af8bc7f84e7dc8c7032eec6162a837ba6">SVF::DDAPass::collectCxtInsenEdgeForRecur</a></div><div class="ttdeci">void collectCxtInsenEdgeForRecur(PointerAnalysis *pta, const SVFG *svfg, SVFGEdgeSet &insensitveEdges)</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00175">DDAPass.cpp:175</a></div></div>
|
|
641
638
|
<div class="ttc" id="classSVF_1_1Options_html_a35cfe6add81dc82983e0c53c36c6e667"><div class="ttname"><a href="classSVF_1_1Options.html#a35cfe6add81dc82983e0c53c36c6e667">SVF::Options::InsenCycle</a></div><div class="ttdeci">static const llvm::cl::opt< bool > InsenCycle</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00099">Options.h:99</a></div></div>
|
|
642
639
|
<div class="ttc" id="classSVF_1_1Options_html_aa1a3b9293dffeef1bb16a2a7b3a007dd"><div class="ttname"><a href="classSVF_1_1Options.html#aa1a3b9293dffeef1bb16a2a7b3a007dd">SVF::Options::InsenRecur</a></div><div class="ttdeci">static const llvm::cl::opt< bool > InsenRecur</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00098">Options.h:98</a></div></div>
|
|
643
640
|
</div><!-- fragment -->
|
|
@@ -669,11 +666,11 @@ Private Attributes</h2></td></tr>
|
|
|
669
666
|
<p>Print queries' pts. </p>
|
|
670
667
|
<p>Print queries' pts </p>
|
|
671
668
|
|
|
672
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
673
|
-
<div class="fragment"><div class="line"><a name="
|
|
674
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_a240ffa3ed0963e579db60784f4a21b9f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">SVF::DDAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#
|
|
669
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00304">304</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
670
|
+
<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& candidates = <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-><a class="code" href="classSVF_1_1DDAClient.html#a6f50b9a26f66e716acf163cc77030e5f">getCandidateQueries</a>();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">for</span> (OrderedNodeSet::const_iterator it = candidates.begin(), eit = candidates.end(); it != eit; ++it)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(*it);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">dumpPts</a>(*it,pts);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> }</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class. </div></div>
|
|
671
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_a240ffa3ed0963e579db60784f4a21b9f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">SVF::DDAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00070">DDAPass.h:70</a></div></div>
|
|
675
672
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a1a6cee7e690ccb3e53cdc4c3e67b386d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">SVF::PointerAnalysis::dumpPts</a></div><div class="ttdeci">virtual void dumpPts(NodeID ptr, const PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00271">PointerAnalysis.cpp:271</a></div></div>
|
|
676
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#
|
|
673
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00071">DDAPass.h:71</a></div></div>
|
|
677
674
|
<div class="ttc" id="namespaceSVF_html_a3c2bd95727ec0d9c55c631b6617026c8"><div class="ttname"><a href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">SVF::OrderedNodeSet</a></div><div class="ttdeci">OrderedSet< NodeID > OrderedNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00121">SVFBasicTypes.h:121</a></div></div>
|
|
678
675
|
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
679
676
|
<div class="ttc" id="classSVF_1_1DDAClient_html_a6f50b9a26f66e716acf163cc77030e5f"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a6f50b9a26f66e716acf163cc77030e5f">SVF::DDAClient::getCandidateQueries</a></div><div class="ttdeci">const OrderedNodeSet & getCandidateQueries() const</div><div class="ttdoc">Get candidate queries. </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00048">DDAClient.h:48</a></div></div>
|
|
@@ -681,7 +678,7 @@ Private Attributes</h2></td></tr>
|
|
|
681
678
|
</div>
|
|
682
679
|
</div>
|
|
683
680
|
<a id="af196994d6ec7f5cead72212407842103"></a>
|
|
684
|
-
<h2 class="memtitle"><span class="permalink"><a href="#af196994d6ec7f5cead72212407842103">◆ </a></span>runOnModule()
|
|
681
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af196994d6ec7f5cead72212407842103">◆ </a></span>runOnModule()</h2>
|
|
685
682
|
|
|
686
683
|
<div class="memitem">
|
|
687
684
|
<div class="memproto">
|
|
@@ -711,46 +708,12 @@ Private Attributes</h2></td></tr>
|
|
|
711
708
|
<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="comment">//InitializeAliasAnalysis(this, getDataLayout(&module));</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classSVF_1_1DDAPass.html#aa33694e0b5f30c451c229e92877e4842">selectClient</a>(module);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">PointerAnalysis::FlowS_DDA</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  i < <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85adb3d4cbd8c38c1c498bc51198626a790">PointerAnalysis::Default_PTA</a>; i++)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a2203f622ab539b3a38488575c9eec33b">Options::DDASelected</a>.isSet(i))</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classSVF_1_1DDAPass.html#a13ff3107a0e4f8749b166fa9b8165167">runPointerAnalysis</a>(module, i);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div><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#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
712
709
|
<div class="ttc" id="classSVF_1_1Options_html_a2203f622ab539b3a38488575c9eec33b"><div class="ttname"><a href="classSVF_1_1Options.html#a2203f622ab539b3a38488575c9eec33b">SVF::Options::DDASelected</a></div><div class="ttdeci">static llvm::cl::bits< PointerAnalysis::PTATY > DDASelected</div><div class="ttdoc">register this into alias analysis group </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00103">Options.h:103</a></div></div>
|
|
713
710
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85adb3d4cbd8c38c1c498bc51198626a790"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85adb3d4cbd8c38c1c498bc51198626a790">SVF::PointerAnalysis::Default_PTA</a></div><div class="ttdoc">default pta without any analysis </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00089">PointerAnalysis.h:89</a></div></div>
|
|
714
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_aa33694e0b5f30c451c229e92877e4842"><div class="ttname"><a href="classSVF_1_1DDAPass.html#aa33694e0b5f30c451c229e92877e4842">SVF::DDAPass::selectClient</a></div><div class="ttdeci">virtual void selectClient(SVFModule *module)</div><div class="ttdoc">Select a client. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#
|
|
715
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_a13ff3107a0e4f8749b166fa9b8165167"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a13ff3107a0e4f8749b166fa9b8165167">SVF::DDAPass::runPointerAnalysis</a></div><div class="ttdeci">void runPointerAnalysis(SVFModule *module, u32_t kind)</div><div class="ttdoc">Create pointer analysis according to specified kind and analyze the module. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#
|
|
711
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_aa33694e0b5f30c451c229e92877e4842"><div class="ttname"><a href="classSVF_1_1DDAPass.html#aa33694e0b5f30c451c229e92877e4842">SVF::DDAPass::selectClient</a></div><div class="ttdeci">virtual void selectClient(SVFModule *module)</div><div class="ttdoc">Select a client. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00048">DDAPass.cpp:48</a></div></div>
|
|
712
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_a13ff3107a0e4f8749b166fa9b8165167"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a13ff3107a0e4f8749b166fa9b8165167">SVF::DDAPass::runPointerAnalysis</a></div><div class="ttdeci">void runPointerAnalysis(SVFModule *module, u32_t kind)</div><div class="ttdoc">Create pointer analysis according to specified kind and analyze the module. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00084">DDAPass.cpp:84</a></div></div>
|
|
716
713
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">SVF::PointerAnalysis::FlowS_DDA</a></div><div class="ttdoc">Flow sensitive DDA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00084">PointerAnalysis.h:84</a></div></div>
|
|
717
714
|
</div><!-- fragment -->
|
|
718
715
|
</div>
|
|
719
716
|
</div>
|
|
720
|
-
<a id="a7bc2c9a62b7d97b8e19bee0c4625aea3"></a>
|
|
721
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a7bc2c9a62b7d97b8e19bee0c4625aea3">◆ </a></span>runOnModule() <span class="overload">[2/2]</span></h2>
|
|
722
|
-
|
|
723
|
-
<div class="memitem">
|
|
724
|
-
<div class="memproto">
|
|
725
|
-
<table class="mlabels">
|
|
726
|
-
<tr>
|
|
727
|
-
<td class="mlabels-left">
|
|
728
|
-
<table class="memname">
|
|
729
|
-
<tr>
|
|
730
|
-
<td class="memname">bool DDAPass::runOnModule </td>
|
|
731
|
-
<td>(</td>
|
|
732
|
-
<td class="paramtype"><a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> & </td>
|
|
733
|
-
<td class="paramname"><em>module</em></td><td>)</td>
|
|
734
|
-
<td></td>
|
|
735
|
-
</tr>
|
|
736
|
-
</table>
|
|
737
|
-
</td>
|
|
738
|
-
<td class="mlabels-right">
|
|
739
|
-
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
740
|
-
</tr>
|
|
741
|
-
</table>
|
|
742
|
-
</div><div class="memdoc">
|
|
743
|
-
|
|
744
|
-
<p>We start from here. </p>
|
|
745
|
-
|
|
746
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00047">47</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
747
|
-
<div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#ae919327019b5014f64b754dbdeb07f75">buildSVFModule</a>(module);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">runOnModule</a>(svfModule);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div><div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ae919327019b5014f64b754dbdeb07f75"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae919327019b5014f64b754dbdeb07f75">SVF::LLVMModuleSet::buildSVFModule</a></div><div class="ttdeci">SVFModule * buildSVFModule(Module &mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00074">LLVMModule.cpp:74</a></div></div>
|
|
748
|
-
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
749
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_af196994d6ec7f5cead72212407842103"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">SVF::DDAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFModule *module)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00032">DDAPass.cpp:32</a></div></div>
|
|
750
|
-
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
|
|
751
|
-
</div><!-- fragment -->
|
|
752
|
-
</div>
|
|
753
|
-
</div>
|
|
754
717
|
<a id="a13ff3107a0e4f8749b166fa9b8165167"></a>
|
|
755
718
|
<h2 class="memtitle"><span class="permalink"><a href="#a13ff3107a0e4f8749b166fa9b8165167">◆ </a></span>runPointerAnalysis()</h2>
|
|
756
719
|
|
|
@@ -791,8 +754,8 @@ Private Attributes</h2></td></tr>
|
|
|
791
754
|
<p>compute points-to</p>
|
|
792
755
|
<p>finalize </p>
|
|
793
756
|
|
|
794
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
795
|
-
<div class="fragment"><div class="line"><a name="
|
|
757
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00084">84</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
758
|
+
<div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno"> 85</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="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</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="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1ContextCond.html#a084679a423e78217ca10794775c25b1d">ContextCond::setMaxPathLen</a>(<a class="code" href="classSVF_1_1Options.html#a32ef95b3bd06b50337b3129b74ffb45c">Options::MaxPathLen</a>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">ContextCond::setMaxCxtLen</a>(<a class="code" href="classSVF_1_1Options.html#a2e53156bd075d7802d390672f129c6a8">Options::MaxContextLen</a>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">switch</span> (kind)</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>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8">PointerAnalysis::Cxt_DDA</a>:</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ContextDDA.html">ContextDDA</a>(pag, <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">PointerAnalysis::FlowS_DDA</a>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowDDA.html">FlowDDA</a>(pag, <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"This pointer analysis has not been implemented yet.\n"</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">break</span>;</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>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a0865038c4738fcc8f47106faad03d98a">Options::WPANum</a>)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-><a class="code" href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028">collectWPANum</a>(module);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">initialize</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-><a class="code" href="classSVF_1_1DDAClient.html#a3b202f9a70b6e23c06a15556d23d245e">answerQueries</a>(<a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">finalize</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aee5e47ee3ca9bacb514f9dfbcb3abf24">Options::PrintCPts</a>)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad409cbf61271743394b9e5868f3fd197">dumpCPts</a>();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-><a class="code" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">performStat</a>(<a class="code" href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">_pta</a>);</div><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">if</span> (<a class="code" href="classSVF_1_1Options.html#aabfcfcd67df527cdf587aff5ecc26a10">Options::PrintQueryPts</a>)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f">printQueryPTS</a>();</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> }</div><div class="ttc" id="classSVF_1_1Options_html_a2e53156bd075d7802d390672f129c6a8"><div class="ttname"><a href="classSVF_1_1Options.html#a2e53156bd075d7802d390672f129c6a8">SVF::Options::MaxContextLen</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned > MaxContextLen</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00095">Options.h:95</a></div></div>
|
|
796
759
|
<div class="ttc" id="classSVF_1_1Options_html_a32ef95b3bd06b50337b3129b74ffb45c"><div class="ttname"><a href="classSVF_1_1Options.html#a32ef95b3bd06b50337b3129b74ffb45c">SVF::Options::MaxPathLen</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned > MaxPathLen</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00094">Options.h:94</a></div></div>
|
|
797
760
|
<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#l00050">SVFIRBuilder.cpp:50</a></div></div>
|
|
798
761
|
<div class="ttc" id="classSVF_1_1DDAClient_html_a76b4c50a1051ff7c0b162b55473de028"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028">SVF::DDAClient::collectWPANum</a></div><div class="ttdeci">virtual void collectWPANum(SVFModule *)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00080">DDAClient.h:80</a></div></div>
|
|
@@ -801,15 +764,15 @@ Private Attributes</h2></td></tr>
|
|
|
801
764
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4880571f57542afc50da506dfe273183"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">SVF::PointerAnalysis::printStat</a></div><div class="ttdeci">bool printStat()</div><div class="ttdoc">Whether print statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00362">PointerAnalysis.h:362</a></div></div>
|
|
802
765
|
<div class="ttc" id="classSVF_1_1DDAClient_html_aedd25e487775d37d4f6dcc8a5565c2a3"><div class="ttname"><a href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">SVF::DDAClient::performStat</a></div><div class="ttdeci">virtual void performStat(PointerAnalysis *)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00078">DDAClient.h:78</a></div></div>
|
|
803
766
|
<div class="ttc" id="classSVF_1_1Options_html_a0865038c4738fcc8f47106faad03d98a"><div class="ttname"><a href="classSVF_1_1Options.html#a0865038c4738fcc8f47106faad03d98a">SVF::Options::WPANum</a></div><div class="ttdeci">static const llvm::cl::opt< bool > WPANum</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00102">Options.h:102</a></div></div>
|
|
804
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_a240ffa3ed0963e579db60784f4a21b9f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">SVF::DDAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#
|
|
767
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_a240ffa3ed0963e579db60784f4a21b9f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f">SVF::DDAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00070">DDAPass.h:70</a></div></div>
|
|
805
768
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8">SVF::PointerAnalysis::Cxt_DDA</a></div><div class="ttdoc">context sensitive DDA </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00086">PointerAnalysis.h:86</a></div></div>
|
|
806
769
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a118dabc50024b5cd91095814ade47166"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">SVF::PointerAnalysis::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of a pointer analysis, including checking alias correctness. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00192">PointerAnalysis.cpp:192</a></div></div>
|
|
807
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#
|
|
770
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00071">DDAPass.h:71</a></div></div>
|
|
808
771
|
<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>
|
|
809
772
|
<div class="ttc" id="classSVF_1_1Options_html_aabfcfcd67df527cdf587aff5ecc26a10"><div class="ttname"><a href="classSVF_1_1Options.html#aabfcfcd67df527cdf587aff5ecc26a10">SVF::Options::PrintQueryPts</a></div><div class="ttdeci">static const llvm::cl::opt< bool > PrintQueryPts</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00101">Options.h:101</a></div></div>
|
|
810
773
|
<div class="ttc" id="classSVF_1_1Options_html_aee5e47ee3ca9bacb514f9dfbcb3abf24"><div class="ttname"><a href="classSVF_1_1Options.html#aee5e47ee3ca9bacb514f9dfbcb3abf24">SVF::Options::PrintCPts</a></div><div class="ttdeci">static const llvm::cl::opt< bool > PrintCPts</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00100">Options.h:100</a></div></div>
|
|
811
774
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad409cbf61271743394b9e5868f3fd197"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad409cbf61271743394b9e5868f3fd197">SVF::PointerAnalysis::dumpCPts</a></div><div class="ttdeci">virtual void dumpCPts()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00259">PointerAnalysis.h:259</a></div></div>
|
|
812
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_afc700bd3abb5d9199621741b9bd04f0f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f">SVF::DDAPass::printQueryPTS</a></div><div class="ttdeci">void printQueryPTS()</div><div class="ttdoc">Print queries&#39; pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#
|
|
775
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_afc700bd3abb5d9199621741b9bd04f0f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f">SVF::DDAPass::printQueryPTS</a></div><div class="ttdeci">void printQueryPTS()</div><div class="ttdoc">Print queries&#39; pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00304">DDAPass.cpp:304</a></div></div>
|
|
813
776
|
<div class="ttc" id="classSVF_1_1ContextCond_html_a084679a423e78217ca10794775c25b1d"><div class="ttname"><a href="classSVF_1_1ContextCond.html#a084679a423e78217ca10794775c25b1d">SVF::ContextCond::setMaxPathLen</a></div><div class="ttdeci">static void setMaxPathLen(u32_t max)</div><div class="ttdoc">set max path limit </div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00270">DPItem.h:270</a></div></div>
|
|
814
777
|
<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>
|
|
815
778
|
<div class="ttc" id="classSVF_1_1ContextDDA_html"><div class="ttname"><a href="classSVF_1_1ContextDDA.html">SVF::ContextDDA</a></div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00025">ContextDDA.h:25</a></div></div>
|
|
@@ -849,11 +812,11 @@ Private Attributes</h2></td></tr>
|
|
|
849
812
|
<p>solve function pointer</p>
|
|
850
813
|
<p>allow user specify queries </p>
|
|
851
814
|
|
|
852
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#
|
|
853
|
-
<div class="fragment"><div class="line"><a name="
|
|
815
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00048">48</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
|
|
816
|
+
<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a>.empty())</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a> == <span class="stringliteral">"funptr"</span>)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FunptrDDAClient.html">FunptrDDAClient</a>(module);</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a> == <span class="stringliteral">"alias"</span>)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AliasDDAClient.html">AliasDDAClient</a>(module);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">else</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_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>(module);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a> != <span class="stringliteral">"all"</span>)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> buf; <span class="comment">// Have a buffer</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  stringstream ss(<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a>); <span class="comment">// Insert the user input string into a stream</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">while</span> (ss >> buf)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-><a class="code" href="classSVF_1_1DDAClient.html#a3d0f732e284f3237287b375582c0aa88">setQuery</a>(buf);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</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>  }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Please specify query options!"</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> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-><a class="code" href="classSVF_1_1DDAClient.html#a40f6d8769db41f4c907fe5b615e5df83">initialise</a>(module);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> }</div><div class="ttc" id="classSVF_1_1FunptrDDAClient_html"><div class="ttname"><a href="classSVF_1_1FunptrDDAClient.html">SVF::FunptrDDAClient</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00102">DDAClient.h:102</a></div></div>
|
|
854
817
|
<div class="ttc" id="classSVF_1_1DDAClient_html_a40f6d8769db41f4c907fe5b615e5df83"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a40f6d8769db41f4c907fe5b615e5df83">SVF::DDAClient::initialise</a></div><div class="ttdeci">virtual void initialise(SVFModule *)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00032">DDAClient.h:32</a></div></div>
|
|
855
818
|
<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#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
856
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#
|
|
819
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00071">DDAPass.h:71</a></div></div>
|
|
857
820
|
<div class="ttc" id="classSVF_1_1Options_html_a3c3d704c209c4e6eed1a771caf8214ce"><div class="ttname"><a href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">SVF::Options::UserInputQuery</a></div><div class="ttdeci">static const llvm::cl::opt< std ::string > UserInputQuery</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00097">Options.h:97</a></div></div>
|
|
858
821
|
<div class="ttc" id="classSVF_1_1AliasDDAClient_html"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html">SVF::AliasDDAClient</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00121">DDAClient.h:121</a></div></div>
|
|
859
822
|
<div class="ttc" id="classSVF_1_1DDAClient_html"><div class="ttname"><a href="classSVF_1_1DDAClient.html">SVF::DDAClient</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00025">DDAClient.h:25</a></div></div>
|
|
@@ -884,7 +847,7 @@ Private Attributes</h2></td></tr>
|
|
|
884
847
|
|
|
885
848
|
<p>DDA client used. </p>
|
|
886
849
|
|
|
887
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8h_source.html#
|
|
850
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8h_source.html#l00071">71</a> of file <a class="el" href="DDAPass_8h_source.html">DDAPass.h</a>.</p>
|
|
888
851
|
|
|
889
852
|
</div>
|
|
890
853
|
</div>
|
|
@@ -910,7 +873,7 @@ Private Attributes</h2></td></tr>
|
|
|
910
873
|
|
|
911
874
|
<p>pointer analysis to be executed. </p>
|
|
912
875
|
|
|
913
|
-
<p class="definition">Definition at line <a class="el" href="DDAPass_8h_source.html#
|
|
876
|
+
<p class="definition">Definition at line <a class="el" href="DDAPass_8h_source.html#l00070">70</a> of file <a class="el" href="DDAPass_8h_source.html">DDAPass.h</a>.</p>
|
|
914
877
|
|
|
915
878
|
</div>
|
|
916
879
|
</div>
|