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
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* [MTA](https://github.com/SVF-tools/SVF/tree/master/include/MTA) (<b>analysis of mutithreaded programs</b>): value-flows for multithreaded programs ([CGO'16](https://yuleisui.github.io/publications/cgo16.pdf));
|
|
30
30
|
* [CFL](https://github.com/SVF-tools/SVF/tree/master/include/CFL) (<b>context-free-reachability analysis</b>): standard CFL solver, graph and grammar ([OOPSLA'22](https://yuleisui.github.io/publications/oopsla22.pdf));
|
|
31
31
|
* [MemoryModel](https://github.com/SVF-tools/SVF/tree/master/include/MemoryModel) (<b>memory abstraction</b>): SVFIR and points-to data structures ([SAS'21](https://yuleisui.github.io/publications/sas21.pdf));
|
|
32
|
-
* [Graphs](https://github.com/SVF-tools/SVF/tree/master/include/Graphs): <b>
|
|
32
|
+
* [Graphs](https://github.com/SVF-tools/SVF/tree/master/include/Graphs): <b> generating a variety of graphs</b>, including call graph, ICFG, class hirachary graph, constraint graph, value-flow graph for static analyses and code embedding ([OOPSLA'20](https://yuleisui.github.io/publications/oopsla20.pdf), [TOSEM'21](https://yuleisui.github.io/publications/tosem21.pdf))
|
|
33
33
|
|
|
34
34
|
<b>SVF</b>'s doxygen document is available [here](https://svf-tools.github.io/SVF-doxygen/html).
|
|
35
35
|
|
|
@@ -66,63 +66,63 @@ $(function() {
|
|
|
66
66
|
<div class="title">AbstractPointsToDS.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="AbstractPointsToDS_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef ABSTRACT_POINTSTO_H_</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define ABSTRACT_POINTSTO_H_</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="SVFBasicTypes_8h.html">Util/SVFBasicTypes.h</a>"</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html"> 40</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1PTData.html">PTData</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848"> 44</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">PTDataTy</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a347b03b12df7d51774b617f4e7399568"> 46</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a347b03b12df7d51774b617f4e7399568">Base</a>,</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a47a2413878b6ed98b42b9ae10e839072"> 47</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a47a2413878b6ed98b42b9ae10e839072">MutBase</a>,</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a03a155517b9587d79c3f0b6dc3b72447"> 48</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a03a155517b9587d79c3f0b6dc3b72447">Diff</a>,</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ac17ed6fa5de5a3f67108692b103a4c87"> 49</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ac17ed6fa5de5a3f67108692b103a4c87">MutDiff</a>,</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848acb817cbf655c365c02af3675588f06cc"> 50</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848acb817cbf655c365c02af3675588f06cc">DataFlow</a>,</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a46777c0122829cc199bc911e585b4f62"> 51</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a46777c0122829cc199bc911e585b4f62">MutDataFlow</a>,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c"> 52</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">MutIncDataFlow</a>,</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a33bb78ff686c2cd774e127ce77f9cb67"> 53</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a33bb78ff686c2cd774e127ce77f9cb67">Versioned</a>,</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aac925590471ccb9c851698b232fdd3a5"> 54</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aac925590471ccb9c851698b232fdd3a5">MutVersioned</a>,</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a7873d1da786c9ec286266e58504f13b5"> 55</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a7873d1da786c9ec286266e58504f13b5">PersBase</a>,</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ada752eff76493c0121473ac4c18c9b03"> 56</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ada752eff76493c0121473ac4c18c9b03">PersDiff</a>,</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848af7d68d3c87acd1e3169c09fbf855fd1f"> 57</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848af7d68d3c87acd1e3169c09fbf855fd1f">PersDataFlow</a>,</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a3f0b959f73825d56c2aebcb699f3a08a"> 58</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a3f0b959f73825d56c2aebcb699f3a08a">PersIncDataFlow</a>,</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a15e53fc2443dac125c703ccd7eef1a03"> 59</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a15e53fc2443dac125c703ccd7eef1a03">PersVersioned</a>,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a142667d3a394fa6c3f337abba295ebb1"> 62</a></span>  <a class="code" href="classSVF_1_1PTData.html#a142667d3a394fa6c3f337abba295ebb1">PTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">PTDataTy</a> ty = PTDataTy::Base) : <a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>(reversePT), <a class="code" href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28">ptdTy</a>(ty) { }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a6599aa8acde9a6fe65bdba36f289f04f"> 64</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1PTData.html#a6599aa8acde9a6fe65bdba36f289f04f">~PTData</a>() { }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf"> 67</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">PTDataTy</a> <a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28">ptdTy</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#ad45879017d8fdeedc987ce35c4eba1a5">clear</a>() = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">getPts</a>(<span class="keyword">const</span> Key& var) = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1PTData.html#ab6146f5582946c08568f3a8d45e57b03">getRevPts</a>(<span class="keyword">const</span> Data& datum) = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a">addPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element) = 0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> Key& srcVar) = 0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> DataSet& srcDataSet) = 0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a03c783b9a1faac0aee3e22361df594ce">clearPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element) = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a877888f12d9f8048002cc0e6b83d45ac">clearFullPts</a>(<span class="keyword">const</span> Key& var) = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#af2f176027169e18730848c7a583aed93">remapAllPts</a>(<span class="keywordtype">void</span>) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a91b898e3547eecfbf1ab155d183734bf">dumpPTData</a>() = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1PTData.html#adbe2b955f119871b54dc502de84b94c4">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219"> 107</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28"> 108</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">PTDataTy</a> <a class="code" href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28">ptdTy</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> };</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html"> 115</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DiffPTData.html">DiffPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTData.html">PTData</a><Key, KeySet, Data, DataSet></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#ae61c0f266f26a22077c1e8409f6ba991"> 118</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1DiffPTData.html#ae61c0f266f26a22077c1e8409f6ba991">BasePTData</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#a76b2abf95bf425044e8a6c4141bd470b"> 119</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1DiffPTData.html#a76b2abf95bf425044e8a6c4141bd470b">PTDataTy</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#ac7e9661cfb4d5af3ef35d323ddc35558"> 121</a></span>  <a class="code" href="classSVF_1_1DiffPTData.html#ac7e9661cfb4d5af3ef35d323ddc35558">DiffPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::Diff) : BasePTData(reversePT, ty) { }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#ada95c47c18922bffaf56ef2e8040c201"> 123</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1DiffPTData.html#ada95c47c18922bffaf56ef2e8040c201">~DiffPTData</a>() { }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& getDiffPts(Key& var) = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> computeDiffPts(Key& var, <span class="keyword">const</span> DataSet& all) = 0;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> updatePropaPtsMap(Key& src, Key& dst) = 0;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearPropaPts(Key& var) = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#a09f6aa3d329f8adcd4928344720cff0f"> 142</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DiffPTData.html#a09f6aa3d329f8adcd4928344720cff0f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DiffPTData.html">DiffPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#af182fd3695fee155abac8c2f0c402a17"> 146</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DiffPTData.html#af182fd3695fee155abac8c2f0c402a17">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::Diff</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutDiff</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::PersDiff;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</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> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html"> 160</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DFPTData.html">DFPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTData.html">PTData</a><Key, KeySet, Data, DataSet></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#a6d5193ea9e77b3945cb0716978dc75be"> 163</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1DFPTData.html#a6d5193ea9e77b3945cb0716978dc75be">BasePTData</a>;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#aabbe54f196e27d70a3b0348e87b9990f"> 164</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1DFPTData.html#aabbe54f196e27d70a3b0348e87b9990f">PTDataTy</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786"> 166</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">LocID</a>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#a40016a7e3dac46d9ba854d336c7aae83"> 169</a></span>  <a class="code" href="classSVF_1_1DFPTData.html#a40016a7e3dac46d9ba854d336c7aae83">DFPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = BasePTData::DataFlow) : BasePTData(reversePT, ty) { }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#af6d40be5e2df2ad37b64b7a73b73518e"> 171</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1DFPTData.html#af6d40be5e2df2ad37b64b7a73b73518e">~DFPTData</a>() { }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDFInSet(LocID loc) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDFOutSet(LocID loc) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDFOutSet(LocID loc, <span class="keyword">const</span> Key& var) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDFInSet(LocID loc, <span class="keyword">const</span> Key& var) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& getDFInPtsSet(LocID loc, <span class="keyword">const</span> Key& var) = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& getDFOutPtsSet(LocID loc, <span class="keyword">const</span> Key& var) = 0;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateDFInFromIn(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateAllDFInFromIn(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateDFInFromOut(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateAllDFInFromOut(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateDFOutFromIn(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateAllDFOutFromIn(LocID loc, <span class="keyword">const</span> Key& singleton, <span class="keywordtype">bool</span> strongUpdates) = 0;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearAllDFOutUpdatedVar(LocID) = 0;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateTLVPts(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateATVPts(<span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#a1b09e85de5cc187958dd8fb1aa5edfcd"> 215</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DFPTData.html#a1b09e85de5cc187958dd8fb1aa5edfcd">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DFPTData.html">DFPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#abea003e1262f3e03967939e4028694a4"> 220</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DFPTData.html#abea003e1262f3e03967939e4028694a4">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::DataFlow</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::MutDataFlow</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::MutIncDataFlow</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::PersDataFlow</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::PersIncDataFlow;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> };</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet, <span class="keyword">typename</span> VersionedKey, <span class="keyword">typename</span> VersionedKeySet></div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html"> 235</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTData.html">PTData</a><Key, KeySet, Data, DataSet></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#a9833b47df24ed821a55d5ce9a3917f1f"> 238</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1VersionedPTData.html#a9833b47df24ed821a55d5ce9a3917f1f">BasePTData</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#af22e10c7406708cd7e40018b0c935111"> 239</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1VersionedPTData.html#af22e10c7406708cd7e40018b0c935111">PTDataTy</a>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#a2cc5ee586042f19aa698fd8ec48e33b5"> 241</a></span>  <a class="code" href="classSVF_1_1VersionedPTData.html#a2cc5ee586042f19aa698fd8ec48e33b5">VersionedPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::Versioned) : BasePTData(reversePT, ty) { }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#af97621df8039a6453597d03b7641ec81"> 243</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1VersionedPTData.html#af97621df8039a6453597d03b7641ec81">~VersionedPTData</a>() { }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">getPts</a>(<span class="keyword">const</span> VersionedKey& vk) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> VersionedKeySet& getVersionedKeyRevPts(<span class="keyword">const</span> Data& datum) = 0;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a">addPts</a>(<span class="keyword">const</span> VersionedKey& vk, <span class="keyword">const</span> Data& element) = 0;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> VersionedKey& srcVar) = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> Key& srcVar) = 0;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> VersionedKey& srcVar) = 0;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> DataSet& srcDataSet) = 0;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a03c783b9a1faac0aee3e22361df594ce">clearPts</a>(<span class="keyword">const</span> VersionedKey& vk, <span class="keyword">const</span> Data& element) = 0;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a877888f12d9f8048002cc0e6b83d45ac">clearFullPts</a>(<span class="keyword">const</span> VersionedKey& vk) = 0;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#a385133d44ac2b5fcef007040da8c2fd6"> 260</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedPTData.html#a385133d44ac2b5fcef007040da8c2fd6">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTData<Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet></a> *)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#a69ceac8acdf820486a45fc4444f78d04"> 265</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedPTData.html#a69ceac8acdf820486a45fc4444f78d04">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::Versioned</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutVersioned</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::PersVersioned;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keyword">using</span> BasePTData::getPts;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">using</span> BasePTData::addPts;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keyword">using</span> BasePTData::unionPts;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keyword">using</span> BasePTData::clearPts;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">using</span> BasePTData::clearFullPts;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> };</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor">#endif // ABSTRACT_POINTSTO_H_</span></div><div class="ttc" id="classSVF_1_1VersionedPTData_html"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html">SVF::VersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00235">AbstractPointsToDS.h:235</a></div></div>
|
|
70
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a3f0b959f73825d56c2aebcb699f3a08a"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a3f0b959f73825d56c2aebcb699f3a08a">SVF::PTData::PersIncDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
71
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a7873d1da786c9ec286266e58504f13b5"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a7873d1da786c9ec286266e58504f13b5">SVF::PTData::PersBase</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
72
|
-
<div class="ttc" id="classSVF_1_1VersionedPTData_html_af22e10c7406708cd7e40018b0c935111"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#af22e10c7406708cd7e40018b0c935111">SVF::VersionedPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
73
|
-
<div class="ttc" id="classSVF_1_1DiffPTData_html"><div class="ttname"><a href="classSVF_1_1DiffPTData.html">SVF::DiffPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
74
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848aac925590471ccb9c851698b232fdd3a5"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aac925590471ccb9c851698b232fdd3a5">SVF::PTData::MutVersioned</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
75
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html_aabbe54f196e27d70a3b0348e87b9990f"><div class="ttname"><a href="classSVF_1_1DFPTData.html#aabbe54f196e27d70a3b0348e87b9990f">SVF::DFPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
69
|
+
<a href="AbstractPointsToDS_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- AbstractPointsToDS.h -- Abstract points-to data structure-------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/*</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * AbstractPointsToDS.h</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> *</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> * Authors: Mohamad Barbar and Yulei Sui</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> *</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> * The implementation is based on</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> * Mohamad Barbar and Yulei Sui. Hash Consed Points-To Sets.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> * 28th Static Analysis Symposium (SAS'21)</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> */</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#ifndef ABSTRACT_POINTSTO_H_</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#define ABSTRACT_POINTSTO_H_</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "<a class="code" href="SVFBasicTypes_8h.html">Util/SVFBasicTypes.h</a>"</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html"> 74</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1PTData.html">PTData</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848"> 78</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">PTDataTy</a></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a347b03b12df7d51774b617f4e7399568"> 80</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a347b03b12df7d51774b617f4e7399568">Base</a>,</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a47a2413878b6ed98b42b9ae10e839072"> 81</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a47a2413878b6ed98b42b9ae10e839072">MutBase</a>,</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a03a155517b9587d79c3f0b6dc3b72447"> 82</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a03a155517b9587d79c3f0b6dc3b72447">Diff</a>,</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ac17ed6fa5de5a3f67108692b103a4c87"> 83</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ac17ed6fa5de5a3f67108692b103a4c87">MutDiff</a>,</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848acb817cbf655c365c02af3675588f06cc"> 84</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848acb817cbf655c365c02af3675588f06cc">DataFlow</a>,</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a46777c0122829cc199bc911e585b4f62"> 85</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a46777c0122829cc199bc911e585b4f62">MutDataFlow</a>,</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c"> 86</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">MutIncDataFlow</a>,</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a33bb78ff686c2cd774e127ce77f9cb67"> 87</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a33bb78ff686c2cd774e127ce77f9cb67">Versioned</a>,</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aac925590471ccb9c851698b232fdd3a5"> 88</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aac925590471ccb9c851698b232fdd3a5">MutVersioned</a>,</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a7873d1da786c9ec286266e58504f13b5"> 89</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a7873d1da786c9ec286266e58504f13b5">PersBase</a>,</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ada752eff76493c0121473ac4c18c9b03"> 90</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ada752eff76493c0121473ac4c18c9b03">PersDiff</a>,</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848af7d68d3c87acd1e3169c09fbf855fd1f"> 91</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848af7d68d3c87acd1e3169c09fbf855fd1f">PersDataFlow</a>,</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a3f0b959f73825d56c2aebcb699f3a08a"> 92</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a3f0b959f73825d56c2aebcb699f3a08a">PersIncDataFlow</a>,</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a15e53fc2443dac125c703ccd7eef1a03"> 93</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a15e53fc2443dac125c703ccd7eef1a03">PersVersioned</a>,</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> </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a142667d3a394fa6c3f337abba295ebb1"> 96</a></span>  <a class="code" href="classSVF_1_1PTData.html#a142667d3a394fa6c3f337abba295ebb1">PTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">PTDataTy</a> ty = PTDataTy::Base) : <a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>(reversePT), <a class="code" href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28">ptdTy</a>(ty) { }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a6599aa8acde9a6fe65bdba36f289f04f"> 98</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1PTData.html#a6599aa8acde9a6fe65bdba36f289f04f">~PTData</a>() { }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf"> 101</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">PTDataTy</a> <a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28">ptdTy</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#ad45879017d8fdeedc987ce35c4eba1a5">clear</a>() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">getPts</a>(<span class="keyword">const</span> Key& var) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1PTData.html#ab6146f5582946c08568f3a8d45e57b03">getRevPts</a>(<span class="keyword">const</span> Data& datum) = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a">addPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element) = 0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> Key& srcVar) = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> DataSet& srcDataSet) = 0;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a03c783b9a1faac0aee3e22361df594ce">clearPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element) = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a877888f12d9f8048002cc0e6b83d45ac">clearFullPts</a>(<span class="keyword">const</span> Key& var) = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#af2f176027169e18730848c7a583aed93">remapAllPts</a>(<span class="keywordtype">void</span>) = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a91b898e3547eecfbf1ab155d183734bf">dumpPTData</a>() = 0;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1PTData.html#adbe2b955f119871b54dc502de84b94c4">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219"> 141</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28"> 142</a></span>  <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">PTDataTy</a> <a class="code" href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28">ptdTy</a>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> };</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html"> 149</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DiffPTData.html">DiffPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTData.html">PTData</a><Key, KeySet, Data, DataSet></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">public</span>:</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#ae61c0f266f26a22077c1e8409f6ba991"> 152</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1DiffPTData.html#ae61c0f266f26a22077c1e8409f6ba991">BasePTData</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#a76b2abf95bf425044e8a6c4141bd470b"> 153</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1DiffPTData.html#a76b2abf95bf425044e8a6c4141bd470b">PTDataTy</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#ac7e9661cfb4d5af3ef35d323ddc35558"> 155</a></span>  <a class="code" href="classSVF_1_1DiffPTData.html#ac7e9661cfb4d5af3ef35d323ddc35558">DiffPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::Diff) : BasePTData(reversePT, ty) { }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#ada95c47c18922bffaf56ef2e8040c201"> 157</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1DiffPTData.html#ada95c47c18922bffaf56ef2e8040c201">~DiffPTData</a>() { }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& getDiffPts(Key& var) = 0;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> computeDiffPts(Key& var, <span class="keyword">const</span> DataSet& all) = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> updatePropaPtsMap(Key& src, Key& dst) = 0;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearPropaPts(Key& var) = 0;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#a09f6aa3d329f8adcd4928344720cff0f"> 176</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DiffPTData.html#a09f6aa3d329f8adcd4928344720cff0f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DiffPTData.html">DiffPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1DiffPTData.html#af182fd3695fee155abac8c2f0c402a17"> 180</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DiffPTData.html#af182fd3695fee155abac8c2f0c402a17">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::Diff</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutDiff</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::PersDiff;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> };</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html"> 194</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DFPTData.html">DFPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTData.html">PTData</a><Key, KeySet, Data, DataSet></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#a6d5193ea9e77b3945cb0716978dc75be"> 197</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1DFPTData.html#a6d5193ea9e77b3945cb0716978dc75be">BasePTData</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#aabbe54f196e27d70a3b0348e87b9990f"> 198</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1DFPTData.html#aabbe54f196e27d70a3b0348e87b9990f">PTDataTy</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786"> 200</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">LocID</a>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#a40016a7e3dac46d9ba854d336c7aae83"> 203</a></span>  <a class="code" href="classSVF_1_1DFPTData.html#a40016a7e3dac46d9ba854d336c7aae83">DFPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = BasePTData::DataFlow) : BasePTData(reversePT, ty) { }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#af6d40be5e2df2ad37b64b7a73b73518e"> 205</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1DFPTData.html#af6d40be5e2df2ad37b64b7a73b73518e">~DFPTData</a>() { }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDFInSet(LocID loc) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDFOutSet(LocID loc) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDFOutSet(LocID loc, <span class="keyword">const</span> Key& var) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDFInSet(LocID loc, <span class="keyword">const</span> Key& var) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& getDFInPtsSet(LocID loc, <span class="keyword">const</span> Key& var) = 0;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& getDFOutPtsSet(LocID loc, <span class="keyword">const</span> Key& var) = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateDFInFromIn(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateAllDFInFromIn(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateDFInFromOut(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateAllDFInFromOut(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateDFOutFromIn(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateAllDFOutFromIn(LocID loc, <span class="keyword">const</span> Key& singleton, <span class="keywordtype">bool</span> strongUpdates) = 0;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearAllDFOutUpdatedVar(LocID) = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateTLVPts(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> updateATVPts(<span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#a1b09e85de5cc187958dd8fb1aa5edfcd"> 249</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DFPTData.html#a1b09e85de5cc187958dd8fb1aa5edfcd">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DFPTData.html">DFPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classSVF_1_1DFPTData.html#abea003e1262f3e03967939e4028694a4"> 254</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DFPTData.html#abea003e1262f3e03967939e4028694a4">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::DataFlow</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::MutDataFlow</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::MutIncDataFlow</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::PersDataFlow</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BasePTData::PersIncDataFlow;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> };</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet, <span class="keyword">typename</span> VersionedKey, <span class="keyword">typename</span> VersionedKeySet></div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html"> 269</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTData.html">PTData</a><Key, KeySet, Data, DataSet></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#a9833b47df24ed821a55d5ce9a3917f1f"> 272</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1VersionedPTData.html#a9833b47df24ed821a55d5ce9a3917f1f">BasePTData</a>;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#af22e10c7406708cd7e40018b0c935111"> 273</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1VersionedPTData.html#af22e10c7406708cd7e40018b0c935111">PTDataTy</a>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#a2cc5ee586042f19aa698fd8ec48e33b5"> 275</a></span>  <a class="code" href="classSVF_1_1VersionedPTData.html#a2cc5ee586042f19aa698fd8ec48e33b5">VersionedPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::Versioned) : BasePTData(reversePT, ty) { }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#af97621df8039a6453597d03b7641ec81"> 277</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1VersionedPTData.html#af97621df8039a6453597d03b7641ec81">~VersionedPTData</a>() { }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">getPts</a>(<span class="keyword">const</span> VersionedKey& vk) = 0;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> VersionedKeySet& getVersionedKeyRevPts(<span class="keyword">const</span> Data& datum) = 0;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a">addPts</a>(<span class="keyword">const</span> VersionedKey& vk, <span class="keyword">const</span> Data& element) = 0;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> VersionedKey& srcVar) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> Key& srcVar) = 0;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> VersionedKey& srcVar) = 0;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> DataSet& srcDataSet) = 0;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a03c783b9a1faac0aee3e22361df594ce">clearPts</a>(<span class="keyword">const</span> VersionedKey& vk, <span class="keyword">const</span> Data& element) = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTData.html#a877888f12d9f8048002cc0e6b83d45ac">clearFullPts</a>(<span class="keyword">const</span> VersionedKey& vk) = 0;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#a385133d44ac2b5fcef007040da8c2fd6"> 294</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedPTData.html#a385133d44ac2b5fcef007040da8c2fd6">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTData<Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet></a> *)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedPTData.html#a69ceac8acdf820486a45fc4444f78d04"> 299</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedPTData.html#a69ceac8acdf820486a45fc4444f78d04">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::Versioned</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutVersioned</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::PersVersioned;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">using</span> BasePTData::getPts;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keyword">using</span> BasePTData::addPts;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keyword">using</span> BasePTData::unionPts;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">using</span> BasePTData::clearPts;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keyword">using</span> BasePTData::clearFullPts;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> };</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor">#endif // ABSTRACT_POINTSTO_H_</span></div><div class="ttc" id="classSVF_1_1VersionedPTData_html"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html">SVF::VersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00269">AbstractPointsToDS.h:269</a></div></div>
|
|
70
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a3f0b959f73825d56c2aebcb699f3a08a"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a3f0b959f73825d56c2aebcb699f3a08a">SVF::PTData::PersIncDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00092">AbstractPointsToDS.h:92</a></div></div>
|
|
71
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a7873d1da786c9ec286266e58504f13b5"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a7873d1da786c9ec286266e58504f13b5">SVF::PTData::PersBase</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00089">AbstractPointsToDS.h:89</a></div></div>
|
|
72
|
+
<div class="ttc" id="classSVF_1_1VersionedPTData_html_af22e10c7406708cd7e40018b0c935111"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#af22e10c7406708cd7e40018b0c935111">SVF::VersionedPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00273">AbstractPointsToDS.h:273</a></div></div>
|
|
73
|
+
<div class="ttc" id="classSVF_1_1DiffPTData_html"><div class="ttname"><a href="classSVF_1_1DiffPTData.html">SVF::DiffPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00149">AbstractPointsToDS.h:149</a></div></div>
|
|
74
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848aac925590471ccb9c851698b232fdd3a5"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aac925590471ccb9c851698b232fdd3a5">SVF::PTData::MutVersioned</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00088">AbstractPointsToDS.h:88</a></div></div>
|
|
75
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html_aabbe54f196e27d70a3b0348e87b9990f"><div class="ttname"><a href="classSVF_1_1DFPTData.html#aabbe54f196e27d70a3b0348e87b9990f">SVF::DFPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00198">AbstractPointsToDS.h:198</a></div></div>
|
|
76
76
|
<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>
|
|
77
|
-
<div class="ttc" id="classSVF_1_1VersionedPTData_html_af97621df8039a6453597d03b7641ec81"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#af97621df8039a6453597d03b7641ec81">SVF::VersionedPTData::~VersionedPTData</a></div><div class="ttdeci">virtual ~VersionedPTData()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
78
|
-
<div class="ttc" id="classSVF_1_1VersionedPTData_html_a2cc5ee586042f19aa698fd8ec48e33b5"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a2cc5ee586042f19aa698fd8ec48e33b5">SVF::VersionedPTData::VersionedPTData</a></div><div class="ttdeci">VersionedPTData(bool reversePT=true, PTDataTy ty=PTDataTy::Versioned)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
79
|
-
<div class="ttc" id="classSVF_1_1DiffPTData_html_af182fd3695fee155abac8c2f0c402a17"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#af182fd3695fee155abac8c2f0c402a17">SVF::DiffPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
80
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html_a1b09e85de5cc187958dd8fb1aa5edfcd"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a1b09e85de5cc187958dd8fb1aa5edfcd">SVF::DFPTData::classof</a></div><div class="ttdeci">static bool classof(const DFPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
77
|
+
<div class="ttc" id="classSVF_1_1VersionedPTData_html_af97621df8039a6453597d03b7641ec81"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#af97621df8039a6453597d03b7641ec81">SVF::VersionedPTData::~VersionedPTData</a></div><div class="ttdeci">virtual ~VersionedPTData()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00277">AbstractPointsToDS.h:277</a></div></div>
|
|
78
|
+
<div class="ttc" id="classSVF_1_1VersionedPTData_html_a2cc5ee586042f19aa698fd8ec48e33b5"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a2cc5ee586042f19aa698fd8ec48e33b5">SVF::VersionedPTData::VersionedPTData</a></div><div class="ttdeci">VersionedPTData(bool reversePT=true, PTDataTy ty=PTDataTy::Versioned)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00275">AbstractPointsToDS.h:275</a></div></div>
|
|
79
|
+
<div class="ttc" id="classSVF_1_1DiffPTData_html_af182fd3695fee155abac8c2f0c402a17"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#af182fd3695fee155abac8c2f0c402a17">SVF::DiffPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00180">AbstractPointsToDS.h:180</a></div></div>
|
|
80
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html_a1b09e85de5cc187958dd8fb1aa5edfcd"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a1b09e85de5cc187958dd8fb1aa5edfcd">SVF::DFPTData::classof</a></div><div class="ttdeci">static bool classof(const DFPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00249">AbstractPointsToDS.h:249</a></div></div>
|
|
81
81
|
<div class="ttc" id="classSVF_1_1PTData_html_a9ae6037637d8b9acb323333f491f4a7d"><div class="ttname"><a href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">SVF::PTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &var)=0</div><div class="ttdoc">Get points-to set of var. </div></div>
|
|
82
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html"><div class="ttname"><a href="classSVF_1_1DFPTData.html">SVF::DFPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
83
|
-
<div class="ttc" id="classSVF_1_1DiffPTData_html_a76b2abf95bf425044e8a6c4141bd470b"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#a76b2abf95bf425044e8a6c4141bd470b">SVF::DiffPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
82
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html"><div class="ttname"><a href="classSVF_1_1DFPTData.html">SVF::DFPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00194">AbstractPointsToDS.h:194</a></div></div>
|
|
83
|
+
<div class="ttc" id="classSVF_1_1DiffPTData_html_a76b2abf95bf425044e8a6c4141bd470b"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#a76b2abf95bf425044e8a6c4141bd470b">SVF::DiffPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00153">AbstractPointsToDS.h:153</a></div></div>
|
|
84
84
|
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00110">SVFBasicTypes.h:110</a></div></div>
|
|
85
85
|
<div class="ttc" id="classSVF_1_1PTData_html_ad45879017d8fdeedc987ce35c4eba1a5"><div class="ttname"><a href="classSVF_1_1PTData.html#ad45879017d8fdeedc987ce35c4eba1a5">SVF::PTData::clear</a></div><div class="ttdeci">virtual void clear()=0</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div></div>
|
|
86
|
-
<div class="ttc" id="classSVF_1_1VersionedPTData_html_a9833b47df24ed821a55d5ce9a3917f1f"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a9833b47df24ed821a55d5ce9a3917f1f">SVF::VersionedPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
86
|
+
<div class="ttc" id="classSVF_1_1VersionedPTData_html_a9833b47df24ed821a55d5ce9a3917f1f"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a9833b47df24ed821a55d5ce9a3917f1f">SVF::VersionedPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00272">AbstractPointsToDS.h:272</a></div></div>
|
|
87
87
|
<div class="ttc" id="SVFBasicTypes_8h_html"><div class="ttname"><a href="SVFBasicTypes_8h.html">SVFBasicTypes.h</a></div></div>
|
|
88
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848ac17ed6fa5de5a3f67108692b103a4c87"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ac17ed6fa5de5a3f67108692b103a4c87">SVF::PTData::MutDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
89
|
-
<div class="ttc" id="classSVF_1_1PTData_html"><div class="ttname"><a href="classSVF_1_1PTData.html">SVF::PTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
90
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html_abea003e1262f3e03967939e4028694a4"><div class="ttname"><a href="classSVF_1_1DFPTData.html#abea003e1262f3e03967939e4028694a4">SVF::DFPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
91
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html_af6d40be5e2df2ad37b64b7a73b73518e"><div class="ttname"><a href="classSVF_1_1DFPTData.html#af6d40be5e2df2ad37b64b7a73b73518e">SVF::DFPTData::~DFPTData</a></div><div class="ttdeci">virtual ~DFPTData()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
88
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848ac17ed6fa5de5a3f67108692b103a4c87"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ac17ed6fa5de5a3f67108692b103a4c87">SVF::PTData::MutDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00083">AbstractPointsToDS.h:83</a></div></div>
|
|
89
|
+
<div class="ttc" id="classSVF_1_1PTData_html"><div class="ttname"><a href="classSVF_1_1PTData.html">SVF::PTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00074">AbstractPointsToDS.h:74</a></div></div>
|
|
90
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html_abea003e1262f3e03967939e4028694a4"><div class="ttname"><a href="classSVF_1_1DFPTData.html#abea003e1262f3e03967939e4028694a4">SVF::DFPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00254">AbstractPointsToDS.h:254</a></div></div>
|
|
91
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html_af6d40be5e2df2ad37b64b7a73b73518e"><div class="ttname"><a href="classSVF_1_1DFPTData.html#af6d40be5e2df2ad37b64b7a73b73518e">SVF::DFPTData::~DFPTData</a></div><div class="ttdeci">virtual ~DFPTData()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00205">AbstractPointsToDS.h:205</a></div></div>
|
|
92
92
|
<div class="ttc" id="classSVF_1_1PTData_html_a03c783b9a1faac0aee3e22361df594ce"><div class="ttname"><a href="classSVF_1_1PTData.html#a03c783b9a1faac0aee3e22361df594ce">SVF::PTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const Key &var, const Data &element)=0</div><div class="ttdoc">Clears element from the points-to set of var. </div></div>
|
|
93
|
-
<div class="ttc" id="classSVF_1_1DiffPTData_html_ada95c47c18922bffaf56ef2e8040c201"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#ada95c47c18922bffaf56ef2e8040c201">SVF::DiffPTData::~DiffPTData</a></div><div class="ttdeci">virtual ~DiffPTData()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
94
|
-
<div class="ttc" id="classSVF_1_1VersionedPTData_html_a69ceac8acdf820486a45fc4444f78d04"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a69ceac8acdf820486a45fc4444f78d04">SVF::VersionedPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
95
|
-
<div class="ttc" id="classSVF_1_1DiffPTData_html_ae61c0f266f26a22077c1e8409f6ba991"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#ae61c0f266f26a22077c1e8409f6ba991">SVF::DiffPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
96
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">SVF::PTData< VersionedKey, VersionedKeySet, Data, DataSet >::PTDataTy</a></div><div class="ttdeci">PTDataTy</div><div class="ttdoc">Types of a points-to data structures. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
93
|
+
<div class="ttc" id="classSVF_1_1DiffPTData_html_ada95c47c18922bffaf56ef2e8040c201"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#ada95c47c18922bffaf56ef2e8040c201">SVF::DiffPTData::~DiffPTData</a></div><div class="ttdeci">virtual ~DiffPTData()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00157">AbstractPointsToDS.h:157</a></div></div>
|
|
94
|
+
<div class="ttc" id="classSVF_1_1VersionedPTData_html_a69ceac8acdf820486a45fc4444f78d04"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a69ceac8acdf820486a45fc4444f78d04">SVF::VersionedPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00299">AbstractPointsToDS.h:299</a></div></div>
|
|
95
|
+
<div class="ttc" id="classSVF_1_1DiffPTData_html_ae61c0f266f26a22077c1e8409f6ba991"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#ae61c0f266f26a22077c1e8409f6ba991">SVF::DiffPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00152">AbstractPointsToDS.h:152</a></div></div>
|
|
96
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">SVF::PTData< VersionedKey, VersionedKeySet, Data, DataSet >::PTDataTy</a></div><div class="ttdeci">PTDataTy</div><div class="ttdoc">Types of a points-to data structures. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00078">AbstractPointsToDS.h:78</a></div></div>
|
|
97
97
|
<div class="ttc" id="classSVF_1_1PTData_html_af7aa22f11558c12ff16612174e2221dd"><div class="ttname"><a href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">SVF::PTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstVar, const Key &srcVar)=0</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar). </div></div>
|
|
98
|
-
<div class="ttc" id="classSVF_1_1DiffPTData_html_a09f6aa3d329f8adcd4928344720cff0f"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#a09f6aa3d329f8adcd4928344720cff0f">SVF::DiffPTData::classof</a></div><div class="ttdeci">static bool classof(const DiffPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
99
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a47a2413878b6ed98b42b9ae10e839072"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a47a2413878b6ed98b42b9ae10e839072">SVF::PTData::MutBase</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
100
|
-
<div class="ttc" id="classSVF_1_1PTData_html_abe01b39afed97b540c9bb8a8634afa28"><div class="ttname"><a href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28">SVF::PTData::ptdTy</a></div><div class="ttdeci">PTDataTy ptdTy</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
101
|
-
<div class="ttc" id="classSVF_1_1VersionedPTData_html_a385133d44ac2b5fcef007040da8c2fd6"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a385133d44ac2b5fcef007040da8c2fd6">SVF::VersionedPTData::classof</a></div><div class="ttdeci">static bool classof(const VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > *)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
98
|
+
<div class="ttc" id="classSVF_1_1DiffPTData_html_a09f6aa3d329f8adcd4928344720cff0f"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#a09f6aa3d329f8adcd4928344720cff0f">SVF::DiffPTData::classof</a></div><div class="ttdeci">static bool classof(const DiffPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00176">AbstractPointsToDS.h:176</a></div></div>
|
|
99
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a47a2413878b6ed98b42b9ae10e839072"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a47a2413878b6ed98b42b9ae10e839072">SVF::PTData::MutBase</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00081">AbstractPointsToDS.h:81</a></div></div>
|
|
100
|
+
<div class="ttc" id="classSVF_1_1PTData_html_abe01b39afed97b540c9bb8a8634afa28"><div class="ttname"><a href="classSVF_1_1PTData.html#abe01b39afed97b540c9bb8a8634afa28">SVF::PTData::ptdTy</a></div><div class="ttdeci">PTDataTy ptdTy</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00142">AbstractPointsToDS.h:142</a></div></div>
|
|
101
|
+
<div class="ttc" id="classSVF_1_1VersionedPTData_html_a385133d44ac2b5fcef007040da8c2fd6"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a385133d44ac2b5fcef007040da8c2fd6">SVF::VersionedPTData::classof</a></div><div class="ttdeci">static bool classof(const VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > *)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00294">AbstractPointsToDS.h:294</a></div></div>
|
|
102
102
|
<div class="ttc" id="classSVF_1_1PTData_html_af2f176027169e18730848c7a583aed93"><div class="ttname"><a href="classSVF_1_1PTData.html#af2f176027169e18730848c7a583aed93">SVF::PTData::remapAllPts</a></div><div class="ttdeci">virtual void remapAllPts(void)=0</div><div class="ttdoc">Remaps all points-to sets to use the current mapping. </div></div>
|
|
103
103
|
<div class="ttc" id="classSVF_1_1PTData_html_a877888f12d9f8048002cc0e6b83d45ac"><div class="ttname"><a href="classSVF_1_1PTData.html#a877888f12d9f8048002cc0e6b83d45ac">SVF::PTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const Key &var)=0</div><div class="ttdoc">Fully clears the points-to set of var. </div></div>
|
|
104
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848af7d68d3c87acd1e3169c09fbf855fd1f"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848af7d68d3c87acd1e3169c09fbf855fd1f">SVF::PTData::PersDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
105
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a347b03b12df7d51774b617f4e7399568"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a347b03b12df7d51774b617f4e7399568">SVF::PTData::Base</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
106
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a46777c0122829cc199bc911e585b4f62"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a46777c0122829cc199bc911e585b4f62">SVF::PTData::MutDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
107
|
-
<div class="ttc" id="classSVF_1_1DiffPTData_html_ac7e9661cfb4d5af3ef35d323ddc35558"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#ac7e9661cfb4d5af3ef35d323ddc35558">SVF::DiffPTData::DiffPTData</a></div><div class="ttdeci">DiffPTData(bool reversePT=true, PTDataTy ty=PTDataTy::Diff)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
108
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a6599aa8acde9a6fe65bdba36f289f04f"><div class="ttname"><a href="classSVF_1_1PTData.html#a6599aa8acde9a6fe65bdba36f289f04f">SVF::PTData::~PTData</a></div><div class="ttdeci">virtual ~PTData()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
104
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848af7d68d3c87acd1e3169c09fbf855fd1f"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848af7d68d3c87acd1e3169c09fbf855fd1f">SVF::PTData::PersDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00091">AbstractPointsToDS.h:91</a></div></div>
|
|
105
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a347b03b12df7d51774b617f4e7399568"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a347b03b12df7d51774b617f4e7399568">SVF::PTData::Base</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00080">AbstractPointsToDS.h:80</a></div></div>
|
|
106
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a46777c0122829cc199bc911e585b4f62"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a46777c0122829cc199bc911e585b4f62">SVF::PTData::MutDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00085">AbstractPointsToDS.h:85</a></div></div>
|
|
107
|
+
<div class="ttc" id="classSVF_1_1DiffPTData_html_ac7e9661cfb4d5af3ef35d323ddc35558"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#ac7e9661cfb4d5af3ef35d323ddc35558">SVF::DiffPTData::DiffPTData</a></div><div class="ttdeci">DiffPTData(bool reversePT=true, PTDataTy ty=PTDataTy::Diff)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00155">AbstractPointsToDS.h:155</a></div></div>
|
|
108
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a6599aa8acde9a6fe65bdba36f289f04f"><div class="ttname"><a href="classSVF_1_1PTData.html#a6599aa8acde9a6fe65bdba36f289f04f">SVF::PTData::~PTData</a></div><div class="ttdeci">virtual ~PTData()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00098">AbstractPointsToDS.h:98</a></div></div>
|
|
109
109
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
|
|
110
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html_a298a5ef6cfffbe10b9d05af0ad12e786"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">SVF::DFPTData::LocID</a></div><div class="ttdeci">NodeID LocID</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
111
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html_a40016a7e3dac46d9ba854d336c7aae83"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a40016a7e3dac46d9ba854d336c7aae83">SVF::DFPTData::DFPTData</a></div><div class="ttdeci">DFPTData(bool reversePT=true, PTDataTy ty=BasePTData::DataFlow)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
112
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848ada752eff76493c0121473ac4c18c9b03"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ada752eff76493c0121473ac4c18c9b03">SVF::PTData::PersDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
113
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a03a155517b9587d79c3f0b6dc3b72447"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a03a155517b9587d79c3f0b6dc3b72447">SVF::PTData::Diff</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
114
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848acb817cbf655c365c02af3675588f06cc"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848acb817cbf655c365c02af3675588f06cc">SVF::PTData::DataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
110
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html_a298a5ef6cfffbe10b9d05af0ad12e786"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">SVF::DFPTData::LocID</a></div><div class="ttdeci">NodeID LocID</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00200">AbstractPointsToDS.h:200</a></div></div>
|
|
111
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html_a40016a7e3dac46d9ba854d336c7aae83"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a40016a7e3dac46d9ba854d336c7aae83">SVF::DFPTData::DFPTData</a></div><div class="ttdeci">DFPTData(bool reversePT=true, PTDataTy ty=BasePTData::DataFlow)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00203">AbstractPointsToDS.h:203</a></div></div>
|
|
112
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848ada752eff76493c0121473ac4c18c9b03"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848ada752eff76493c0121473ac4c18c9b03">SVF::PTData::PersDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00090">AbstractPointsToDS.h:90</a></div></div>
|
|
113
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a03a155517b9587d79c3f0b6dc3b72447"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a03a155517b9587d79c3f0b6dc3b72447">SVF::PTData::Diff</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00082">AbstractPointsToDS.h:82</a></div></div>
|
|
114
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848acb817cbf655c365c02af3675588f06cc"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848acb817cbf655c365c02af3675588f06cc">SVF::PTData::DataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00084">AbstractPointsToDS.h:84</a></div></div>
|
|
115
115
|
<div class="ttc" id="classSVF_1_1PTData_html_ab6146f5582946c08568f3a8d45e57b03"><div class="ttname"><a href="classSVF_1_1PTData.html#ab6146f5582946c08568f3a8d45e57b03">SVF::PTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum)=0</div><div class="ttdoc">Get reverse points-to set of a datum. </div></div>
|
|
116
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a142667d3a394fa6c3f337abba295ebb1"><div class="ttname"><a href="classSVF_1_1PTData.html#a142667d3a394fa6c3f337abba295ebb1">SVF::PTData::PTData</a></div><div class="ttdeci">PTData(bool reversePT=true, PTDataTy ty=PTDataTy::Base)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
117
|
-
<div class="ttc" id="classSVF_1_1PTData_html_adfcbaefe1c058d9ddf14aa3da07e1daf"><div class="ttname"><a href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">SVF::PTData::getPTDTY</a></div><div class="ttdeci">PTDataTy getPTDTY() const</div><div class="ttdoc">Get the type of points-to data structure that this is. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
116
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a142667d3a394fa6c3f337abba295ebb1"><div class="ttname"><a href="classSVF_1_1PTData.html#a142667d3a394fa6c3f337abba295ebb1">SVF::PTData::PTData</a></div><div class="ttdeci">PTData(bool reversePT=true, PTDataTy ty=PTDataTy::Base)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00096">AbstractPointsToDS.h:96</a></div></div>
|
|
117
|
+
<div class="ttc" id="classSVF_1_1PTData_html_adfcbaefe1c058d9ddf14aa3da07e1daf"><div class="ttname"><a href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">SVF::PTData::getPTDTY</a></div><div class="ttdeci">PTDataTy getPTDTY() const</div><div class="ttdoc">Get the type of points-to data structure that this is. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00101">AbstractPointsToDS.h:101</a></div></div>
|
|
118
118
|
<div class="ttc" id="classSVF_1_1PTData_html_ac1b9dc035fb0bdf468c7d14b9f9d437a"><div class="ttname"><a href="classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a">SVF::PTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &var, const Data &element)=0</div><div class="ttdoc">Adds element to the points-to set associated with var. </div></div>
|
|
119
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a33bb78ff686c2cd774e127ce77f9cb67"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a33bb78ff686c2cd774e127ce77f9cb67">SVF::PTData::Versioned</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
119
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a33bb78ff686c2cd774e127ce77f9cb67"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a33bb78ff686c2cd774e127ce77f9cb67">SVF::PTData::Versioned</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00087">AbstractPointsToDS.h:87</a></div></div>
|
|
120
120
|
<div class="ttc" id="classSVF_1_1PTData_html_a91b898e3547eecfbf1ab155d183734bf"><div class="ttname"><a href="classSVF_1_1PTData.html#a91b898e3547eecfbf1ab155d183734bf">SVF::PTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData()=0</div><div class="ttdoc">Dump stored keys and points-to sets. </div></div>
|
|
121
121
|
<div class="ttc" id="classSVF_1_1PTData_html_adbe2b955f119871b54dc502de84b94c4"><div class="ttname"><a href="classSVF_1_1PTData.html#adbe2b955f119871b54dc502de84b94c4">SVF::PTData::getAllPts</a></div><div class="ttdeci">virtual Map< DataSet, unsigned > getAllPts(bool liveOnly) const =0</div></div>
|
|
122
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a15e53fc2443dac125c703ccd7eef1a03"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a15e53fc2443dac125c703ccd7eef1a03">SVF::PTData::PersVersioned</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
123
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">SVF::PTData::MutIncDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
124
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a46fa3ec6462f3dda19549340281bb219"><div class="ttname"><a href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">SVF::PTData::rev</a></div><div class="ttdeci">bool rev</div><div class="ttdoc">Whether we maintain reverse points-to sets or not. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
125
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html_a6d5193ea9e77b3945cb0716978dc75be"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a6d5193ea9e77b3945cb0716978dc75be">SVF::DFPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
122
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848a15e53fc2443dac125c703ccd7eef1a03"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a15e53fc2443dac125c703ccd7eef1a03">SVF::PTData::PersVersioned</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00093">AbstractPointsToDS.h:93</a></div></div>
|
|
123
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">SVF::PTData::MutIncDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00086">AbstractPointsToDS.h:86</a></div></div>
|
|
124
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a46fa3ec6462f3dda19549340281bb219"><div class="ttname"><a href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">SVF::PTData::rev</a></div><div class="ttdeci">bool rev</div><div class="ttdoc">Whether we maintain reverse points-to sets or not. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00141">AbstractPointsToDS.h:141</a></div></div>
|
|
125
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html_a6d5193ea9e77b3945cb0716978dc75be"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a6d5193ea9e77b3945cb0716978dc75be">SVF::DFPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00197">AbstractPointsToDS.h:197</a></div></div>
|
|
126
126
|
</div><!-- fragment --></div><!-- contents -->
|
|
127
127
|
<!-- start footer part -->
|
|
128
128
|
<hr class="footer"/><address class="footer"><small>
|