svf-tools 1.0.341 → 1.0.345
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/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 +8 -8
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +31 -31
- 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/SymbolTableInfo_8cpp_source.html +1 -1
- 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.html +1 -1
- 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_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_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 +131 -131
- 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_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_1SymbolTableInfo.html +1 -1
- 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 +65 -67
- 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 +86 -86
- package/SVF-doxygen/html/html/functions_func_h.html +17 -17
- package/SVF-doxygen/html/html/functions_func_i.html +12 -12
- 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 +2 -2
- 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 +19 -19
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_p.html +10 -13
- package/SVF-doxygen/html/html/functions_r.html +6 -6
- package/SVF-doxygen/html/html/functions_s.html +21 -18
- 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/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 +2 -3
- package/SVF-doxygen/html/html/search/all_12.js +5 -5
- package/SVF-doxygen/html/html/search/all_13.js +5 -4
- package/SVF-doxygen/html/html/search/all_14.js +8 -8
- package/SVF-doxygen/html/html/search/all_15.js +2 -2
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_3.js +35 -34
- 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 +15 -15
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- 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/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 +12 -12
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- 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 +2 -2
- package/SVF-doxygen/html/html/search/variables_15.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 +33 -33
- 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 +21 -21
- package/include/MemoryModel/SVFStatements.h +11 -11
- 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/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/Util/Options.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,8 +66,7 @@ $(function() {
|
|
|
66
66
|
<div class="title">DDAClient.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="DDAClient_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"> * @file: DDAClient.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * @author: yesen</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * @date: 4 Feb 2015</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * LICENSE</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</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">#ifndef DDACLIENT_H_</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#define DDACLIENT_H_</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="SVFIR_8h.html">MemoryModel/SVFIR.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="PointerAnalysisImpl_8h.html">MemoryModel/PointerAnalysisImpl.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="SVFG_8h.html">Graphs/SVFG.h</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="BasicTypes_8h.html">Util/BasicTypes.h</a>"</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">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html"> 25</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a1070c1a68fa7da7bdb23240957048ee9"> 28</a></span>  <a class="code" href="classSVF_1_1DDAClient.html#a1070c1a68fa7da7bdb23240957048ee9">DDAClient</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* mod) : <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>(nullptr), <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>(mod), <a class="code" href="classSVF_1_1DDAClient.html#a6a133cf24ef65eaf58c82ec213f3f6cb">curPtr</a>(0), <a class="code" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8">solveAll</a>(true) {}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a0d35dae2cbceebecba7c4a9782a98dff"> 30</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1DDAClient.html#a0d35dae2cbceebecba7c4a9782a98dff">~DDAClient</a>() {}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a40f6d8769db41f4c907fe5b615e5df83"> 32</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a40f6d8769db41f4c907fe5b615e5df83">initialise</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>*) {}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#ab3fdab96c5bf55feb82b688c92510c36"> 35</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& <a class="code" href="classSVF_1_1DDAClient.html#ab3fdab96c5bf55feb82b688c92510c36">collectCandidateQueries</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* p)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classSVF_1_1DDAClient.html#a21badb317a249bbb506615182671b32c">setPAG</a>(p);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8">solveAll</a>)</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a> = <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">getAllValidPtrs</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">for</span> (OrderedNodeSet::iterator it = <a class="code" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3">userInput</a>.begin(), eit = <a class="code" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3">userInput</a>.end(); it != eit; ++it)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classSVF_1_1DDAClient.html#a7c07d9527011ea0165038e3a112a85d8">addCandidate</a>(*it);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a6f50b9a26f66e716acf163cc77030e5f"> 48</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& <a class="code" href="classSVF_1_1DDAClient.html#a6f50b9a26f66e716acf163cc77030e5f">getCandidateQueries</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d"> 54</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d">handleStatement</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>*, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>) {}</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a21badb317a249bbb506615182671b32c"> 56</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a21badb317a249bbb506615182671b32c">setPAG</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* g)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a> = g;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a3fbe4ffde0a14b2db40189883d49237f"> 61</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a3fbe4ffde0a14b2db40189883d49237f">setCurrentQueryPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1DDAClient.html#a6a133cf24ef65eaf58c82ec213f3f6cb">curPtr</a> = ptr;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a3d0f732e284f3237287b375582c0aa88"> 66</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a3d0f732e284f3237287b375582c0aa88">setQuery</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3">userInput</a>.insert(ptr);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8">solveAll</a> = <span class="keyword">false</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_1DDAClient.html#ad9484fac56de8beaf120b1611d23dddc"> 72</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1DDAClient.html#ad9484fac56de8beaf120b1611d23dddc">getModule</a>()<span class="keyword"> const</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> <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a3b202f9a70b6e23c06a15556d23d245e">answerQueries</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3"> 78</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">performStat</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>*) {}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028"> 80</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028">collectWPANum</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>*) {}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a7c07d9527011ea0165038e3a112a85d8"> 82</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a7c07d9527011ea0165038e3a112a85d8">addCandidate</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(<a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>)))</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a>.insert(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff"> 88</a></span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>; </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64"> 89</a></span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a6a133cf24ef65eaf58c82ec213f3f6cb"> 90</a></span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1DDAClient.html#a6a133cf24ef65eaf58c82ec213f3f6cb">curPtr</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61"> 91</a></span>  <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a> <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a>; </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> <span class="keyword">private</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3"> 94</a></span>  <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a> <a class="code" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3">userInput</a>; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8"> 95</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8">solveAll</a>; </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> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html"> 102</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FunptrDDAClient.html">FunptrDDAClient</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a></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> <span class="keyword">private</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html#aaff8353fea6337d6236189d4a08a91e9"> 105</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<NodeID,const CallBlockNode*></a> <a class="code" href="classSVF_1_1FunptrDDAClient.html#aaff8353fea6337d6236189d4a08a91e9">VTablePtrToCallSiteMap</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html#a357db092c3c39d7b1c6dd0fec3888048"> 106</a></span>  VTablePtrToCallSiteMap <a class="code" href="classSVF_1_1FunptrDDAClient.html#a357db092c3c39d7b1c6dd0fec3888048">vtableToCallSiteMap</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html#a5aae3bed289371605ad831ae5a6ad6b5"> 108</a></span>  <a class="code" href="classSVF_1_1FunptrDDAClient.html#a5aae3bed289371605ad831ae5a6ad6b5">FunptrDDAClient</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>) : <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>(module) {}</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html#a4bfdbce441544250dce033b8fb38fc7a"> 109</a></span>  <a class="code" href="classSVF_1_1FunptrDDAClient.html#a4bfdbce441544250dce033b8fb38fc7a">~FunptrDDAClient</a>() {}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& <a class="code" href="classSVF_1_1DDAClient.html#ab3fdab96c5bf55feb82b688c92510c36">collectCandidateQueries</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* p);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">performStat</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> };</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html"> 121</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AliasDDAClient.html">AliasDDAClient</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#a3c24763f943ae27f93b2be64a81ab488"> 125</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet<const PAGNode*></a> <a class="code" href="classSVF_1_1AliasDDAClient.html#a3c24763f943ae27f93b2be64a81ab488">PAGNodeSet</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#af55b1ccfa6cfaa6ec079b19d62288cb6"> 127</a></span>  <a class="code" href="classSVF_1_1AliasDDAClient.html#af55b1ccfa6cfaa6ec079b19d62288cb6">AliasDDAClient</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>) : <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>(module) {}</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#ae312529998fff1a063ed12a980370716"> 128</a></span>  <a class="code" href="classSVF_1_1AliasDDAClient.html#ae312529998fff1a063ed12a980370716">~AliasDDAClient</a>() {}</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& <a class="code" href="classSVF_1_1DDAClient.html#ab3fdab96c5bf55feb82b688c92510c36">collectCandidateQueries</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">performStat</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#aa9bb92cc906c04a82eba69494b05516c"> 136</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<NodeID,const CallBlockNode*></a> <a class="code" href="classSVF_1_1AliasDDAClient.html#aa9bb92cc906c04a82eba69494b05516c">VTablePtrToCallSiteMap</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#a123e98572cf077ffdf7116ac5f5fc5e4"> 137</a></span>  VTablePtrToCallSiteMap <a class="code" href="classSVF_1_1AliasDDAClient.html#a123e98572cf077ffdf7116ac5f5fc5e4">vtableToCallSiteMap</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#a246448efd1ff5da683a6ffe9f759e282"> 138</a></span>  PAGNodeSet <a class="code" href="classSVF_1_1AliasDDAClient.html#a246448efd1ff5da683a6ffe9f759e282">loadSrcNodes</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#aaad2197cec53f7eae91b3c57c168447a"> 139</a></span>  PAGNodeSet <a class="code" href="classSVF_1_1AliasDDAClient.html#aaad2197cec53f7eae91b3c57c168447a">storeDstNodes</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#ab165537f4c9a318f31de8a272a529c9c"> 140</a></span>  PAGNodeSet <a class="code" href="classSVF_1_1AliasDDAClient.html#ab165537f4c9a318f31de8a272a529c9c">gepSrcNodes</a>;</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> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#endif </span><span class="comment">/* DDACLIENT_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1FunptrDDAClient_html_aaff8353fea6337d6236189d4a08a91e9"><div class="ttname"><a href="classSVF_1_1FunptrDDAClient.html#aaff8353fea6337d6236189d4a08a91e9">SVF::FunptrDDAClient::VTablePtrToCallSiteMap</a></div><div class="ttdeci">OrderedMap< NodeID, const CallBlockNode * > VTablePtrToCallSiteMap</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00105">DDAClient.h:105</a></div></div>
|
|
70
|
-
<div class="ttc" id="classSVF_1_1DDAClient_html_aa6fdff97be2e1a886237b515406d2e61"><div class="ttname"><a href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">SVF::DDAClient::candidateQueries</a></div><div class="ttdeci">OrderedNodeSet candidateQueries</div><div class="ttdoc">store all candidate pointers to be queried </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00091">DDAClient.h:91</a></div></div>
|
|
69
|
+
<a href="DDAClient_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"> * @file: DDAClient.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * @author: yesen</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * @date: 4 Feb 2015</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * LICENSE</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</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">#ifndef DDACLIENT_H_</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#define DDACLIENT_H_</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="SVFIR_8h.html">MemoryModel/SVFIR.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="PointerAnalysisImpl_8h.html">MemoryModel/PointerAnalysisImpl.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="SVFG_8h.html">Graphs/SVFG.h</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="BasicTypes_8h.html">Util/BasicTypes.h</a>"</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">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html"> 25</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a1070c1a68fa7da7bdb23240957048ee9"> 28</a></span>  <a class="code" href="classSVF_1_1DDAClient.html#a1070c1a68fa7da7bdb23240957048ee9">DDAClient</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* mod) : <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>(nullptr), <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>(mod), <a class="code" href="classSVF_1_1DDAClient.html#a6a133cf24ef65eaf58c82ec213f3f6cb">curPtr</a>(0), <a class="code" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8">solveAll</a>(true) {}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a0d35dae2cbceebecba7c4a9782a98dff"> 30</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1DDAClient.html#a0d35dae2cbceebecba7c4a9782a98dff">~DDAClient</a>() {}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a40f6d8769db41f4c907fe5b615e5df83"> 32</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a40f6d8769db41f4c907fe5b615e5df83">initialise</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>*) {}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#ab3fdab96c5bf55feb82b688c92510c36"> 35</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& <a class="code" href="classSVF_1_1DDAClient.html#ab3fdab96c5bf55feb82b688c92510c36">collectCandidateQueries</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* p)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classSVF_1_1DDAClient.html#a21badb317a249bbb506615182671b32c">setPAG</a>(p);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8">solveAll</a>)</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a> = <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">getAllValidPtrs</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">for</span> (OrderedNodeSet::iterator it = <a class="code" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3">userInput</a>.begin(), eit = <a class="code" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3">userInput</a>.end(); it != eit; ++it)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classSVF_1_1DDAClient.html#a7c07d9527011ea0165038e3a112a85d8">addCandidate</a>(*it);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a6f50b9a26f66e716acf163cc77030e5f"> 48</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& <a class="code" href="classSVF_1_1DDAClient.html#a6f50b9a26f66e716acf163cc77030e5f">getCandidateQueries</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d"> 54</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d">handleStatement</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>*, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>) {}</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a21badb317a249bbb506615182671b32c"> 56</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a21badb317a249bbb506615182671b32c">setPAG</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* g)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a> = g;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a3fbe4ffde0a14b2db40189883d49237f"> 61</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a3fbe4ffde0a14b2db40189883d49237f">setCurrentQueryPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1DDAClient.html#a6a133cf24ef65eaf58c82ec213f3f6cb">curPtr</a> = ptr;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a3d0f732e284f3237287b375582c0aa88"> 66</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a3d0f732e284f3237287b375582c0aa88">setQuery</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3">userInput</a>.insert(ptr);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8">solveAll</a> = <span class="keyword">false</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_1DDAClient.html#ad9484fac56de8beaf120b1611d23dddc"> 72</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1DDAClient.html#ad9484fac56de8beaf120b1611d23dddc">getModule</a>()<span class="keyword"> const</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> <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a3b202f9a70b6e23c06a15556d23d245e">answerQueries</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3"> 78</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">performStat</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>*) {}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028"> 80</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028">collectWPANum</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>*) {}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a7c07d9527011ea0165038e3a112a85d8"> 82</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#a7c07d9527011ea0165038e3a112a85d8">addCandidate</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(<a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>)))</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a>.insert(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff"> 88</a></span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>; </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64"> 89</a></span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a6a133cf24ef65eaf58c82ec213f3f6cb"> 90</a></span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1DDAClient.html#a6a133cf24ef65eaf58c82ec213f3f6cb">curPtr</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61"> 91</a></span>  <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a> <a class="code" href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">candidateQueries</a>; </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> <span class="keyword">private</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3"> 94</a></span>  <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a> <a class="code" href="classSVF_1_1DDAClient.html#a25f8abbcaca653d0883d542bfbe729a3">userInput</a>; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8"> 95</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DDAClient.html#aa8a67c60ec0395c9cfae178dcff638a8">solveAll</a>; </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> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html"> 102</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FunptrDDAClient.html">FunptrDDAClient</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a></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> <span class="keyword">private</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html#ad195fbe1a6b422e67f16c9fde9d8e671"> 105</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<NodeID,const CallICFGNode*></a> <a class="code" href="classSVF_1_1FunptrDDAClient.html#ad195fbe1a6b422e67f16c9fde9d8e671">VTablePtrToCallSiteMap</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html#a357db092c3c39d7b1c6dd0fec3888048"> 106</a></span>  VTablePtrToCallSiteMap <a class="code" href="classSVF_1_1FunptrDDAClient.html#a357db092c3c39d7b1c6dd0fec3888048">vtableToCallSiteMap</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html#a5aae3bed289371605ad831ae5a6ad6b5"> 108</a></span>  <a class="code" href="classSVF_1_1FunptrDDAClient.html#a5aae3bed289371605ad831ae5a6ad6b5">FunptrDDAClient</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>) : <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>(module) {}</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1FunptrDDAClient.html#a4bfdbce441544250dce033b8fb38fc7a"> 109</a></span>  <a class="code" href="classSVF_1_1FunptrDDAClient.html#a4bfdbce441544250dce033b8fb38fc7a">~FunptrDDAClient</a>() {}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& <a class="code" href="classSVF_1_1DDAClient.html#ab3fdab96c5bf55feb82b688c92510c36">collectCandidateQueries</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* p);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">performStat</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> };</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html"> 121</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AliasDDAClient.html">AliasDDAClient</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#a3c24763f943ae27f93b2be64a81ab488"> 125</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet<const PAGNode*></a> <a class="code" href="classSVF_1_1AliasDDAClient.html#a3c24763f943ae27f93b2be64a81ab488">PAGNodeSet</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#af55b1ccfa6cfaa6ec079b19d62288cb6"> 127</a></span>  <a class="code" href="classSVF_1_1AliasDDAClient.html#af55b1ccfa6cfaa6ec079b19d62288cb6">AliasDDAClient</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1DDAClient.html#a4ac68012099540beb87ee4700e824d64">module</a>) : <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>(module) {}</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#ae312529998fff1a063ed12a980370716"> 128</a></span>  <a class="code" href="classSVF_1_1AliasDDAClient.html#ae312529998fff1a063ed12a980370716">~AliasDDAClient</a>() {}</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& <a class="code" href="classSVF_1_1DDAClient.html#ab3fdab96c5bf55feb82b688c92510c36">collectCandidateQueries</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">pag</a>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">performStat</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#a1eb12d17470a8b1ae7131470ace2daa2"> 136</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<NodeID,const CallICFGNode*></a> <a class="code" href="classSVF_1_1AliasDDAClient.html#a1eb12d17470a8b1ae7131470ace2daa2">VTablePtrToCallSiteMap</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#a123e98572cf077ffdf7116ac5f5fc5e4"> 137</a></span>  VTablePtrToCallSiteMap <a class="code" href="classSVF_1_1AliasDDAClient.html#a123e98572cf077ffdf7116ac5f5fc5e4">vtableToCallSiteMap</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#a246448efd1ff5da683a6ffe9f759e282"> 138</a></span>  PAGNodeSet <a class="code" href="classSVF_1_1AliasDDAClient.html#a246448efd1ff5da683a6ffe9f759e282">loadSrcNodes</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#aaad2197cec53f7eae91b3c57c168447a"> 139</a></span>  PAGNodeSet <a class="code" href="classSVF_1_1AliasDDAClient.html#aaad2197cec53f7eae91b3c57c168447a">storeDstNodes</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasDDAClient.html#ab165537f4c9a318f31de8a272a529c9c"> 140</a></span>  PAGNodeSet <a class="code" href="classSVF_1_1AliasDDAClient.html#ab165537f4c9a318f31de8a272a529c9c">gepSrcNodes</a>;</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> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#endif </span><span class="comment">/* DDACLIENT_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1DDAClient_html_aa6fdff97be2e1a886237b515406d2e61"><div class="ttname"><a href="classSVF_1_1DDAClient.html#aa6fdff97be2e1a886237b515406d2e61">SVF::DDAClient::candidateQueries</a></div><div class="ttdeci">OrderedNodeSet candidateQueries</div><div class="ttdoc">store all candidate pointers to be queried </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00091">DDAClient.h:91</a></div></div>
|
|
71
70
|
<div class="ttc" id="classSVF_1_1AliasDDAClient_html_a3c24763f943ae27f93b2be64a81ab488"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html#a3c24763f943ae27f93b2be64a81ab488">SVF::AliasDDAClient::PAGNodeSet</a></div><div class="ttdeci">OrderedSet< const PAGNode * > PAGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00125">DDAClient.h:125</a></div></div>
|
|
72
71
|
<div class="ttc" id="classSVF_1_1AliasDDAClient_html_a246448efd1ff5da683a6ffe9f759e282"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html#a246448efd1ff5da683a6ffe9f759e282">SVF::AliasDDAClient::loadSrcNodes</a></div><div class="ttdeci">PAGNodeSet loadSrcNodes</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00138">DDAClient.h:138</a></div></div>
|
|
73
72
|
<div class="ttc" id="classSVF_1_1FunptrDDAClient_html"><div class="ttname"><a href="classSVF_1_1FunptrDDAClient.html">SVF::FunptrDDAClient</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00102">DDAClient.h:102</a></div></div>
|
|
@@ -84,11 +83,11 @@ $(function() {
|
|
|
84
83
|
<div class="ttc" id="SVFIR_8h_html"><div class="ttname"><a href="SVFIR_8h.html">SVFIR.h</a></div></div>
|
|
85
84
|
<div class="ttc" id="classSVF_1_1DDAClient_html_aedd25e487775d37d4f6dcc8a5565c2a3"><div class="ttname"><a href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">SVF::DDAClient::performStat</a></div><div class="ttdeci">virtual void performStat(PointerAnalysis *)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00078">DDAClient.h:78</a></div></div>
|
|
86
85
|
<div class="ttc" id="classSVF_1_1DDAClient_html_a3fbe4ffde0a14b2db40189883d49237f"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a3fbe4ffde0a14b2db40189883d49237f">SVF::DDAClient::setCurrentQueryPtr</a></div><div class="ttdeci">void setCurrentQueryPtr(NodeID ptr)</div><div class="ttdoc">Set the pointer being queried. </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00061">DDAClient.h:61</a></div></div>
|
|
87
|
-
<div class="ttc" id="classSVF_1_1AliasDDAClient_html_aa9bb92cc906c04a82eba69494b05516c"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html#aa9bb92cc906c04a82eba69494b05516c">SVF::AliasDDAClient::VTablePtrToCallSiteMap</a></div><div class="ttdeci">OrderedMap< NodeID, const CallBlockNode * > VTablePtrToCallSiteMap</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00136">DDAClient.h:136</a></div></div>
|
|
88
86
|
<div class="ttc" id="classSVF_1_1DDAClient_html_a21badb317a249bbb506615182671b32c"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a21badb317a249bbb506615182671b32c">SVF::DDAClient::setPAG</a></div><div class="ttdeci">void setPAG(SVFIR *g)</div><div class="ttdoc">Set SVFIR graph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00056">DDAClient.h:56</a></div></div>
|
|
89
87
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a7990c72dd6d645d713f19ed973841484"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">SVF::SVFIR::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet & getAllValidPtrs()</div><div class="ttdoc">Return valid pointers. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00137">SVFIR.h:137</a></div></div>
|
|
90
88
|
<div class="ttc" id="classSVF_1_1DDAClient_html_ab3fdab96c5bf55feb82b688c92510c36"><div class="ttname"><a href="classSVF_1_1DDAClient.html#ab3fdab96c5bf55feb82b688c92510c36">SVF::DDAClient::collectCandidateQueries</a></div><div class="ttdeci">virtual OrderedNodeSet & collectCandidateQueries(SVFIR *p)</div><div class="ttdoc">Collect candidate pointers for query. </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00035">DDAClient.h:35</a></div></div>
|
|
91
89
|
<div class="ttc" id="classSVF_1_1DDAClient_html_a0d35dae2cbceebecba7c4a9782a98dff"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a0d35dae2cbceebecba7c4a9782a98dff">SVF::DDAClient::~DDAClient</a></div><div class="ttdeci">virtual ~DDAClient()</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00030">DDAClient.h:30</a></div></div>
|
|
90
|
+
<div class="ttc" id="classSVF_1_1FunptrDDAClient_html_ad195fbe1a6b422e67f16c9fde9d8e671"><div class="ttname"><a href="classSVF_1_1FunptrDDAClient.html#ad195fbe1a6b422e67f16c9fde9d8e671">SVF::FunptrDDAClient::VTablePtrToCallSiteMap</a></div><div class="ttdeci">OrderedMap< NodeID, const CallICFGNode * > VTablePtrToCallSiteMap</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00105">DDAClient.h:105</a></div></div>
|
|
92
91
|
<div class="ttc" id="classSVF_1_1DDAClient_html_a7c07d9527011ea0165038e3a112a85d8"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a7c07d9527011ea0165038e3a112a85d8">SVF::DDAClient::addCandidate</a></div><div class="ttdeci">void addCandidate(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00082">DDAClient.h:82</a></div></div>
|
|
93
92
|
<div class="ttc" id="classSVF_1_1AliasDDAClient_html_a123e98572cf077ffdf7116ac5f5fc5e4"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html#a123e98572cf077ffdf7116ac5f5fc5e4">SVF::AliasDDAClient::vtableToCallSiteMap</a></div><div class="ttdeci">VTablePtrToCallSiteMap vtableToCallSiteMap</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00137">DDAClient.h:137</a></div></div>
|
|
94
93
|
<div class="ttc" id="classSVF_1_1AliasDDAClient_html_ae312529998fff1a063ed12a980370716"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html#ae312529998fff1a063ed12a980370716">SVF::AliasDDAClient::~AliasDDAClient</a></div><div class="ttdeci">~AliasDDAClient()</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00128">DDAClient.h:128</a></div></div>
|
|
@@ -108,6 +107,7 @@ $(function() {
|
|
|
108
107
|
<div class="ttc" id="classSVF_1_1DDAClient_html_a3b202f9a70b6e23c06a15556d23d245e"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a3b202f9a70b6e23c06a15556d23d245e">SVF::DDAClient::answerQueries</a></div><div class="ttdeci">virtual void answerQueries(PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8cpp_source.html#l00025">DDAClient.cpp:25</a></div></div>
|
|
109
108
|
<div class="ttc" id="classSVF_1_1AliasDDAClient_html_aaad2197cec53f7eae91b3c57c168447a"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html#aaad2197cec53f7eae91b3c57c168447a">SVF::AliasDDAClient::storeDstNodes</a></div><div class="ttdeci">PAGNodeSet storeDstNodes</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00139">DDAClient.h:139</a></div></div>
|
|
110
109
|
<div class="ttc" id="classSVF_1_1DDAClient_html_a5e02fa3c1e6fbd5ed54038b1eaeeaaff"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a5e02fa3c1e6fbd5ed54038b1eaeeaaff">SVF::DDAClient::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdoc">SVFIR graph used by current DDA analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00088">DDAClient.h:88</a></div></div>
|
|
110
|
+
<div class="ttc" id="classSVF_1_1AliasDDAClient_html_a1eb12d17470a8b1ae7131470ace2daa2"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html#a1eb12d17470a8b1ae7131470ace2daa2">SVF::AliasDDAClient::VTablePtrToCallSiteMap</a></div><div class="ttdeci">OrderedMap< NodeID, const CallICFGNode * > VTablePtrToCallSiteMap</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00136">DDAClient.h:136</a></div></div>
|
|
111
111
|
<div class="ttc" id="classSVF_1_1AliasDDAClient_html_ab165537f4c9a318f31de8a272a529c9c"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html#ab165537f4c9a318f31de8a272a529c9c">SVF::AliasDDAClient::gepSrcNodes</a></div><div class="ttdeci">PAGNodeSet gepSrcNodes</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00140">DDAClient.h:140</a></div></div>
|
|
112
112
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
|
|
113
113
|
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|