svf-tools 1.0.558 → 1.0.561
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/README.md +1 -1
- package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +43 -43
- package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/Andersen_8h_source.html +56 -56
- package/SVF-doxygen/html/html/CFLGrammar_8txt.html +8 -8
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +10 -1
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +3 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +44 -44
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +43 -43
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +36 -36
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +21 -21
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +51 -51
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +51 -51
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +111 -111
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -2
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -2
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +40 -40
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +52 -52
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +42 -42
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +34 -34
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +114 -114
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +94 -94
- package/SVF-doxygen/html/html/MHP_8h_source.html +135 -135
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +33 -33
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +14 -14
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +28 -28
- package/SVF-doxygen/html/html/MTA_8h_source.html +24 -24
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +50 -50
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +93 -93
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +59 -59
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +103 -103
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +185 -185
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/PCG_8h_source.html +52 -52
- package/SVF-doxygen/html/html/PEGGrammar_8txt.html +14 -32
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +40 -40
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +181 -181
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +30 -30
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +60 -60
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +66 -66
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +6 -6
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +44 -44
- package/SVF-doxygen/html/html/TCT_8h_source.html +93 -93
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +25 -25
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +38 -38
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +13 -10
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +190 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +102 -102
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +100 -100
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +58 -58
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +165 -165
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +286 -286
- package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +40 -5
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +71 -71
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +218 -218
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +334 -334
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +246 -246
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +200 -200
- package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +181 -181
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +44 -44
- package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +267 -267
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +128 -128
- package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1MutableIncDFPTData.html +88 -88
- package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +78 -78
- package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +131 -131
- package/SVF-doxygen/html/html/classSVF_1_1PTData.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +107 -107
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +66 -66
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +84 -84
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +134 -134
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +161 -161
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGNodeLockSpan.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +157 -157
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +264 -264
- package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +100 -100
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
- package/SVF-doxygen/html/html/dda_8cpp.html +2 -2
- package/SVF-doxygen/html/html/dda_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/functions_a.html +11 -5
- package/SVF-doxygen/html/html/functions_c.html +21 -18
- package/SVF-doxygen/html/html/functions_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func.html +16 -10
- package/SVF-doxygen/html/html/functions_func_c.html +19 -16
- package/SVF-doxygen/html/html/functions_func_i.html +11 -8
- package/SVF-doxygen/html/html/functions_i.html +11 -8
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- package/SVF-doxygen/html/html/functions_p.html +6 -6
- package/SVF-doxygen/html/html/functions_r.html +3 -7
- package/SVF-doxygen/html/html/functions_s.html +16 -14
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_w.html +11 -11
- package/SVF-doxygen/html/html/globals_g.html +3 -3
- package/SVF-doxygen/html/html/globals_v.html +1 -2
- package/SVF-doxygen/html/html/globals_vars.html +3 -4
- package/SVF-doxygen/html/html/mta_8cpp.html +2 -2
- package/SVF-doxygen/html/html/mta_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
- package/SVF-doxygen/html/html/search/all_1.js +2 -0
- package/SVF-doxygen/html/html/search/all_10.js +5 -5
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +8 -8
- package/SVF-doxygen/html/html/search/all_13.js +2 -2
- package/SVF-doxygen/html/html/search/all_14.js +1 -1
- package/SVF-doxygen/html/html/search/all_15.js +4 -4
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_3.js +1 -0
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +2 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/functions_0.js +2 -0
- package/SVF-doxygen/html/html/search/functions_2.js +1 -0
- package/SVF-doxygen/html/html/search/functions_8.js +1 -0
- package/SVF-doxygen/html/html/search/variables_13.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +2 -2
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +15 -15
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
- 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/CFL/CFLGraphBuilder.h +9 -0
- package/include/CFL/PEGGrammar.txt +4 -8
- package/include/DDA/ContextDDA.h +29 -0
- package/include/DDA/DDAClient.h +23 -0
- package/include/DDA/DDAPass.h +22 -0
- package/include/DDA/DDAStat.h +22 -0
- package/include/DDA/DDAVFSolver.h +22 -0
- package/include/DDA/FlowDDA.h +29 -0
- package/include/MSSA/MSSAMuChi.h +1 -1
- package/include/MSSA/MemPartition.h +1 -1
- package/include/MSSA/MemRegion.h +5 -1
- package/include/MSSA/MemSSA.h +7 -1
- package/include/MSSA/SVFGBuilder.h +1 -1
- package/include/MTA/FSMPTA.h +26 -0
- package/include/MTA/LockAnalysis.h +22 -0
- package/include/MTA/MHP.h +22 -0
- package/include/MTA/MTA.h +27 -1
- package/include/MTA/MTAStat.h +22 -0
- package/include/MTA/PCG.h +22 -0
- package/include/MTA/TCT.h +22 -0
- package/include/MemoryModel/AbstractPointsToDS.h +34 -0
- package/include/MemoryModel/ConditionalPT.h +1 -1
- package/include/MemoryModel/LocationSet.h +1 -1
- package/include/MemoryModel/MutablePointsToDS.h +32 -0
- package/include/MemoryModel/PAGBuilderFromFile.h +2 -2
- package/include/MemoryModel/PersistentPointsToCache.h +3 -1
- package/include/MemoryModel/PersistentPointsToDS.h +10 -0
- package/include/MemoryModel/PointerAnalysis.h +1 -1
- package/include/MemoryModel/PointerAnalysisImpl.h +1 -1
- package/include/MemoryModel/SVFStatements.h +1 -1
- package/include/SABER/DoubleFreeChecker.h +1 -1
- package/include/SABER/FileChecker.h +1 -1
- package/include/SABER/LeakChecker.h +1 -1
- package/include/SABER/ProgSlice.h +8 -1
- package/include/SABER/SaberAnnotator.h +1 -1
- package/include/SABER/SaberCheckerAPI.h +1 -1
- package/include/SABER/SaberCondAllocator.h +1 -1
- package/include/SABER/SaberSVFGBuilder.h +1 -1
- package/include/SABER/SrcSnkDDA.h +8 -1
- package/include/SABER/SrcSnkSolver.h +1 -1
- package/include/Util/ExtAPI.h +3 -0
- package/include/Util/ExtAPI.json +1456 -44
- package/include/WPA/Andersen.h +5 -0
- package/include/WPA/TypeAnalysis.h +1 -1
- package/include/WPA/VersionedFlowSensitive.h +4 -0
- package/lib/CFL/CFLGraphBuilder.cpp +44 -0
- package/lib/DDA/ContextDDA.cpp +22 -0
- package/lib/DDA/DDAClient.cpp +22 -0
- package/lib/DDA/DDAPass.cpp +23 -0
- package/lib/DDA/DDAStat.cpp +22 -0
- package/lib/DDA/FlowDDA.cpp +22 -0
- package/lib/MTA/FSMPTA.cpp +22 -0
- package/lib/MTA/LockAnalysis.cpp +22 -0
- package/lib/MTA/MHP.cpp +23 -1
- package/lib/MTA/MTA.cpp +23 -0
- package/lib/MTA/MTAStat.cpp +22 -0
- package/lib/MTA/PCG.cpp +22 -0
- package/lib/MTA/TCT.cpp +23 -0
- package/lib/MemoryModel/LocationSet.cpp +1 -1
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +23 -0
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/FileChecker.cpp +1 -1
- package/lib/SABER/LeakChecker.cpp +1 -1
- package/lib/SABER/ProgSlice.cpp +1 -1
- package/lib/SABER/SaberAnnotator.cpp +1 -1
- package/lib/SABER/SaberCheckerAPI.cpp +1 -1
- package/lib/SABER/SaberCondAllocator.cpp +1 -1
- package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
- package/lib/SABER/SrcSnkDDA.cpp +1 -1
- package/lib/Util/ExtAPI.cpp +42 -4
- package/lib/WPA/Steensgaard.cpp +22 -0
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/WPAPass.cpp +1 -1
- package/package.json +1 -1
|
@@ -787,7 +787,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
787
787
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
788
788
|
<div class="textblock"><p>Flow sensitive demand-driven analysis on value-flow graph </p>
|
|
789
789
|
|
|
790
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
790
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00053">53</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
791
791
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
792
792
|
<a id="a5a5548577e4a3e225185c4001386fc84"></a>
|
|
793
793
|
<h2 class="memtitle"><span class="permalink"><a href="#a5a5548577e4a3e225185c4001386fc84">◆ </a></span>CallEdgeMap</h2>
|
|
@@ -801,7 +801,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
801
801
|
</table>
|
|
802
802
|
</div><div class="memdoc">
|
|
803
803
|
|
|
804
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
804
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00058">58</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
805
805
|
|
|
806
806
|
</div>
|
|
807
807
|
</div>
|
|
@@ -817,7 +817,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
817
817
|
</table>
|
|
818
818
|
</div><div class="memdoc">
|
|
819
819
|
|
|
820
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
820
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00057">57</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
821
821
|
|
|
822
822
|
</div>
|
|
823
823
|
</div>
|
|
@@ -833,7 +833,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
833
833
|
</table>
|
|
834
834
|
</div><div class="memdoc">
|
|
835
835
|
|
|
836
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
836
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00059">59</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
837
837
|
|
|
838
838
|
</div>
|
|
839
839
|
</div>
|
|
@@ -874,10 +874,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
874
874
|
|
|
875
875
|
<p>Constructor. </p>
|
|
876
876
|
|
|
877
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
878
|
-
<div class="fragment"><div class="line"><a name="
|
|
879
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
880
|
-
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ab0e1242aadfe1e16a2bd1445658a5476"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">SVF::BVDataPTAImpl::BVDataPTAImpl</a></div><div class="ttdeci">BVDataPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#
|
|
877
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00061">61</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
878
|
+
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  : <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">BVDataPTAImpl</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">PointerAnalysis::FlowS_DDA</a>),</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  DDAVFSolver<NodeID,PointsTo,LocDPItem>(),</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1FlowDDA.html#a0e10ce1de61977d2fbb3ad2f64df64b9">_client</a>(client)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div><div class="ttc" id="classSVF_1_1FlowDDA_html_a0e10ce1de61977d2fbb3ad2f64df64b9"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a0e10ce1de61977d2fbb3ad2f64df64b9">SVF::FlowDDA::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client. </div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#l00173">FlowDDA.h:173</a></div></div>
|
|
879
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
880
|
+
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ab0e1242aadfe1e16a2bd1445658a5476"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">SVF::BVDataPTAImpl::BVDataPTAImpl</a></div><div class="ttdeci">BVDataPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00048">PointerAnalysisImpl.cpp:48</a></div></div>
|
|
881
881
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">SVF::PointerAnalysis::FlowS_DDA</a></div><div class="ttdoc">Flow sensitive DDA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00084">PointerAnalysis.h:84</a></div></div>
|
|
882
882
|
</div><!-- fragment -->
|
|
883
883
|
</div>
|
|
@@ -907,8 +907,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
907
907
|
|
|
908
908
|
<p>Destructor. </p>
|
|
909
909
|
|
|
910
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
911
|
-
<div class="fragment"><div class="line"><a name="
|
|
910
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00067">67</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
911
|
+
<div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div></div><!-- fragment -->
|
|
912
912
|
</div>
|
|
913
913
|
</div>
|
|
914
914
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
@@ -939,8 +939,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
939
939
|
|
|
940
940
|
<p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#ae1e217dc18be0ce70bee5ad930cb54c6">SVF::PointerAnalysis</a>.</p>
|
|
941
941
|
|
|
942
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
943
|
-
<div class="fragment"><div class="line"><a name="
|
|
942
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00071">71</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
943
|
+
<div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {}</div></div><!-- fragment -->
|
|
944
944
|
</div>
|
|
945
945
|
</div>
|
|
946
946
|
<a id="a113faa56ee75eff39da19fd4b47a47e0"></a>
|
|
@@ -973,30 +973,30 @@ Additional Inherited Members</h2></td></tr>
|
|
|
973
973
|
|
|
974
974
|
<p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#a0bb90b398ef85504bcd816ae57bee01d">SVF::PointerAnalysis</a>.</p>
|
|
975
975
|
|
|
976
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#
|
|
977
|
-
<div class="fragment"><div class="line"><a name="
|
|
978
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
979
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_ac3189db5d8e17f64fdfcc9b040cf6100"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">SVF::DDAStat::_TotalTimeOfQueries</a></div><div class="ttdeci">double _TotalTimeOfQueries</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
980
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
981
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afe518d3d7f8051de5b9860f2460aa1b7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afe518d3d7f8051de5b9860f2460aa1b7">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::resetQuery</a></div><div class="ttdeci">virtual void resetQuery()</div><div class="ttdoc">Reset visited map for next points-to query. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
976
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#l00043">43</a> of file <a class="el" href="FlowDDA_8cpp_source.html">FlowDDA.cpp</a>.</p>
|
|
977
|
+
<div class="fragment"><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>  <a class="code" href="classSVF_1_1DDAVFSolver.html#afe518d3d7f8051de5b9860f2460aa1b7">resetQuery</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1DPItem.html#a687ef8944ccb55b826508c47ea5b9240">LocDPItem::setMaxBudget</a>(<a class="code" href="classSVF_1_1Options.html#a53b1a1ec4e5bbd9696ed9b680aa0c3c7">Options::FlowBudget</a>);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1StmtDPItem.html">LocDPItem</a> dpm = <a class="code" href="classSVF_1_1DDAVFSolver.html#ad7d92fad8606d5512786a7b7a08930e2">getDPIm</a>(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),<a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(node));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dpm);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a> = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>(<span class="keyword">true</span>) - start);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a> += <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a>);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a7994236bff84ba8244592fdf5e546734">isOutOfBudgetQuery</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a>(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),pts);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1FlowDDA.html#a8930c3b8f3b58dca8da6017310bb74ae">handleOutOfBudgetDpm</a>(dpm);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">if</span>(this-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ab03780f736bed7861c9be14637e37ba3">performStatPerQuery</a>(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>,<a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#a2dd8ce8bb1970344533babb9fc8ddd02">printStatPerQuery</a>(<span class="keywordtype">id</span>,<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(<span class="keywordtype">id</span>)));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div><div class="ttc" id="classSVF_1_1SVFStat_html_a2dd8ce8bb1970344533babb9fc8ddd02"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a2dd8ce8bb1970344533babb9fc8ddd02">SVF::SVFStat::printStatPerQuery</a></div><div class="ttdeci">virtual void printStatPerQuery(NodeID, const PointsTo &)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00085">SVFStat.h:85</a></div></div>
|
|
978
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
979
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_ac3189db5d8e17f64fdfcc9b040cf6100"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">SVF::DDAStat::_TotalTimeOfQueries</a></div><div class="ttdeci">double _TotalTimeOfQueries</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00063">DDAStat.h:63</a></div></div>
|
|
980
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00342">DDAVFSolver.h:342</a></div></div>
|
|
981
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afe518d3d7f8051de5b9860f2460aa1b7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afe518d3d7f8051de5b9860f2460aa1b7">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::resetQuery</a></div><div class="ttdeci">virtual void resetQuery()</div><div class="ttdoc">Reset visited map for next points-to query. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00319">DDAVFSolver.h:319</a></div></div>
|
|
982
982
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4880571f57542afc50da506dfe273183"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">SVF::PointerAnalysis::printStat</a></div><div class="ttdeci">bool printStat()</div><div class="ttdoc">Whether print statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00362">PointerAnalysis.h:362</a></div></div>
|
|
983
|
-
<div class="ttc" id="classSVF_1_1FlowDDA_html_a8930c3b8f3b58dca8da6017310bb74ae"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a8930c3b8f3b58dca8da6017310bb74ae">SVF::FlowDDA::handleOutOfBudgetDpm</a></div><div class="ttdeci">void handleOutOfBudgetDpm(const LocDPItem &dpm)</div><div class="ttdoc">Handle out-of-budget dpm. </div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8cpp_source.html#
|
|
983
|
+
<div class="ttc" id="classSVF_1_1FlowDDA_html_a8930c3b8f3b58dca8da6017310bb74ae"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a8930c3b8f3b58dca8da6017310bb74ae">SVF::FlowDDA::handleOutOfBudgetDpm</a></div><div class="ttdeci">void handleOutOfBudgetDpm(const LocDPItem &dpm)</div><div class="ttdoc">Handle out-of-budget dpm. </div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8cpp_source.html#l00072">FlowDDA.cpp:72</a></div></div>
|
|
984
984
|
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
985
985
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ae7073c07bfd7912f888d54d4652c7cc2"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">SVF::BVDataPTAImpl::unionPts</a></div><div class="ttdeci">virtual bool unionPts(NodeID id, const PointsTo &target)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00124">PointerAnalysisImpl.h:124</a></div></div>
|
|
986
986
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ab03780f736bed7861c9be14637e37ba3"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ab03780f736bed7861c9be14637e37ba3">SVF::SVFStat::performStatPerQuery</a></div><div class="ttdeci">virtual void performStatPerQuery(NodeID)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00083">SVFStat.h:83</a></div></div>
|
|
987
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::findPT</a></div><div class="ttdeci">virtual const PointsTo & findPT(const LocDPItem &dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
987
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::findPT</a></div><div class="ttdeci">virtual const PointsTo & findPT(const LocDPItem &dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00138">DDAVFSolver.h:138</a></div></div>
|
|
988
988
|
<div class="ttc" id="classSVF_1_1DPItem_html_a687ef8944ccb55b826508c47ea5b9240"><div class="ttname"><a href="classSVF_1_1DPItem.html#a687ef8944ccb55b826508c47ea5b9240">SVF::DPItem::setMaxBudget</a></div><div class="ttdeci">static void setMaxBudget(u32_t max)</div><div class="ttdoc">set max step budge per query </div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00086">DPItem.h:86</a></div></div>
|
|
989
989
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
990
990
|
<div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
|
|
991
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad7d92fad8606d5512786a7b7a08930e2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad7d92fad8606d5512786a7b7a08930e2">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getDPIm</a></div><div class="ttdeci">virtual LocDPItem getDPIm(const NodeID &var, const SVFGNode *loc) const</div><div class="ttdoc">Given CVar and location (SVFGNode) return a new DPItem. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
991
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad7d92fad8606d5512786a7b7a08930e2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad7d92fad8606d5512786a7b7a08930e2">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getDPIm</a></div><div class="ttdeci">virtual LocDPItem getDPIm(const NodeID &var, const SVFGNode *loc) const</div><div class="ttdoc">Given CVar and location (SVFGNode) return a new DPItem. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00096">DDAVFSolver.h:96</a></div></div>
|
|
992
992
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
993
993
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00041">SVFStat.cpp:41</a></div></div>
|
|
994
994
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
995
995
|
<div class="ttc" id="classSVF_1_1Options_html_a53b1a1ec4e5bbd9696ed9b680aa0c3c7"><div class="ttname"><a href="classSVF_1_1Options.html#a53b1a1ec4e5bbd9696ed9b680aa0c3c7">SVF::Options::FlowBudget</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned long long > FlowBudget</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00106">Options.h:106</a></div></div>
|
|
996
996
|
<div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00160">SVFBasicTypes.h:160</a></div></div>
|
|
997
997
|
<div class="ttc" id="classSVF_1_1StmtDPItem_html"><div class="ttname"><a href="classSVF_1_1StmtDPItem.html">SVF::StmtDPItem</a></div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00131">DPItem.h:131</a></div></div>
|
|
998
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7994236bff84ba8244592fdf5e546734"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7994236bff84ba8244592fdf5e546734">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::isOutOfBudgetQuery</a></div><div class="ttdeci">bool isOutOfBudgetQuery() const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
999
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a2b788792447d4bccceff2426b45a21b2"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">SVF::DDAStat::_AnaTimePerQuery</a></div><div class="ttdeci">double _AnaTimePerQuery</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
998
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7994236bff84ba8244592fdf5e546734"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7994236bff84ba8244592fdf5e546734">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::isOutOfBudgetQuery</a></div><div class="ttdeci">bool isOutOfBudgetQuery() const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00733">DDAVFSolver.h:733</a></div></div>
|
|
999
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a2b788792447d4bccceff2426b45a21b2"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">SVF::DDAStat::_AnaTimePerQuery</a></div><div class="ttdeci">double _AnaTimePerQuery</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00061">DDAStat.h:61</a></div></div>
|
|
1000
1000
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
|
|
1001
1001
|
<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#l00391">GenericGraph.h:391</a></div></div>
|
|
1002
1002
|
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
@@ -1032,8 +1032,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1032
1032
|
|
|
1033
1033
|
<p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">SVF::BVDataPTAImpl</a>.</p>
|
|
1034
1034
|
|
|
1035
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1036
|
-
<div class="fragment"><div class="line"><a name="
|
|
1035
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00096">96</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1036
|
+
<div class="fragment"><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">BVDataPTAImpl::finalize</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a57ff2bf45ede7a730a8adaba8e61179d"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">SVF::BVDataPTAImpl::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00095">PointerAnalysisImpl.cpp:95</a></div></div>
|
|
1037
1037
|
</div><!-- fragment -->
|
|
1038
1038
|
</div>
|
|
1039
1039
|
</div>
|
|
@@ -1065,8 +1065,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1065
1065
|
|
|
1066
1066
|
<p>Reimplemented from <a class="el" href="classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem ></a>.</p>
|
|
1067
1067
|
|
|
1068
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1069
|
-
<div class="fragment"><div class="line"><a name="
|
|
1068
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00154">154</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1069
|
+
<div class="fragment"><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(dpm.getCurNodeID());</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
1070
1070
|
</div><!-- fragment -->
|
|
1071
1071
|
</div>
|
|
1072
1072
|
</div>
|
|
@@ -1098,9 +1098,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1098
1098
|
|
|
1099
1099
|
<p>Implements <a class="el" href="classSVF_1_1DDAVFSolver.html#a38f5a6b666b2a427d55f1217f9c5595f">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem ></a>.</p>
|
|
1100
1100
|
|
|
1101
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1102
|
-
<div class="fragment"><div class="line"><a name="
|
|
1103
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac39860015b45b9af6351d0343f8983bb"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getAndersenAnalysis</a></div><div class="ttdeci">AndersenWaveDiff * getAndersenAnalysis() const</div><div class="ttdoc">Return Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1101
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00109">109</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1102
|
+
<div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">getAndersenAnalysis</a>()-><a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(dpm.getCurNodeID());</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00213">Andersen.h:213</a></div></div>
|
|
1103
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac39860015b45b9af6351d0343f8983bb"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getAndersenAnalysis</a></div><div class="ttdeci">AndersenWaveDiff * getAndersenAnalysis() const</div><div class="ttdoc">Return Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00718">DDAVFSolver.h:718</a></div></div>
|
|
1104
1104
|
</div><!-- fragment -->
|
|
1105
1105
|
</div>
|
|
1106
1106
|
</div>
|
|
@@ -1132,8 +1132,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1132
1132
|
|
|
1133
1133
|
<p>Implements <a class="el" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem ></a>.</p>
|
|
1134
1134
|
|
|
1135
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1136
|
-
<div class="fragment"><div class="line"><a name="
|
|
1135
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00114">114</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1136
|
+
<div class="fragment"><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>  <span class="keywordflow">return</span> var;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div></div><!-- fragment -->
|
|
1137
1137
|
</div>
|
|
1138
1138
|
</div>
|
|
1139
1139
|
<a id="a1b8d66dbe8c6587e74d70f5d231eb69d"></a>
|
|
@@ -1181,11 +1181,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1181
1181
|
|
|
1182
1182
|
<p>Implements <a class="el" href="classSVF_1_1DDAVFSolver.html#acfe7d961caac8f0f558881a9a006b1fa">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem ></a>.</p>
|
|
1183
1183
|
|
|
1184
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1185
|
-
<div class="fragment"><div class="line"><a name="
|
|
1184
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00119">119</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1185
|
+
<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcID = addr->getPAGSrcNodeID();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(srcID))</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  srcID = <a class="code" href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">getFIObjVar</a>(srcID);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a5a8632a957fce63f186dd8b657566dd2">addDDAPts</a>(pts,srcID);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t add points-to target "</span> << srcID << <span class="stringliteral">" to dpm "</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
1186
1186
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
1187
1187
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1188
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5a8632a957fce63f186dd8b657566dd2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5a8632a957fce63f186dd8b657566dd2">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::addDDAPts</a></div><div class="ttdeci">virtual void addDDAPts(PointsTo &pts, const NodeID &var)</div><div class="ttdoc">Add pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1188
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5a8632a957fce63f186dd8b657566dd2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5a8632a957fce63f186dd8b657566dd2">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::addDDAPts</a></div><div class="ttdeci">virtual void addDDAPts(PointsTo &pts, const NodeID &var)</div><div class="ttdoc">Add pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00113">DDAVFSolver.h:113</a></div></div>
|
|
1189
1189
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0f71e4cd0948b294c7d33a690bde7dbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">SVF::PointerAnalysis::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00354">PointerAnalysis.h:354</a></div></div>
|
|
1190
1190
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
1191
1191
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a68b05bc02c5473c1e0d39ac4f4454bac"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">SVF::PointerAnalysis::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00337">PointerAnalysis.h:337</a></div></div>
|
|
@@ -1230,9 +1230,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1230
1230
|
|
|
1231
1231
|
<p>Reimplemented from <a class="el" href="classSVF_1_1DDAVFSolver.html#a601282325e55badc15f3ba9141816af5">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem ></a>.</p>
|
|
1232
1232
|
|
|
1233
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#
|
|
1234
|
-
<div class="fragment"><div class="line"><a name="
|
|
1235
|
-
<div class="ttc" id="classSVF_1_1DDAClient_html_aec3de00152e828beb5037269430f387d"><div class="ttname"><a href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d">SVF::DDAClient::handleStatement</a></div><div class="ttdeci">virtual void handleStatement(const SVFGNode *, NodeID)</div><div class="ttdoc">Call back used by DDAVFSolver. </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#
|
|
1233
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#l00102">102</a> of file <a class="el" href="FlowDDA_8cpp_source.html">FlowDDA.cpp</a>.</p>
|
|
1234
|
+
<div class="fragment"><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>  <a class="code" href="classSVF_1_1FlowDDA.html#a0e10ce1de61977d2fbb3ad2f64df64b9">_client</a>-><a class="code" href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d">handleStatement</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(), dpm.<a class="code" href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">getCurNodeID</a>());</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// CallSiteID csId = 0;</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">//</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// if (edge->isCallVFGEdge()) {</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// /// we don't handle context in recursions, they treated as assignments</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// if (const CallDirSVFGEdge* callEdge = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge))</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// csId = callEdge->getCallSiteId();</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// else</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// csId = SVFUtil::cast<CallIndSVFGEdge>(edge)->getCallSiteId();</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">//</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// const SVFFunction* callee = edge->getDstNode()->getBB()->getParent();</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// if(testIndCallReachability(dpm,callee,csId)==false){</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// return false;</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// }</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">//</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// }</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">//</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// else if (edge->isRetVFGEdge()) {</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// /// we don't handle context in recursions, they treated as assignments</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// if (const RetDirSVFGEdge* retEdge = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge))</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// csId = retEdge->getCallSiteId();</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// else</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// csId = SVFUtil::cast<RetIndSVFGEdge>(edge)->getCallSiteId();</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">//</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// const SVFFunction* callee = edge->getSrcNode()->getBB()->getParent();</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// if(testIndCallReachability(dpm,callee,csId)==false){</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// return false;</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// }</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">//</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// }</span></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="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> }</div><div class="ttc" id="classSVF_1_1FlowDDA_html_a0e10ce1de61977d2fbb3ad2f64df64b9"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a0e10ce1de61977d2fbb3ad2f64df64b9">SVF::FlowDDA::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client. </div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#l00173">FlowDDA.h:173</a></div></div>
|
|
1235
|
+
<div class="ttc" id="classSVF_1_1DDAClient_html_aec3de00152e828beb5037269430f387d"><div class="ttname"><a href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d">SVF::DDAClient::handleStatement</a></div><div class="ttdeci">virtual void handleStatement(const SVFGNode *, NodeID)</div><div class="ttdoc">Call back used by DDAVFSolver. </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00077">DDAClient.h:77</a></div></div>
|
|
1236
1236
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
1237
1237
|
<div class="ttc" id="classSVF_1_1DPItem_html_a03a90eca842c0e83d874902103f6fdb2"><div class="ttname"><a href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">SVF::DPItem::getCurNodeID</a></div><div class="ttdeci">NodeID getCurNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00077">DPItem.h:77</a></div></div>
|
|
1238
1238
|
</div><!-- fragment -->
|
|
@@ -1257,15 +1257,15 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1257
1257
|
<p>Handle out-of-budget dpm. </p>
|
|
1258
1258
|
<p>Handle out-of-budget dpm </p>
|
|
1259
1259
|
|
|
1260
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#
|
|
1261
|
-
<div class="fragment"><div class="line"><a name="
|
|
1260
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#l00072">72</a> of file <a class="el" href="FlowDDA_8cpp_source.html">FlowDDA.cpp</a>.</p>
|
|
1261
|
+
<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"~~~Out of budget query, downgrade to andersen analysis \n"</span>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& anderPts = <a class="code" href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">getAndersenAnalysis</a>()-><a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(dpm.<a class="code" href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">getCurNodeID</a>());</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">updateCachedPointsTo</a>(dpm,anderPts);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a>(dpm.<a class="code" href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">getCurNodeID</a>(),anderPts);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ae1e77060ac22d465b5cc9430962e280c">addOutOfBudgetDpm</a>(dpm);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div><div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00213">Andersen.h:213</a></div></div>
|
|
1262
1262
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ae7073c07bfd7912f888d54d4652c7cc2"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">SVF::BVDataPTAImpl::unionPts</a></div><div class="ttdeci">virtual bool unionPts(NodeID id, const PointsTo &target)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00124">PointerAnalysisImpl.h:124</a></div></div>
|
|
1263
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac39860015b45b9af6351d0343f8983bb"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getAndersenAnalysis</a></div><div class="ttdeci">AndersenWaveDiff * getAndersenAnalysis() const</div><div class="ttdoc">Return Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1264
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a239a55960dfbbe73df63063070a18b56"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::updateCachedPointsTo</a></div><div class="ttdeci">virtual void updateCachedPointsTo(const LocDPItem &dpm, const PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1263
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac39860015b45b9af6351d0343f8983bb"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getAndersenAnalysis</a></div><div class="ttdeci">AndersenWaveDiff * getAndersenAnalysis() const</div><div class="ttdoc">Return Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00718">DDAVFSolver.h:718</a></div></div>
|
|
1264
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a239a55960dfbbe73df63063070a18b56"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::updateCachedPointsTo</a></div><div class="ttdeci">virtual void updateCachedPointsTo(const LocDPItem &dpm, const PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00561">DDAVFSolver.h:561</a></div></div>
|
|
1265
1265
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1266
1266
|
<div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00160">SVFBasicTypes.h:160</a></div></div>
|
|
1267
1267
|
<div class="ttc" id="classSVF_1_1DPItem_html_a03a90eca842c0e83d874902103f6fdb2"><div class="ttname"><a href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">SVF::DPItem::getCurNodeID</a></div><div class="ttdeci">NodeID getCurNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00077">DPItem.h:77</a></div></div>
|
|
1268
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae1e77060ac22d465b5cc9430962e280c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae1e77060ac22d465b5cc9430962e280c">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::addOutOfBudgetDpm</a></div><div class="ttdeci">void addOutOfBudgetDpm(const LocDPItem &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1268
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae1e77060ac22d465b5cc9430962e280c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae1e77060ac22d465b5cc9430962e280c">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::addOutOfBudgetDpm</a></div><div class="ttdeci">void addOutOfBudgetDpm(const LocDPItem &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00737">DDAVFSolver.h:737</a></div></div>
|
|
1269
1269
|
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
1270
1270
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
1271
1271
|
</div><!-- fragment -->
|
|
@@ -1298,16 +1298,16 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1298
1298
|
|
|
1299
1299
|
<p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis</a>.</p>
|
|
1300
1300
|
|
|
1301
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1302
|
-
<div class="fragment"><div class="line"><a name="
|
|
1303
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afc2b0eeb1d5d5f292690f3c949217c38"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afc2b0eeb1d5d5f292690f3c949217c38">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::setCallGraph</a></div><div class="ttdeci">void setCallGraph(PTACallGraph *cg)</div><div class="ttdoc">Set callgraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1304
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af34ed8482d3737a8aaaff2d5c75960ec"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af34ed8482d3737a8aaaff2d5c75960ec">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG(SVFIR *pag)</div><div class="ttdoc">Build SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1301
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00086">86</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1302
|
+
<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">BVDataPTAImpl::initialize</a>();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#af34ed8482d3737a8aaaff2d5c75960ec">buildSVFG</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#afc2b0eeb1d5d5f292690f3c949217c38">setCallGraph</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>());</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#abd652b2627f68d7d4f8bf3bdb20ce975">setCallGraphSCC</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a0bddf297a2d8cd59ce9a232f0229f248">getCallGraphSCC</a>());</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a> = <a class="code" href="classSVF_1_1DDAVFSolver.html#adcb641eec4f620effdb3f61a46429f40">setDDAStat</a>(<span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#af83f88f2ae2456f2691e8822d56b1598">DDAStat</a>(<span class="keyword">this</span>));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_af83f88f2ae2456f2691e8822d56b1598"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af83f88f2ae2456f2691e8822d56b1598">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::DDAStat</a></div><div class="ttdeci">friend class DDAStat</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00049">DDAVFSolver.h:49</a></div></div>
|
|
1303
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afc2b0eeb1d5d5f292690f3c949217c38"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afc2b0eeb1d5d5f292690f3c949217c38">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::setCallGraph</a></div><div class="ttdeci">void setCallGraph(PTACallGraph *cg)</div><div class="ttdoc">Set callgraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00628">DDAVFSolver.h:628</a></div></div>
|
|
1304
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af34ed8482d3737a8aaaff2d5c75960ec"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af34ed8482d3737a8aaaff2d5c75960ec">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG(SVFIR *pag)</div><div class="ttdoc">Build SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00312">DDAVFSolver.h:312</a></div></div>
|
|
1305
1305
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
|
|
1306
1306
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0bddf297a2d8cd59ce9a232f0229f248"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0bddf297a2d8cd59ce9a232f0229f248">SVF::PointerAnalysis::getCallGraphSCC</a></div><div class="ttdeci">CallGraphSCC * getCallGraphSCC() const</div><div class="ttdoc">Return call graph SCC. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00179">PointerAnalysis.h:179</a></div></div>
|
|
1307
1307
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
1308
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_adcb641eec4f620effdb3f61a46429f40"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#adcb641eec4f620effdb3f61a46429f40">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::setDDAStat</a></div><div class="ttdeci">DDAStat * setDDAStat(DDAStat *s)</div><div class="ttdoc">Set DDAStat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1308
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_adcb641eec4f620effdb3f61a46429f40"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#adcb641eec4f620effdb3f61a46429f40">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::setDDAStat</a></div><div class="ttdeci">DDAStat * setDDAStat(DDAStat *s)</div><div class="ttdoc">Set DDAStat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00748">DDAVFSolver.h:748</a></div></div>
|
|
1309
1309
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00142">PointerAnalysis.h:142</a></div></div>
|
|
1310
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_abd652b2627f68d7d4f8bf3bdb20ce975"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abd652b2627f68d7d4f8bf3bdb20ce975">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::setCallGraphSCC</a></div><div class="ttdeci">void setCallGraphSCC(CallGraphSCC *scc)</div><div class="ttdoc">Set callgraphSCC. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1310
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_abd652b2627f68d7d4f8bf3bdb20ce975"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abd652b2627f68d7d4f8bf3bdb20ce975">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::setCallGraphSCC</a></div><div class="ttdeci">void setCallGraphSCC(CallGraphSCC *scc)</div><div class="ttdoc">Set callgraphSCC. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00633">DDAVFSolver.h:633</a></div></div>
|
|
1311
1311
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a431ec4f85eb0f029e5740b92fd9ceb32"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialization of a pointer analysis, including building symbol table and SVFIR etc. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00111">PointerAnalysis.cpp:111</a></div></div>
|
|
1312
1312
|
</div><!-- fragment -->
|
|
1313
1313
|
</div>
|
|
@@ -1349,10 +1349,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1349
1349
|
|
|
1350
1350
|
<p>Reimplemented from <a class="el" href="classSVF_1_1DDAVFSolver.html#a645c7d0637b49e139898016ff652e1f3">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem ></a>.</p>
|
|
1351
1351
|
|
|
1352
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#
|
|
1353
|
-
<div class="fragment"><div class="line"><a name="
|
|
1354
|
-
<div class="ttc" id="classSVF_1_1FlowDDA_html_a9749c82c1164adb17e2ae53e725ded9a"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a9749c82c1164adb17e2ae53e725ded9a">SVF::FlowDDA::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const NodeID &var) const override</div><div class="ttdoc">Override parent method. </div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#
|
|
1355
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1352
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#l00177">177</a> of file <a class="el" href="FlowDDA_8cpp_source.html">FlowDDA.cpp</a>.</p>
|
|
1353
|
+
<div class="fragment"><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="classSVF_1_1FlowDDA.html#a9749c82c1164adb17e2ae53e725ded9a">getPtrNodeID</a>(var));</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  assert(mem && <span class="stringliteral">"memory object is null??"</span>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">isHeap</a>())</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// if(const Instruction* mallocSite = SVFUtil::dyn_cast<Instruction>(mem->getValue())) {</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// const SVFFunction* fun = mallocSite->getParent()->getParent();</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// const SVFFunction* curFun = store->getBB() ? store->getBB()->getParent() : nullptr;</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// if(fun!=curFun)</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// return true;</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// if(_callGraphSCC->isInCycle(_callGraph->getCallGraphNode(fun)->getId()))</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// return true;</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// if(_pag->getICFG()->isInLoop(mallocSite))</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// return true;</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">//</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment">// return false;</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">// }</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> }</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00378">SymbolTableInfo.h:378</a></div></div>
|
|
1354
|
+
<div class="ttc" id="classSVF_1_1FlowDDA_html_a9749c82c1164adb17e2ae53e725ded9a"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a9749c82c1164adb17e2ae53e725ded9a">SVF::FlowDDA::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const NodeID &var) const override</div><div class="ttdoc">Override parent method. </div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#l00114">FlowDDA.h:114</a></div></div>
|
|
1355
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
1356
1356
|
<div class="ttc" id="classSVF_1_1MemObj_html_a898c5bb3956402578266a6fb142e02b1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">SVF::MemObj::isHeap</a></div><div class="ttdeci">bool isHeap() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00769">SymbolTableInfo.cpp:769</a></div></div>
|
|
1357
1357
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00344">SVFIR.h:344</a></div></div>
|
|
1358
1358
|
</div><!-- fragment -->
|
|
@@ -1397,8 +1397,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1397
1397
|
|
|
1398
1398
|
<p>Implements <a class="el" href="classSVF_1_1DDAVFSolver.html#ab10a34efa1acb6125ea32cf7a8cf919f">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem ></a>.</p>
|
|
1399
1399
|
|
|
1400
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#
|
|
1401
|
-
<div class="fragment"><div class="line"><a name="
|
|
1400
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#l00141">141</a> of file <a class="el" href="FlowDDA_8cpp_source.html">FlowDDA.cpp</a>.</p>
|
|
1401
|
+
<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> tmpDstPts;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = srcPts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(); piter != srcPts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>(); ++piter)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = *piter;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a45462312a746339fff8b990a093d9a1b">isBlkObjOrConstantObj</a>(ptd))</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  tmpDstPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(ptd);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* gepStmt = SVFUtil::cast<GepStmt>(gep-><a class="code" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>());</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">if</span> (gepStmt-><a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>())</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ac5683fe2e24b393ccc5cb6d8bc92cf2b">setObjFieldInsensitive</a>(ptd);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  tmpDstPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">getFIObjVar</a>(ptd));</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> fieldSrcPtdNode = <a class="code" href="classSVF_1_1PointerAnalysis.html#acbbc0934af9bc0145389dc41430c6d8b">getGepObjVar</a>(ptd, gepStmt-><a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>());</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  tmpDstPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(fieldSrcPtdNode);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t return created gep objs {"</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVFUtil::dumpSet</a>(srcPts));</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"} --> {"</span>);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVFUtil::dumpSet</a>(tmpDstPts));</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"}\n"</span>);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> tmpDstPts;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aeb570e9267fd7b189bd1bc877896d7ab"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVF::SVFUtil::dumpSet</a></div><div class="ttdeci">void dumpSet(NodeBS To, OutStream &O=SVFUtil::outs())</div><div class="ttdoc">Dump sparse bitvector set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00147">SVFUtil.cpp:147</a></div></div>
|
|
1402
1402
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
1403
1403
|
<div class="ttc" id="classSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00414">SVFStatements.h:414</a></div></div>
|
|
1404
1404
|
<div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
|
|
@@ -1446,8 +1446,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1446
1446
|
|
|
1447
1447
|
<p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0">SVF::PointerAnalysis</a>.</p>
|
|
1448
1448
|
|
|
1449
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1450
|
-
<div class="fragment"><div class="line"><a name="
|
|
1449
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00167">167</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1450
|
+
<div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> <span class="stringliteral">"FlowSensitive DDA"</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div></div><!-- fragment -->
|
|
1451
1451
|
</div>
|
|
1452
1452
|
</div>
|
|
1453
1453
|
<a id="ae48534b36222578855708c298f81f554"></a>
|
|
@@ -1484,15 +1484,15 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1484
1484
|
|
|
1485
1485
|
<p>refine indirect call edge </p>
|
|
1486
1486
|
|
|
1487
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#
|
|
1488
|
-
<div class="fragment"><div class="line"><a name="
|
|
1487
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#l00081">81</a> of file <a class="el" href="FlowDDA_8cpp_source.html">FlowDDA.cpp</a>.</p>
|
|
1488
|
+
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1VFG.html#a246cce511b8e9164a7c1760d1983f492">getCallSite</a>(csId);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()->isIndirectCallSites(cbn))</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#abdacd060691add054839aa183babe095">hasIndCSCallees</a>(cbn))</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowDDA.html#ae1ec4e6e9b967a7fd36c32f21e05ba11">FunctionSet</a>& funset = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#ac106536778c829d6925d6ed2149aeb44">getIndCSCallees</a>(cbn);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span>(funset.find(callee)!=funset.end())</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">else</span> <span class="comment">// if this is an direct call</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> }</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_abdacd060691add054839aa183babe095"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#abdacd060691add054839aa183babe095">SVF::PointerAnalysis::hasIndCSCallees</a></div><div class="ttdeci">bool hasIndCSCallees(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00379">PointerAnalysis.h:379</a></div></div>
|
|
1489
1489
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
|
|
1490
1490
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
1491
1491
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_ac106536778c829d6925d6ed2149aeb44"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ac106536778c829d6925d6ed2149aeb44">SVF::PTACallGraph::getIndCSCallees</a></div><div class="ttdeci">const FunctionSet & getIndCSCallees(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00288">PTACallGraph.h:288</a></div></div>
|
|
1492
1492
|
<div class="ttc" id="classSVF_1_1VFG_html_a246cce511b8e9164a7c1760d1983f492"><div class="ttname"><a href="classSVF_1_1VFG.html#a246cce511b8e9164a7c1760d1983f492">SVF::VFG::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite(CallSiteID id) const</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00182">VFG.h:182</a></div></div>
|
|
1493
|
-
<div class="ttc" id="classSVF_1_1FlowDDA_html_ae1ec4e6e9b967a7fd36c32f21e05ba11"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#ae1ec4e6e9b967a7fd36c32f21e05ba11">SVF::FlowDDA::FunctionSet</a></div><div class="ttdeci">BVDataPTAImpl::FunctionSet FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#
|
|
1493
|
+
<div class="ttc" id="classSVF_1_1FlowDDA_html_ae1ec4e6e9b967a7fd36c32f21e05ba11"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#ae1ec4e6e9b967a7fd36c32f21e05ba11">SVF::FlowDDA::FunctionSet</a></div><div class="ttdeci">BVDataPTAImpl::FunctionSet FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#l00059">FlowDDA.h:59</a></div></div>
|
|
1494
1494
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
|
|
1495
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1495
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
|
|
1496
1496
|
</div><!-- fragment -->
|
|
1497
1497
|
</div>
|
|
1498
1498
|
</div>
|
|
@@ -1534,10 +1534,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1534
1534
|
|
|
1535
1535
|
<p>Reimplemented from <a class="el" href="classSVF_1_1DDAVFSolver.html#ae7949e141978474f3b6cb510bacafa37">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem ></a>.</p>
|
|
1536
1536
|
|
|
1537
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1538
|
-
<div class="fragment"><div class="line"><a name="
|
|
1537
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00161">161</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1538
|
+
<div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">isTopLevelPtrStmt</a>(dpm.getLoc())) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a>(dpm.getCurNodeID(), targetPts);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">dpmToADCPtSetMap</a>[dpm] |= targetPts;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7b35588de00e322afd742041bf735571"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::isTopLevelPtrStmt</a></div><div class="ttdeci">bool isTopLevelPtrStmt(const SVFGNode *stmt)</div><div class="ttdoc">Whether this is a top-level pointer statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00581">DDAVFSolver.h:581</a></div></div>
|
|
1539
1539
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ae7073c07bfd7912f888d54d4652c7cc2"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">SVF::BVDataPTAImpl::unionPts</a></div><div class="ttdeci">virtual bool unionPts(NodeID id, const PointsTo &target)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00124">PointerAnalysisImpl.h:124</a></div></div>
|
|
1540
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2565bf8dcacb22350dc1dc98ec7595f2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::dpmToADCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToADCPtSetMap</div><div class="ttdoc">points-to caching map for address-taken vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1540
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2565bf8dcacb22350dc1dc98ec7595f2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::dpmToADCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToADCPtSetMap</div><div class="ttdoc">points-to caching map for address-taken vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00784">DDAVFSolver.h:784</a></div></div>
|
|
1541
1541
|
</div><!-- fragment -->
|
|
1542
1542
|
</div>
|
|
1543
1543
|
</div>
|
|
@@ -1585,13 +1585,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1585
1585
|
|
|
1586
1586
|
<p>Reimplemented from <a class="el" href="classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem ></a>.</p>
|
|
1587
1587
|
|
|
1588
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1589
|
-
<div class="fragment"><div class="line"><a name="
|
|
1590
|
-
<div class="ttc" id="classSVF_1_1FlowDDA_html_a5a5548577e4a3e225185c4001386fc84"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a5a5548577e4a3e225185c4001386fc84">SVF::FlowDDA::CallEdgeMap</a></div><div class="ttdeci">BVDataPTAImpl::CallEdgeMap CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#
|
|
1591
|
-
<div class="ttc" id="classSVF_1_1FlowDDA_html_ae1ec4e6e9b967a7fd36c32f21e05ba11"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#ae1ec4e6e9b967a7fd36c32f21e05ba11">SVF::FlowDDA::FunctionSet</a></div><div class="ttdeci">BVDataPTAImpl::FunctionSet FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#
|
|
1592
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae31e9281e4f1e0585fdf328b7339e1bf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getCachedPointsTo</a></div><div class="ttdeci">virtual const PointsTo & getCachedPointsTo(const LocDPItem &dpm)</div><div class="ttdoc">Points-to Caching for top-level pointers and address-taken objects. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1588
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00135">135</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1589
|
+
<div class="fragment"><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1FlowDDA.html#a5a5548577e4a3e225185c4001386fc84">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">resolveIndCalls</a>(cs, <a class="code" href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">getCachedPointsTo</a>(dpm), newEdges);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">for</span> (CallEdgeMap::const_iterator iter = newEdges.begin(),eiter = newEdges.end(); iter != eiter; iter++)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">const</span> CallICFGNode* newcs = iter->first;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowDDA.html#ae1ec4e6e9b967a7fd36c32f21e05ba11">FunctionSet</a> & functions = iter->second;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">for</span> (FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> SVFFunction* func = *func_iter;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">connectCallerAndCallee</a>(newcs, func, svfgEdges);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a8d128246f86f28fdf4981d91169ab440"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">SVF::PointerAnalysis::resolveIndCalls</a></div><div class="ttdeci">virtual void resolveIndCalls(const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges)</div><div class="ttdoc">Resolve indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00399">PointerAnalysis.cpp:399</a></div></div>
|
|
1590
|
+
<div class="ttc" id="classSVF_1_1FlowDDA_html_a5a5548577e4a3e225185c4001386fc84"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a5a5548577e4a3e225185c4001386fc84">SVF::FlowDDA::CallEdgeMap</a></div><div class="ttdeci">BVDataPTAImpl::CallEdgeMap CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#l00058">FlowDDA.h:58</a></div></div>
|
|
1591
|
+
<div class="ttc" id="classSVF_1_1FlowDDA_html_ae1ec4e6e9b967a7fd36c32f21e05ba11"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#ae1ec4e6e9b967a7fd36c32f21e05ba11">SVF::FlowDDA::FunctionSet</a></div><div class="ttdeci">BVDataPTAImpl::FunctionSet FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#l00059">FlowDDA.h:59</a></div></div>
|
|
1592
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae31e9281e4f1e0585fdf328b7339e1bf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getCachedPointsTo</a></div><div class="ttdeci">virtual const PointsTo & getCachedPointsTo(const LocDPItem &dpm)</div><div class="ttdoc">Points-to Caching for top-level pointers and address-taken objects. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00554">DDAVFSolver.h:554</a></div></div>
|
|
1593
1593
|
<div class="ttc" id="classSVF_1_1SVFG_html_aefca97f043b3e220ef6012a049b83fdf"><div class="ttname"><a href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">SVF::SVFG::connectCallerAndCallee</a></div><div class="ttdeci">virtual void connectCallerAndCallee(const CallICFGNode *cs, const SVFFunction *callee, SVFGEdgeSetTy &edges)</div><div class="ttdoc">Connect SVFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00655">SVFG.cpp:655</a></div></div>
|
|
1594
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1594
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
|
|
1595
1595
|
</div><!-- fragment -->
|
|
1596
1596
|
</div>
|
|
1597
1597
|
</div>
|
|
@@ -1618,7 +1618,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1618
1618
|
|
|
1619
1619
|
<p>DDA client. </p>
|
|
1620
1620
|
|
|
1621
|
-
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#
|
|
1621
|
+
<p class="definition">Definition at line <a class="el" href="FlowDDA_8h_source.html#l00173">173</a> of file <a class="el" href="FlowDDA_8h_source.html">FlowDDA.h</a>.</p>
|
|
1622
1622
|
|
|
1623
1623
|
</div>
|
|
1624
1624
|
</div>
|