svf-tools 1.0.340 → 1.0.344
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 +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +15 -15
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h.html +7 -7
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +69 -69
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +64 -61
- package/SVF-doxygen/html/html/ICFG_8h_source.html +46 -46
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +18 -18
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +12 -12
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -17
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +17 -17
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +32 -32
- package/SVF-doxygen/html/html/SVFG_8h_source.html +27 -27
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +32 -32
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +14 -14
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +16 -15
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +30 -28
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +44 -42
- package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +20 -20
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/VFG_8h_source.html +19 -19
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/annotated.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +158 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +852 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallMU-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +60 -60
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +52 -52
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +150 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +618 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +149 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +624 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +413 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +224 -217
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +74 -71
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +399 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +146 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +494 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +61 -61
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1MHP-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +198 -198
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +70 -47
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +17 -15
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +141 -106
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +118 -118
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +109 -109
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +153 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +696 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +160 -160
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +76 -76
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +133 -133
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +62 -62
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +220 -220
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +42 -42
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +96 -96
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/html/classes.html +16 -16
- package/SVF-doxygen/html/html/functions_a.html +59 -59
- package/SVF-doxygen/html/html/functions_c.html +74 -71
- package/SVF-doxygen/html/html/functions_eval_c.html +5 -2
- package/SVF-doxygen/html/html/functions_f.html +14 -14
- package/SVF-doxygen/html/html/functions_func.html +56 -56
- package/SVF-doxygen/html/html/functions_func_c.html +28 -28
- package/SVF-doxygen/html/html/functions_func_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func_g.html +88 -88
- package/SVF-doxygen/html/html/functions_func_h.html +17 -17
- package/SVF-doxygen/html/html/functions_func_i.html +31 -29
- package/SVF-doxygen/html/html/functions_func_m.html +1 -1
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_r.html +6 -6
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_func_t.html +7 -7
- package/SVF-doxygen/html/html/functions_func_u.html +3 -3
- package/SVF-doxygen/html/html/functions_g.html +88 -88
- package/SVF-doxygen/html/html/functions_h.html +16 -16
- package/SVF-doxygen/html/html/functions_i.html +37 -35
- package/SVF-doxygen/html/html/functions_m.html +2 -2
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +10 -10
- package/SVF-doxygen/html/html/functions_p.html +21 -30
- package/SVF-doxygen/html/html/functions_r.html +6 -6
- package/SVF-doxygen/html/html/functions_s.html +15 -14
- package/SVF-doxygen/html/html/functions_t.html +13 -15
- package/SVF-doxygen/html/html/functions_type.html +1 -1
- package/SVF-doxygen/html/html/functions_type_c.html +24 -24
- package/SVF-doxygen/html/html/functions_type_f.html +3 -3
- package/SVF-doxygen/html/html/functions_type_i.html +2 -2
- package/SVF-doxygen/html/html/functions_type_p.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_type_v.html +2 -2
- package/SVF-doxygen/html/html/functions_u.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_a.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_c.html +11 -11
- package/SVF-doxygen/html/html/functions_vars_f.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/hierarchy.html +7 -7
- package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
- package/SVF-doxygen/html/html/search/all_1.js +58 -58
- package/SVF-doxygen/html/html/search/all_10.js +13 -14
- package/SVF-doxygen/html/html/search/all_12.js +5 -5
- package/SVF-doxygen/html/html/search/all_13.js +9 -8
- package/SVF-doxygen/html/html/search/all_14.js +6 -6
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +37 -35
- package/SVF-doxygen/html/html/search/all_6.js +12 -12
- package/SVF-doxygen/html/html/search/all_7.js +62 -61
- package/SVF-doxygen/html/html/search/all_8.js +17 -17
- package/SVF-doxygen/html/html/search/all_9.js +19 -19
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/classes_2.js +1 -1
- package/SVF-doxygen/html/html/search/classes_5.js +2 -2
- package/SVF-doxygen/html/html/search/classes_6.js +1 -1
- package/SVF-doxygen/html/html/search/classes_8.js +2 -2
- package/SVF-doxygen/html/html/search/classes_e.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_2.js +2 -1
- package/SVF-doxygen/html/html/search/functions_0.js +55 -55
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_11.js +4 -4
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_2.js +10 -10
- package/SVF-doxygen/html/html/search/functions_5.js +4 -4
- package/SVF-doxygen/html/html/search/functions_6.js +61 -61
- package/SVF-doxygen/html/html/search/functions_7.js +17 -17
- package/SVF-doxygen/html/html/search/functions_8.js +16 -16
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +2 -2
- package/SVF-doxygen/html/html/search/functions_f.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_0.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +21 -21
- package/SVF-doxygen/html/html/search/typedefs_5.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1.js +2 -2
- package/SVF-doxygen/html/html/search/variables_10.js +0 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +4 -4
- package/SVF-doxygen/html/html/search/variables_6.js +5 -5
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- 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 +23 -23
- 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/ContextDDA.h +3 -3
- package/include/DDA/DDAClient.h +2 -2
- package/include/DDA/DDAVFSolver.h +2 -2
- package/include/DDA/FlowDDA.h +2 -2
- package/include/Graphs/ICFG.h +32 -32
- package/include/Graphs/ICFGNode.h +33 -33
- package/include/Graphs/ICFGStat.h +11 -11
- package/include/Graphs/PTACallGraph.h +19 -19
- package/include/Graphs/SVFG.h +16 -16
- package/include/Graphs/SVFGNode.h +14 -14
- package/include/Graphs/SVFGOPT.h +1 -1
- package/include/Graphs/ThreadCallGraph.h +25 -25
- package/include/Graphs/VFG.h +10 -10
- package/include/Graphs/VFGNode.h +8 -8
- package/include/MSSA/MSSAMuChi.h +6 -6
- package/include/MSSA/MemRegion.h +24 -24
- package/include/MSSA/MemSSA.h +10 -10
- package/include/MTA/LockResultValidator.h +2 -2
- package/include/MTA/MHP.h +4 -4
- package/include/MTA/PCG.h +1 -1
- package/include/MTA/TCT.h +2 -2
- package/include/MemoryModel/PointerAnalysis.h +12 -12
- package/include/MemoryModel/SVFIR.h +22 -22
- package/include/MemoryModel/SVFStatements.h +11 -11
- package/include/MemoryModel/SymbolTableInfo.h +15 -9
- package/include/SABER/LeakChecker.h +4 -4
- package/include/SABER/ProgSlice.h +2 -2
- package/include/SABER/SaberCheckerAPI.h +4 -4
- package/include/SABER/SaberSVFGBuilder.h +1 -1
- package/include/SABER/SrcSnkDDA.h +1 -1
- package/include/SVF-FE/ICFGBuilder.h +4 -4
- package/include/SVF-FE/SVFIRBuilder.h +5 -5
- package/include/Util/Options.h +1 -1
- package/lib/DDA/ContextDDA.cpp +3 -3
- package/lib/DDA/DDAClient.cpp +1 -1
- package/lib/DDA/FlowDDA.cpp +1 -1
- package/lib/Graphs/ICFG.cpp +88 -71
- package/lib/Graphs/PTACallGraph.cpp +5 -5
- package/lib/Graphs/SVFG.cpp +7 -7
- package/lib/Graphs/ThreadCallGraph.cpp +6 -6
- package/lib/Graphs/VFG.cpp +6 -6
- package/lib/MSSA/MemRegion.cpp +17 -17
- package/lib/MSSA/MemSSA.cpp +3 -3
- package/lib/MTA/LockAnalysis.cpp +4 -4
- package/lib/MTA/MHP.cpp +5 -5
- package/lib/MTA/MTAResultValidator.cpp +1 -1
- package/lib/MTA/PCG.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +10 -10
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
- package/lib/MemoryModel/SVFIR.cpp +5 -5
- package/lib/MemoryModel/SVFStatements.cpp +53 -49
- package/lib/MemoryModel/SVFVariables.cpp +10 -10
- package/lib/MemoryModel/SymbolTableInfo.cpp +12 -7
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/FileChecker.cpp +2 -2
- package/lib/SABER/LeakChecker.cpp +8 -8
- package/lib/SABER/ProgSlice.cpp +2 -2
- package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
- package/lib/SVF-FE/Graph2Json.cpp +5 -5
- package/lib/SVF-FE/ICFGBuilder.cpp +31 -25
- package/lib/SVF-FE/SVFIRBuilder.cpp +8 -8
- package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
- package/lib/Util/Options.cpp +3 -3
- package/lib/Util/PTAStat.cpp +3 -3
- package/lib/Util/SVFUtil.cpp +2 -0
- package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
- package/lib/WPA/Andersen.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +2 -2
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
- package/lib/WPA/WPAPass.cpp +4 -4
- package/package.json +1 -1
|
@@ -66,12 +66,11 @@ $(function() {
|
|
|
66
66
|
<div class="title">ContextDDA.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="ContextDDA_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * ContextDDA.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Created on: Aug 17, 2014</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef ContextDDA_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#define ContextDDA_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="PointerAnalysisImpl_8h.html">MemoryModel/PointerAnalysisImpl.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="DDAVFSolver_8h.html">DDA/DDAVFSolver.h</a>"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="DPItem_8h.html">Util/DPItem.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="DataFlowUtil_8h.html">SVF-FE/DataFlowUtil.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="namespaceSVF.html"> 16</a></span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FlowDDA.html">FlowDDA</a>;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aa612d67dfa9b0c2999eeef980ca6c893"> 20</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtStmtDPItem<SVFGNode></a> <a class="code" href="namespaceSVF.html#aa612d67dfa9b0c2999eeef980ca6c893">CxtLocDPItem</a>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html"> 26</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1ContextDDA.html">ContextDDA</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1CondPTAImpl.html">CondPTAImpl</a><ContextCond>, <span class="keyword">public</span> <a class="code" href="classSVF_1_1DDAVFSolver.html">DDAVFSolver</a><CxtVar,CxtPtSet,CxtLocDPItem></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classSVF_1_1ContextDDA.html#ac73213825d188fb4d1105ddc472fde05">ContextDDA</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>, <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>* client);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1ContextDDA.html#a691e26b2d370efe2aee77212f982a1ed">~ContextDDA</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#adb9f21a86daeb2dd79537f3939c393cf">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ae34cd06ee3b7d763c81ec418af76d244"> 40</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#ae34cd06ee3b7d763c81ec418af76d244">finalize</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">CondPTAImpl<ContextCond>::finalize</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ac8fe1cb3af6048a28028f00bb87a5eba"> 46</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#ac8fe1cb3af6048a28028f00bb87a5eba">analyze</a>()<span class="keyword"> override </span>{}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5">computeDDAPts</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>& <a class="code" href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5">computeDDAPts</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& cxtVar);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a1b9bfe46777c8a57781452a05635fb02">handleOutOfBudgetDpm</a>(<span class="keyword">const</span> CxtLocDPItem& dpm);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a32ce0085cb99f92f63b54df0f2ea2523"> 58</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a> <a class="code" href="classSVF_1_1ContextDDA.html#a32ce0085cb99f92f63b54df0f2ea2523">getConservativeCPts</a>(<span class="keyword">const</span> CxtLocDPItem& dpm)<span class="keyword"> override</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">getAndersenAnalysis</a>()-><a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(dpm.<a class="code" href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">getCurNodeID</a>());</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a> tmpCPts;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = pts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(); piter != pts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>(); ++piter)</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_1CondVar.html">CxtVar</a> var(cxt,*piter);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  tmpCPts.<a class="code" href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">set</a>(var);</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>  <span class="keywordflow">return</span> tmpCPts;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a6ae16be6774994932aaa594c9b9cb397"> 72</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1ContextDDA.html#a6ae16be6774994932aaa594c9b9cb397">getPtrNodeID</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& var)<span class="keyword"> const override</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> var.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#aa8a7b6e99b92abfa5c2404515b703a2d">handleBKCondition</a>(CxtLocDPItem& dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge) <span class="keyword">override</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a02902af9bc4455b994a5da4a9d6cf121">isHeapCondMemObj</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store) <span class="keyword">override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#aa440bf9abda3f353bf91e5e64462b818">testIndCallReachability</a>(CxtLocDPItem& dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> <a class="code" href="classSVF_1_1ContextDDA.html#a2ce589a1d63a5126e178fc47527e0f92">getCSIDAtCall</a>(CxtLocDPItem& dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> <a class="code" href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202">getCSIDAtRet</a>(CxtLocDPItem& dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151"> 95</a></span>  <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151">popRecursiveCallSites</a>(CxtLocDPItem& dpm)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>& cxtCond = dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  cxtCond.<a class="code" href="classSVF_1_1ContextCond.html#ac80892cbef7a5d2c949e5f07682bc885">setNonConcreteCxt</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="namespaceSVF.html#a542c6d5483bfc74fa58b45ad06b65960">CallStrCxt</a>& cxt = cxtCond.<a class="code" href="classSVF_1_1ContextCond.html#a73d4d6ed38898b912926d044268fd35b">getContexts</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">while</span>(!cxt.empty() && <a class="code" href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">isEdgeInRecursion</a>(cxt.back()))</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  cxt.pop_back();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423"> 106</a></span>  <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">isEdgeInRecursion</a>(<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* caller = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a42035e9669204ddd5d38583db21af3d7">getCallerOfCallSite</a>(csId);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aacd5f35171717cb4d758c17bef828a0f">getCalleeOfCallSite</a>(csId);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ae58c2b25494ec51e714c83c6cfd5dd67">inSameCallGraphSCC</a>(caller, callee);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a4b8466d2e8e885fea2f41b5713f785bd"> 114</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a4b8466d2e8e885fea2f41b5713f785bd">updateCallGraphAndSVFG</a>(<span class="keyword">const</span> CxtLocDPItem& dpm,<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs,<a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a>& svfgEdges)<span class="keyword"> override</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#aa9661d26d1ae9c829a9296d1b6d874f4">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a40738643202ca6301671f51da3fc1137">resolveIndCalls</a>(cs, <a class="code" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">getBVPointsTo</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">getCachedPointsTo</a>(dpm)), newEdges);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">for</span> (CallEdgeMap::const_iterator iter = newEdges.begin(),eiter = newEdges.end(); iter != eiter; iter++)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* newcs = iter->first;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a> & functions = iter->second;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">for</span> (FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func = *func_iter;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#a0cebc2ba5ae81a6d45b224a4f94fc8b4">connectCallerAndCallee</a>(newcs, func, svfgEdges);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ad54f523bf5f2504c1924b4f94c5abbba"> 132</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#ad54f523bf5f2504c1924b4f94c5abbba">edgeInCallGraphSCC</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</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>()->getFun();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</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>()->getFun();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span>(srcfun && dstfun)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ae58c2b25494ec51e714c83c6cfd5dd67">inSameCallGraphSCC</a>(srcfun,dstfun);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(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="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a> <a class="code" href="classSVF_1_1ContextDDA.html#aefd2b50015aa98fa88a508e3ed1d402a">processGepPts</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>* gep, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>& srcPts) <span class="keyword">override</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a26031c81d3eba5b3ff3ebd51d89510ae"> 149</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a26031c81d3eba5b3ff3ebd51d89510ae">handleAddr</a>(<a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>& pts,<span class="keyword">const</span> CxtLocDPItem& dpm,<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrVFGNode.html">AddrSVFGNode</a>* addr)<span class="keyword"> override</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcID = addr-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(srcID))</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  srcID = <a class="code" href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">getFIObjVar</a>(srcID);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>(),srcID);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a5a8632a957fce63f186dd8b657566dd2">addDDAPts</a>(pts,var);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"\t add points-to target "</span> << var << <span class="stringliteral">" to dpm "</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#abc67c264dd262d25899e04f8d68e8a31">dump</a>());</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a45d7a381fec0692b4d2f7d0eec47ccf1"> 163</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a45d7a381fec0692b4d2f7d0eec47ccf1">propagateViaObj</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& storeObj, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& loadObj)<span class="keyword"> override</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a7a1be735c76ba4a6b235264fe8ec6c28">isSameVar</a>(storeObj,loadObj);</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> </div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a57d309971de00db9bd8c6bfaf237cbff">isCondCompatible</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>& cxt1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>& cxt2, <span class="keywordtype">bool</span> singleton) <span class="keyword">const override</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a76487b8b3e3abb8a16b5c4f5c7e79819"> 174</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a76487b8b3e3abb8a16b5c4f5c7e79819">isInsensitiveCallRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9">insensitveEdges</a>.find(edge) != <a class="code" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9">insensitveEdges</a>.end();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a0d407903c4b0d976da30538ff0c5fc41"> 179</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aef98e8e9144a69bb7481fef5d2dcb303">ConstSVFGEdgeSet</a>& <a class="code" href="classSVF_1_1ContextDDA.html#a0d407903c4b0d976da30538ff0c5fc41">getInsensitiveEdgeSet</a>()</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9">insensitveEdges</a>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c"> 184</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>& cxts)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << cxts.<a class="code" href="classSVF_1_1ContextCond.html#a5f73451064b22bc1aab91b22ddea1eee">toString</a>() << <span class="stringliteral">"\n"</span>;</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> </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#afb0ab7fc43e6f0331072419e39ae0606"> 189</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1ContextDDA.html#afb0ab7fc43e6f0331072419e39ae0606">PTAName</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> <span class="stringliteral">"Context Sensitive DDA"</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="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9"> 195</a></span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aef98e8e9144a69bb7481fef5d2dcb303">ConstSVFGEdgeSet</a> <a class="code" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9">insensitveEdges</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551"> 196</a></span>  <a class="code" href="classSVF_1_1FlowDDA.html">FlowDDA</a>* <a class="code" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">flowDDA</a>; </div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ae3b04859ed69c47302177988aa68a70b"> 197</a></span>  <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>* <a class="code" href="classSVF_1_1ContextDDA.html#ae3b04859ed69c47302177988aa68a70b">_client</a>; </div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#afb57381096ffc49b2065de6d9bf00895"> 198</a></span>  <a class="code" href="classSVF_1_1PTACFInfoBuilder.html">PTACFInfoBuilder</a> <a class="code" href="classSVF_1_1ContextDDA.html#afb57381096ffc49b2065de6d9bf00895">loopInfoBuilder</a>; </div><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> } <span class="comment">// End namespace SVF</span></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="preprocessor">#endif </span><span class="comment">/* ContextDDA_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00235">VFGNode.h:235</a></div></div>
|
|
69
|
+
<a href="ContextDDA_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * ContextDDA.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Created on: Aug 17, 2014</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef ContextDDA_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#define ContextDDA_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="PointerAnalysisImpl_8h.html">MemoryModel/PointerAnalysisImpl.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="DDAVFSolver_8h.html">DDA/DDAVFSolver.h</a>"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="DPItem_8h.html">Util/DPItem.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="DataFlowUtil_8h.html">SVF-FE/DataFlowUtil.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="namespaceSVF.html"> 16</a></span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FlowDDA.html">FlowDDA</a>;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aa612d67dfa9b0c2999eeef980ca6c893"> 20</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtStmtDPItem<SVFGNode></a> <a class="code" href="namespaceSVF.html#aa612d67dfa9b0c2999eeef980ca6c893">CxtLocDPItem</a>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html"> 26</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1ContextDDA.html">ContextDDA</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1CondPTAImpl.html">CondPTAImpl</a><ContextCond>, <span class="keyword">public</span> <a class="code" href="classSVF_1_1DDAVFSolver.html">DDAVFSolver</a><CxtVar,CxtPtSet,CxtLocDPItem></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classSVF_1_1ContextDDA.html#ac73213825d188fb4d1105ddc472fde05">ContextDDA</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>, <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>* client);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1ContextDDA.html#a691e26b2d370efe2aee77212f982a1ed">~ContextDDA</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#adb9f21a86daeb2dd79537f3939c393cf">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ae34cd06ee3b7d763c81ec418af76d244"> 40</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#ae34cd06ee3b7d763c81ec418af76d244">finalize</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">CondPTAImpl<ContextCond>::finalize</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ac8fe1cb3af6048a28028f00bb87a5eba"> 46</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#ac8fe1cb3af6048a28028f00bb87a5eba">analyze</a>()<span class="keyword"> override </span>{}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5">computeDDAPts</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>& <a class="code" href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5">computeDDAPts</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& cxtVar);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a1b9bfe46777c8a57781452a05635fb02">handleOutOfBudgetDpm</a>(<span class="keyword">const</span> CxtLocDPItem& dpm);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a32ce0085cb99f92f63b54df0f2ea2523"> 58</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a> <a class="code" href="classSVF_1_1ContextDDA.html#a32ce0085cb99f92f63b54df0f2ea2523">getConservativeCPts</a>(<span class="keyword">const</span> CxtLocDPItem& dpm)<span class="keyword"> override</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">getAndersenAnalysis</a>()-><a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(dpm.<a class="code" href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">getCurNodeID</a>());</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a> tmpCPts;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = pts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(); piter != pts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>(); ++piter)</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_1CondVar.html">CxtVar</a> var(cxt,*piter);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  tmpCPts.<a class="code" href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">set</a>(var);</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>  <span class="keywordflow">return</span> tmpCPts;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a6ae16be6774994932aaa594c9b9cb397"> 72</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1ContextDDA.html#a6ae16be6774994932aaa594c9b9cb397">getPtrNodeID</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& var)<span class="keyword"> const override</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> var.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#aa8a7b6e99b92abfa5c2404515b703a2d">handleBKCondition</a>(CxtLocDPItem& dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge) <span class="keyword">override</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a02902af9bc4455b994a5da4a9d6cf121">isHeapCondMemObj</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store) <span class="keyword">override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a05ac33ca33efb58099839f72050bb008">testIndCallReachability</a>(CxtLocDPItem& dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> <a class="code" href="classSVF_1_1ContextDDA.html#a2ce589a1d63a5126e178fc47527e0f92">getCSIDAtCall</a>(CxtLocDPItem& dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> <a class="code" href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202">getCSIDAtRet</a>(CxtLocDPItem& dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151"> 95</a></span>  <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151">popRecursiveCallSites</a>(CxtLocDPItem& dpm)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>& cxtCond = dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  cxtCond.<a class="code" href="classSVF_1_1ContextCond.html#ac80892cbef7a5d2c949e5f07682bc885">setNonConcreteCxt</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="namespaceSVF.html#a542c6d5483bfc74fa58b45ad06b65960">CallStrCxt</a>& cxt = cxtCond.<a class="code" href="classSVF_1_1ContextCond.html#a73d4d6ed38898b912926d044268fd35b">getContexts</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">while</span>(!cxt.empty() && <a class="code" href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">isEdgeInRecursion</a>(cxt.back()))</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  cxt.pop_back();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423"> 106</a></span>  <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">isEdgeInRecursion</a>(<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* caller = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a42035e9669204ddd5d38583db21af3d7">getCallerOfCallSite</a>(csId);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aacd5f35171717cb4d758c17bef828a0f">getCalleeOfCallSite</a>(csId);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ae58c2b25494ec51e714c83c6cfd5dd67">inSameCallGraphSCC</a>(caller, callee);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a6fb1be7eef65008c7fbab6bdfe186061"> 114</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a6fb1be7eef65008c7fbab6bdfe186061">updateCallGraphAndSVFG</a>(<span class="keyword">const</span> CxtLocDPItem& dpm,<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,<a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a>& svfgEdges)<span class="keyword"> override</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#aa0a14fd11d7e69b2a3f91a3862f172cd">resolveIndCalls</a>(cs, <a class="code" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">getBVPointsTo</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">getCachedPointsTo</a>(dpm)), newEdges);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">for</span> (CallEdgeMap::const_iterator iter = newEdges.begin(),eiter = newEdges.end(); iter != eiter; iter++)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* newcs = iter->first;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a> & functions = iter->second;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">for</span> (FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func = *func_iter;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">connectCallerAndCallee</a>(newcs, func, svfgEdges);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ad54f523bf5f2504c1924b4f94c5abbba"> 132</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#ad54f523bf5f2504c1924b4f94c5abbba">edgeInCallGraphSCC</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</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>()->getFun();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</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>()->getFun();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span>(srcfun && dstfun)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ae58c2b25494ec51e714c83c6cfd5dd67">inSameCallGraphSCC</a>(srcfun,dstfun);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(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="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a> <a class="code" href="classSVF_1_1ContextDDA.html#aefd2b50015aa98fa88a508e3ed1d402a">processGepPts</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>* gep, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>& srcPts) <span class="keyword">override</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a26031c81d3eba5b3ff3ebd51d89510ae"> 149</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a26031c81d3eba5b3ff3ebd51d89510ae">handleAddr</a>(<a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>& pts,<span class="keyword">const</span> CxtLocDPItem& dpm,<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrVFGNode.html">AddrSVFGNode</a>* addr)<span class="keyword"> override</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcID = addr-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(srcID))</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  srcID = <a class="code" href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">getFIObjVar</a>(srcID);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>(),srcID);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a5a8632a957fce63f186dd8b657566dd2">addDDAPts</a>(pts,var);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"\t add points-to target "</span> << var << <span class="stringliteral">" to dpm "</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#abc67c264dd262d25899e04f8d68e8a31">dump</a>());</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a45d7a381fec0692b4d2f7d0eec47ccf1"> 163</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a45d7a381fec0692b4d2f7d0eec47ccf1">propagateViaObj</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& storeObj, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>& loadObj)<span class="keyword"> override</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a7a1be735c76ba4a6b235264fe8ec6c28">isSameVar</a>(storeObj,loadObj);</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> </div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a57d309971de00db9bd8c6bfaf237cbff">isCondCompatible</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>& cxt1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>& cxt2, <span class="keywordtype">bool</span> singleton) <span class="keyword">const override</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a76487b8b3e3abb8a16b5c4f5c7e79819"> 174</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a76487b8b3e3abb8a16b5c4f5c7e79819">isInsensitiveCallRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9">insensitveEdges</a>.find(edge) != <a class="code" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9">insensitveEdges</a>.end();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a0d407903c4b0d976da30538ff0c5fc41"> 179</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aef98e8e9144a69bb7481fef5d2dcb303">ConstSVFGEdgeSet</a>& <a class="code" href="classSVF_1_1ContextDDA.html#a0d407903c4b0d976da30538ff0c5fc41">getInsensitiveEdgeSet</a>()</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9">insensitveEdges</a>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c"> 184</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>& cxts)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << cxts.<a class="code" href="classSVF_1_1ContextCond.html#a5f73451064b22bc1aab91b22ddea1eee">toString</a>() << <span class="stringliteral">"\n"</span>;</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> </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#afb0ab7fc43e6f0331072419e39ae0606"> 189</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1ContextDDA.html#afb0ab7fc43e6f0331072419e39ae0606">PTAName</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> <span class="stringliteral">"Context Sensitive DDA"</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="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9"> 195</a></span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aef98e8e9144a69bb7481fef5d2dcb303">ConstSVFGEdgeSet</a> <a class="code" href="classSVF_1_1ContextDDA.html#a942e79dced48bd284a58540a2fb778b9">insensitveEdges</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551"> 196</a></span>  <a class="code" href="classSVF_1_1FlowDDA.html">FlowDDA</a>* <a class="code" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">flowDDA</a>; </div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ae3b04859ed69c47302177988aa68a70b"> 197</a></span>  <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>* <a class="code" href="classSVF_1_1ContextDDA.html#ae3b04859ed69c47302177988aa68a70b">_client</a>; </div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#afb57381096ffc49b2065de6d9bf00895"> 198</a></span>  <a class="code" href="classSVF_1_1PTACFInfoBuilder.html">PTACFInfoBuilder</a> <a class="code" href="classSVF_1_1ContextDDA.html#afb57381096ffc49b2065de6d9bf00895">loopInfoBuilder</a>; </div><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> } <span class="comment">// End namespace SVF</span></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="preprocessor">#endif </span><span class="comment">/* ContextDDA_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00235">VFGNode.h:235</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00216">Andersen.h:216</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1CondVar_html_a5d64fa2be89051cd03301e3b07bffd6a"><div class="ttname"><a href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">SVF::CondVar::get_id</a></div><div class="ttdeci">NodeID get_id() const</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00104">ConditionalPT.h:104</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1AddrVFGNode_html"><div class="ttname"><a href="classSVF_1_1AddrVFGNode.html">SVF::AddrVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00747">VFGNode.h:747</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a691e26b2d370efe2aee77212f982a1ed"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a691e26b2d370efe2aee77212f982a1ed">SVF::ContextDDA::~ContextDDA</a></div><div class="ttdeci">virtual ~ContextDDA()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00030">ContextDDA.cpp:30</a></div></div>
|
|
74
|
-
<div class="ttc" id="classSVF_1_1ContextDDA_html_aa440bf9abda3f353bf91e5e64462b818"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#aa440bf9abda3f353bf91e5e64462b818">SVF::ContextDDA::testIndCallReachability</a></div><div class="ttdeci">bool testIndCallReachability(CxtLocDPItem &dpm, const SVFFunction *callee, const CallBlockNode *cs)</div><div class="ttdoc">refine indirect call edge </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00167">ContextDDA.cpp:167</a></div></div>
|
|
75
74
|
<div class="ttc" id="classSVF_1_1CxtStmtDPItem_html_abc67c264dd262d25899e04f8d68e8a31"><div class="ttname"><a href="classSVF_1_1CxtStmtDPItem.html#abc67c264dd262d25899e04f8d68e8a31">SVF::CxtStmtDPItem::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00442">DPItem.h:442</a></div></div>
|
|
76
75
|
<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#l00018">MTAResultValidator.h:18</a></div></div>
|
|
77
76
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a6ae16be6774994932aaa594c9b9cb397"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a6ae16be6774994932aaa594c9b9cb397">SVF::ContextDDA::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CxtVar &var) const override</div><div class="ttdoc">Override parent method. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00072">ContextDDA.h:72</a></div></div>
|
|
@@ -86,8 +85,8 @@ $(function() {
|
|
|
86
85
|
<div class="ttc" id="classSVF_1_1GepVFGNode_html"><div class="ttname"><a href="classSVF_1_1GepVFGNode.html">SVF::GepVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00585">VFGNode.h:585</a></div></div>
|
|
87
86
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a2a23f0235fc49a177b2694f668b02551"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">SVF::ContextDDA::flowDDA</a></div><div class="ttdeci">FlowDDA * flowDDA</div><div class="ttdoc">downgrade to flowDDA if out-of-budget </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00196">ContextDDA.h:196</a></div></div>
|
|
88
87
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a2754d0fd4b168786c990bbf36538b151"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151">SVF::ContextDDA::popRecursiveCallSites</a></div><div class="ttdeci">virtual void popRecursiveCallSites(CxtLocDPItem &dpm)</div><div class="ttdoc">Pop recursive callsites. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00095">ContextDDA.h:95</a></div></div>
|
|
89
|
-
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_aa9661d26d1ae9c829a9296d1b6d874f4"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aa9661d26d1ae9c829a9296d1b6d874f4">SVF::PointerAnalysis::CallEdgeMap</a></div><div class="ttdeci">OrderedMap< const CallBlockNode *, FunctionSet > CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00111">PointerAnalysis.h:111</a></div></div>
|
|
90
88
|
<div class="ttc" id="classSVF_1_1CondPTAImpl_html_a94f3e4d073b8c5bab3c46058ddba3f43"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">SVF::CondPTAImpl< ContextCond >::getBVPointsTo</a></div><div class="ttdeci">virtual PointsTo getBVPointsTo(const CPtSet &cpts) const</div><div class="ttdoc">Given a conditional pts return its bit vector points-to. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00484">PointerAnalysisImpl.h:484</a></div></div>
|
|
89
|
+
<div class="ttc" id="classSVF_1_1ContextDDA_html_a6fb1be7eef65008c7fbab6bdfe186061"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a6fb1be7eef65008c7fbab6bdfe186061">SVF::ContextDDA::updateCallGraphAndSVFG</a></div><div class="ttdeci">virtual void updateCallGraphAndSVFG(const CxtLocDPItem &dpm, const CallICFGNode *cs, SVFGEdgeSet &svfgEdges) override</div><div class="ttdoc">Update call graph. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00114">ContextDDA.h:114</a></div></div>
|
|
91
90
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_afb0ab7fc43e6f0331072419e39ae0606"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#afb0ab7fc43e6f0331072419e39ae0606">SVF::ContextDDA::PTAName</a></div><div class="ttdeci">virtual const std::string PTAName() const override</div><div class="ttdoc">Return PTA name. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00189">ContextDDA.h:189</a></div></div>
|
|
92
91
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_ae3b04859ed69c47302177988aa68a70b"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#ae3b04859ed69c47302177988aa68a70b">SVF::ContextDDA::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00197">ContextDDA.h:197</a></div></div>
|
|
93
92
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_aacd5f35171717cb4d758c17bef828a0f"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aacd5f35171717cb4d758c17bef828a0f">SVF::PTACallGraph::getCalleeOfCallSite</a></div><div class="ttdeci">const SVFFunction * getCalleeOfCallSite(CallSiteID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00371">PTACallGraph.h:371</a></div></div>
|
|
@@ -97,13 +96,13 @@ $(function() {
|
|
|
97
96
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a76487b8b3e3abb8a16b5c4f5c7e79819"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a76487b8b3e3abb8a16b5c4f5c7e79819">SVF::ContextDDA::isInsensitiveCallRet</a></div><div class="ttdeci">bool isInsensitiveCallRet(const SVFGEdge *edge)</div><div class="ttdoc">Whether this edge is treated context-insensitively. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00174">ContextDDA.h:174</a></div></div>
|
|
98
97
|
<div class="ttc" id="namespaceSVF_html_aa612d67dfa9b0c2999eeef980ca6c893"><div class="ttname"><a href="namespaceSVF.html#aa612d67dfa9b0c2999eeef980ca6c893">SVF::CxtLocDPItem</a></div><div class="ttdeci">CxtStmtDPItem< SVFGNode > CxtLocDPItem</div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00020">ContextDDA.h:20</a></div></div>
|
|
99
98
|
<div class="ttc" id="classSVF_1_1CondVar_html"><div class="ttname"><a href="classSVF_1_1CondVar.html">SVF::CondVar</a></div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00046">ConditionalPT.h:46</a></div></div>
|
|
99
|
+
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a35bd5f0fb2c146199e9f1aa6a19b4062"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">SVF::PointerAnalysis::CallEdgeMap</a></div><div class="ttdeci">OrderedMap< const CallICFGNode *, FunctionSet > CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00111">PointerAnalysis.h:111</a></div></div>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_adb9f21a86daeb2dd79537f3939c393cf"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#adb9f21a86daeb2dd79537f3939c393cf">SVF::ContextDDA::initialize</a></div><div class="ttdeci">virtual void initialize() override</div><div class="ttdoc">Initialization of the analysis. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00040">ContextDDA.cpp:40</a></div></div>
|
|
101
101
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00160">SVFBasicTypes.h:160</a></div></div>
|
|
102
102
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00178">PointerAnalysis.h:178</a></div></div>
|
|
103
103
|
<div class="ttc" id="classSVF_1_1PointsTo_html_aa53962e561399bf493d1f2b9137356f6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00127">PointsTo.h:127</a></div></div>
|
|
104
104
|
<div class="ttc" id="classSVF_1_1ContextCond_html_ac80892cbef7a5d2c949e5f07682bc885"><div class="ttname"><a href="classSVF_1_1ContextCond.html#ac80892cbef7a5d2c949e5f07682bc885">SVF::ContextCond::setNonConcreteCxt</a></div><div class="ttdeci">void setNonConcreteCxt()</div><div class="ttdoc">Whether it is an concrete context. </div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00226">DPItem.h:226</a></div></div>
|
|
105
105
|
<div class="ttc" id="classSVF_1_1CondPTAImpl_html_a9bdc3a50c695029a28371116ddc3ef8d"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">SVF::CondPTAImpl::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00370">PointerAnalysisImpl.h:370</a></div></div>
|
|
106
|
-
<div class="ttc" id="classSVF_1_1ContextDDA_html_a4b8466d2e8e885fea2f41b5713f785bd"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a4b8466d2e8e885fea2f41b5713f785bd">SVF::ContextDDA::updateCallGraphAndSVFG</a></div><div class="ttdeci">virtual void updateCallGraphAndSVFG(const CxtLocDPItem &dpm, const CallBlockNode *cs, SVFGEdgeSet &svfgEdges) override</div><div class="ttdoc">Update call graph. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00114">ContextDDA.h:114</a></div></div>
|
|
107
106
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a32ce0085cb99f92f63b54df0f2ea2523"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a32ce0085cb99f92f63b54df0f2ea2523">SVF::ContextDDA::getConservativeCPts</a></div><div class="ttdeci">virtual CxtPtSet getConservativeCPts(const CxtLocDPItem &dpm) override</div><div class="ttdoc">Override parent method. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00058">ContextDDA.h:58</a></div></div>
|
|
108
107
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
109
108
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac39860015b45b9af6351d0343f8983bb"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem >::getAndersenAnalysis</a></div><div class="ttdeci">AndersenWaveDiff * getAndersenAnalysis() const</div><div class="ttdoc">Return Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00696">DDAVFSolver.h:696</a></div></div>
|
|
@@ -113,6 +112,7 @@ $(function() {
|
|
|
113
112
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a0d407903c4b0d976da30538ff0c5fc41"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a0d407903c4b0d976da30538ff0c5fc41">SVF::ContextDDA::getInsensitiveEdgeSet</a></div><div class="ttdeci">ConstSVFGEdgeSet & getInsensitiveEdgeSet()</div><div class="ttdoc">Return insensitive edge set. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00179">ContextDDA.h:179</a></div></div>
|
|
114
113
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a26031c81d3eba5b3ff3ebd51d89510ae"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a26031c81d3eba5b3ff3ebd51d89510ae">SVF::ContextDDA::handleAddr</a></div><div class="ttdeci">virtual void handleAddr(CxtPtSet &pts, const CxtLocDPItem &dpm, const AddrSVFGNode *addr) override</div><div class="ttdoc">Handle Address SVFGNode to add proper conditional points-to. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00149">ContextDDA.h:149</a></div></div>
|
|
115
114
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a57d309971de00db9bd8c6bfaf237cbff"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a57d309971de00db9bd8c6bfaf237cbff">SVF::ContextDDA::isCondCompatible</a></div><div class="ttdeci">virtual bool isCondCompatible(const ContextCond &cxt1, const ContextCond &cxt2, bool singleton) const override</div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00114">ContextDDA.cpp:114</a></div></div>
|
|
115
|
+
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_aa0a14fd11d7e69b2a3f91a3862f172cd"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aa0a14fd11d7e69b2a3f91a3862f172cd">SVF::PointerAnalysis::resolveIndCalls</a></div><div class="ttdeci">virtual void resolveIndCalls(const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges, LLVMCallGraph *callgraph=nullptr)</div><div class="ttdoc">Resolve indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00415">PointerAnalysis.cpp:415</a></div></div>
|
|
116
116
|
<div class="ttc" id="namespaceSVF_html_a542c6d5483bfc74fa58b45ad06b65960"><div class="ttname"><a href="namespaceSVF.html#a542c6d5483bfc74fa58b45ad06b65960">SVF::CallStrCxt</a></div><div class="ttdeci">SmallVector16 CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00125">SVFBasicTypes.h:125</a></div></div>
|
|
117
117
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_ac73213825d188fb4d1105ddc472fde05"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#ac73213825d188fb4d1105ddc472fde05">SVF::ContextDDA::ContextDDA</a></div><div class="ttdeci">ContextDDA(SVFIR *_pag, DDAClient *client)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00020">ContextDDA.cpp:20</a></div></div>
|
|
118
118
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a45d7a381fec0692b4d2f7d0eec47ccf1"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a45d7a381fec0692b4d2f7d0eec47ccf1">SVF::ContextDDA::propagateViaObj</a></div><div class="ttdeci">virtual bool propagateViaObj(const CxtVar &storeObj, const CxtVar &loadObj) override</div><div class="ttdoc">Propagate along indirect value-flow if two objects of load and store are same. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00163">ContextDDA.h:163</a></div></div>
|
|
@@ -127,7 +127,6 @@ $(function() {
|
|
|
127
127
|
<div class="ttc" id="DDAVFSolver_8h_html"><div class="ttname"><a href="DDAVFSolver_8h.html">DDAVFSolver.h</a></div></div>
|
|
128
128
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_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>
|
|
129
129
|
<div class="ttc" id="PointerAnalysisImpl_8h_html"><div class="ttname"><a href="PointerAnalysisImpl_8h.html">PointerAnalysisImpl.h</a></div></div>
|
|
130
|
-
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a40738643202ca6301671f51da3fc1137"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a40738643202ca6301671f51da3fc1137">SVF::PointerAnalysis::resolveIndCalls</a></div><div class="ttdeci">virtual void resolveIndCalls(const CallBlockNode *cs, const PointsTo &target, CallEdgeMap &newEdges, LLVMCallGraph *callgraph=nullptr)</div><div class="ttdoc">Resolve indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00415">PointerAnalysis.cpp:415</a></div></div>
|
|
131
130
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem >::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
|
|
132
131
|
<div class="ttc" id="DataFlowUtil_8h_html"><div class="ttname"><a href="DataFlowUtil_8h.html">DataFlowUtil.h</a></div></div>
|
|
133
132
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a7687f36ad3f27bb16069975f00a1a202"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202">SVF::ContextDDA::getCSIDAtRet</a></div><div class="ttdeci">CallSiteID getCSIDAtRet(CxtLocDPItem &dpm, const SVFGEdge *edge)</div><div class="ttdoc">get callsite id from return, return 0 if it is a spurious return edge </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00212">ContextDDA.cpp:212</a></div></div>
|
|
@@ -138,20 +137,21 @@ $(function() {
|
|
|
138
137
|
<div class="ttc" id="classSVF_1_1CxtStmtDPItem_html"><div class="ttname"><a href="classSVF_1_1CxtStmtDPItem.html">SVF::CxtStmtDPItem</a></div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00365">DPItem.h:365</a></div></div>
|
|
139
138
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae31e9281e4f1e0585fdf328b7339e1bf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem >::getCachedPointsTo</a></div><div class="ttdeci">virtual const CxtPtSet & getCachedPointsTo(const CxtLocDPItem &dpm)</div><div class="ttdoc">Points-to Caching for top-level pointers and address-taken objects. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00532">DDAVFSolver.h:532</a></div></div>
|
|
140
139
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aef98e8e9144a69bb7481fef5d2dcb303"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aef98e8e9144a69bb7481fef5d2dcb303">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem >::ConstSVFGEdgeSet</a></div><div class="ttdeci">OrderedSet< const SVFGEdge * > ConstSVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00038">DDAVFSolver.h:38</a></div></div>
|
|
140
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
141
141
|
<div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html">SVF::PTACFInfoBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00122">DataFlowUtil.h:122</a></div></div>
|
|
142
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_aefca97f043b3e220ef6012a049b83fdf"><div class="ttname"><a href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">SVF::SVFG::connectCallerAndCallee</a></div><div class="ttdeci">virtual void connectCallerAndCallee(const CallICFGNode *cs, const SVFFunction *callee, SVFGEdgeSetTy &edges)</div><div class="ttdoc">Connect SVFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00641">SVFG.cpp:641</a></div></div>
|
|
142
143
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
|
|
143
144
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_ac3e622d810ee69917b7bef08a882117c"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">SVF::ContextDDA::dumpContexts</a></div><div class="ttdeci">virtual void dumpContexts(const ContextCond &cxts)</div><div class="ttdoc">dump context call strings </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00184">ContextDDA.h:184</a></div></div>
|
|
144
145
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5a8632a957fce63f186dd8b657566dd2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5a8632a957fce63f186dd8b657566dd2">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem >::addDDAPts</a></div><div class="ttdeci">virtual void addDDAPts(CxtPtSet &pts, const CxtVar &var)</div><div class="ttdoc">Add pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00091">DDAVFSolver.h:91</a></div></div>
|
|
145
146
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a42035e9669204ddd5d38583db21af3d7"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a42035e9669204ddd5d38583db21af3d7">SVF::PTACallGraph::getCallerOfCallSite</a></div><div class="ttdeci">const SVFFunction * getCallerOfCallSite(CallSiteID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00367">PTACallGraph.h:367</a></div></div>
|
|
146
147
|
<div class="ttc" id="classSVF_1_1CondStdSet_html"><div class="ttname"><a href="classSVF_1_1CondStdSet.html">SVF::CondStdSet</a></div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00131">ConditionalPT.h:131</a></div></div>
|
|
148
|
+
<div class="ttc" id="classSVF_1_1ContextDDA_html_a05ac33ca33efb58099839f72050bb008"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a05ac33ca33efb58099839f72050bb008">SVF::ContextDDA::testIndCallReachability</a></div><div class="ttdeci">bool testIndCallReachability(CxtLocDPItem &dpm, const SVFFunction *callee, const CallICFGNode *cs)</div><div class="ttdoc">refine indirect call edge </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00167">ContextDDA.cpp:167</a></div></div>
|
|
147
149
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem >::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00096">DDAVFSolver.h:96</a></div></div>
|
|
148
|
-
<div class="ttc" id="classSVF_1_1SVFG_html_a0cebc2ba5ae81a6d45b224a4f94fc8b4"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0cebc2ba5ae81a6d45b224a4f94fc8b4">SVF::SVFG::connectCallerAndCallee</a></div><div class="ttdeci">virtual void connectCallerAndCallee(const CallBlockNode *cs, const SVFFunction *callee, SVFGEdgeSetTy &edges)</div><div class="ttdoc">Connect SVFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00641">SVFG.cpp:641</a></div></div>
|
|
149
150
|
<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#l00026">ContextDDA.h:26</a></div></div>
|
|
150
151
|
<div class="ttc" id="DPItem_8h_html"><div class="ttname"><a href="DPItem_8h.html">DPItem.h</a></div></div>
|
|
151
152
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a525949d1743136466d33bf4dc26ba423"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">SVF::ContextDDA::isEdgeInRecursion</a></div><div class="ttdeci">virtual bool isEdgeInRecursion(CallSiteID csId)</div><div class="ttdoc">Whether call/return inside recursion. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00106">ContextDDA.h:106</a></div></div>
|
|
152
153
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_ae34cd06ee3b7d763c81ec418af76d244"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#ae34cd06ee3b7d763c81ec418af76d244">SVF::ContextDDA::finalize</a></div><div class="ttdeci">virtual void finalize() override</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00040">ContextDDA.h:40</a></div></div>
|
|
153
154
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0f71e4cd0948b294c7d33a690bde7dbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">SVF::PointerAnalysis::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00367">PointerAnalysis.h:367</a></div></div>
|
|
154
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
155
155
|
<div class="ttc" id="classSVF_1_1CondStdSet_html_ae11deddad534be115d29daad08c90599"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">SVF::CondStdSet::set</a></div><div class="ttdeci">void set(const Element &var)</div><div class="ttdoc">Add the element into set. </div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00158">ConditionalPT.h:158</a></div></div>
|
|
156
156
|
<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#l00027">PointsTo.h:27</a></div></div>
|
|
157
157
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a2ce589a1d63a5126e178fc47527e0f92"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a2ce589a1d63a5126e178fc47527e0f92">SVF::ContextDDA::getCSIDAtCall</a></div><div class="ttdeci">CallSiteID getCSIDAtCall(CxtLocDPItem &dpm, const SVFGEdge *edge)</div><div class="ttdoc">get callsite id from call, return 0 if it is a spurious call edge </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00188">ContextDDA.cpp:188</a></div></div>
|