svf-tools 1.0.773 → 1.0.775
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AddressValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -9
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFBasicBlockG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8h_source.html +8 -8
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +670 -671
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +114 -107
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +395 -350
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +443 -433
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +12 -12
- package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +288 -286
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +667 -665
- package/SVF-doxygen/html/html/SVFLoop_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +284 -124
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +108 -95
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +59 -54
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +30 -20
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +52 -47
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +18 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +64 -59
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +11 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +65 -60
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +11 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +60 -55
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +31 -26
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +573 -379
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +37 -32
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +24 -14
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +39 -34
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +40 -35
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +305 -305
- package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +66 -61
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +54 -49
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +11 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +65 -60
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +28 -14
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator-members.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +131 -99
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +554 -554
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +41 -36
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid-members.html +41 -36
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +175 -174
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +754 -720
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRWriter.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoop.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +55 -50
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +24 -14
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +55 -50
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +12 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +21 -14
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +339 -49
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +86 -86
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
- package/SVF-doxygen/html/html/functions_a.html +1 -1
- package/SVF-doxygen/html/html/functions_b.html +1 -0
- package/SVF-doxygen/html/html/functions_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func.html +1 -1
- package/SVF-doxygen/html/html/functions_func_i.html +14 -11
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_r.html +16 -3
- package/SVF-doxygen/html/html/functions_func_s.html +21 -20
- package/SVF-doxygen/html/html/functions_func_w.html +11 -2
- package/SVF-doxygen/html/html/functions_i.html +22 -19
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +12 -12
- package/SVF-doxygen/html/html/functions_p.html +13 -13
- package/SVF-doxygen/html/html/functions_r.html +20 -11
- package/SVF-doxygen/html/html/functions_rela_b.html +3 -0
- package/SVF-doxygen/html/html/functions_s.html +23 -24
- package/SVF-doxygen/html/html/functions_t.html +5 -5
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_w.html +17 -8
- package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +1 -1
- package/SVF-doxygen/html/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/html/search/all_11.js +217 -213
- package/SVF-doxygen/html/html/search/all_12.js +541 -541
- package/SVF-doxygen/html/html/search/all_13.js +190 -190
- package/SVF-doxygen/html/html/search/all_14.js +66 -66
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +63 -60
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/html/search/all_1a.js +169 -169
- package/SVF-doxygen/html/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +535 -534
- package/SVF-doxygen/html/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +116 -116
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +206 -206
- package/SVF-doxygen/html/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/html/search/classes_2.js +76 -76
- package/SVF-doxygen/html/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/html/search/classes_4.js +8 -8
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/html/search/files_2.js +49 -49
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/html/search/functions_0.js +12 -12
- package/SVF-doxygen/html/html/search/functions_1.js +350 -350
- package/SVF-doxygen/html/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/html/search/functions_11.js +131 -127
- package/SVF-doxygen/html/html/search/functions_12.js +275 -275
- package/SVF-doxygen/html/html/search/functions_13.js +58 -58
- package/SVF-doxygen/html/html/search/functions_14.js +38 -38
- package/SVF-doxygen/html/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/html/search/functions_16.js +32 -29
- package/SVF-doxygen/html/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/html/search/functions_18.js +169 -169
- package/SVF-doxygen/html/html/search/functions_2.js +84 -84
- package/SVF-doxygen/html/html/search/functions_3.js +253 -253
- package/SVF-doxygen/html/html/search/functions_4.js +74 -74
- package/SVF-doxygen/html/html/search/functions_5.js +51 -51
- package/SVF-doxygen/html/html/search/functions_6.js +58 -58
- package/SVF-doxygen/html/html/search/functions_7.js +842 -842
- package/SVF-doxygen/html/html/search/functions_8.js +143 -143
- package/SVF-doxygen/html/html/search/functions_9.js +423 -422
- package/SVF-doxygen/html/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/html/search/functions_c.js +26 -26
- package/SVF-doxygen/html/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/html/search/related_1.js +2 -1
- package/SVF-doxygen/html/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
- package/SVF-doxygen/html/html/search/typedefs_10.js +62 -62
- package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/html/search/variables_0.js +147 -147
- package/SVF-doxygen/html/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +34 -34
- package/SVF-doxygen/html/html/search/variables_3.js +141 -141
- package/SVF-doxygen/html/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/html/search/variables_5.js +38 -38
- package/SVF-doxygen/html/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/package.json +1 -1
- package/svf/include/MemoryModel/PointerAnalysisImpl.h +5 -0
- package/svf/include/MemoryModel/SVFLoop.h +3 -3
- package/svf/include/SVFIR/SVFIR.h +2 -1
- package/svf/include/Util/NodeIDAllocator.h +6 -0
- package/svf/include/WPA/VersionedFlowSensitive.h +8 -0
- package/svf/lib/MemoryModel/PointerAnalysisImpl.cpp +101 -66
- package/svf/lib/SVFIR/SVFIR.cpp +5 -3
- package/svf/lib/Util/NodeIDAllocator.cpp +2 -4
- package/svf/lib/WPA/Andersen.cpp +1 -1
- package/svf/lib/WPA/VersionedFlowSensitive.cpp +148 -0
|
@@ -377,8 +377,18 @@ Static Public Member Functions</h2></td></tr>
|
|
|
377
377
|
<tr class="separator:a25c68f9d2b88437778e854ff0d741d1b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
378
378
|
<tr class="memitem:a3279969934d6778a6cffe926ed724bfc"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a3279969934d6778a6cffe926ed724bfc">writeObjVarToFile</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &filename)</td></tr>
|
|
379
379
|
<tr class="separator:a3279969934d6778a6cffe926ed724bfc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
380
|
+
<tr class="memitem:a6ca3ab1e32012ef13613f52f27f3c502"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a6ca3ab1e32012ef13613f52f27f3c502">writePtsResultToFile</a> (std::fstream &f)</td></tr>
|
|
381
|
+
<tr class="separator:a6ca3ab1e32012ef13613f52f27f3c502"><td class="memSeparator" colspan="2"> </td></tr>
|
|
382
|
+
<tr class="memitem:a5e782fb9a94a62403046c483ca4176c3"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a5e782fb9a94a62403046c483ca4176c3">writeGepObjVarMapToFile</a> (std::fstream &f)</td></tr>
|
|
383
|
+
<tr class="separator:a5e782fb9a94a62403046c483ca4176c3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
380
384
|
<tr class="memitem:a290501006cb700db0e07dc577429c928"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a290501006cb700db0e07dc577429c928">readFromFile</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &filename)</td></tr>
|
|
381
385
|
<tr class="separator:a290501006cb700db0e07dc577429c928"><td class="memSeparator" colspan="2"> </td></tr>
|
|
386
|
+
<tr class="memitem:af4e17ce3667d40d1a377508a275af384"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#af4e17ce3667d40d1a377508a275af384">readPtsResultFromFile</a> (std::ifstream &f)</td></tr>
|
|
387
|
+
<tr class="separator:af4e17ce3667d40d1a377508a275af384"><td class="memSeparator" colspan="2"> </td></tr>
|
|
388
|
+
<tr class="memitem:afce21c2a8fca8a2eae4883d2fe148cc0"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#afce21c2a8fca8a2eae4883d2fe148cc0">readGepObjVarMapFromFile</a> (std::ifstream &f)</td></tr>
|
|
389
|
+
<tr class="separator:afce21c2a8fca8a2eae4883d2fe148cc0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
390
|
+
<tr class="memitem:a4ad982a53fbf62c5513afe63b2435fa5"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a4ad982a53fbf62c5513afe63b2435fa5">readAndSetObjFieldSensitivity</a> (std::ifstream &f, const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &delimiterStr)</td></tr>
|
|
391
|
+
<tr class="separator:a4ad982a53fbf62c5513afe63b2435fa5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
382
392
|
<tr class="memitem:a236d3e9c894fd7c34c8d7a77ac11dd48"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">alias</a> (const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *V1, const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *V2) override</td></tr>
|
|
383
393
|
<tr class="memdesc:a236d3e9c894fd7c34c8d7a77ac11dd48"><td class="mdescLeft"> </td><td class="mdescRight">Interface expose to users of our pointer analysis, given Value infos. <a href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">More...</a><br /></td></tr>
|
|
384
394
|
<tr class="separator:a236d3e9c894fd7c34c8d7a77ac11dd48"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -952,19 +962,19 @@ Additional Inherited Members</h2></td></tr>
|
|
|
952
962
|
<p>Interface expose to users of our pointer analysis, given two pts. </p>
|
|
953
963
|
<p>Return alias results based on our points-to/alias analysis </p>
|
|
954
964
|
|
|
955
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#
|
|
956
|
-
<div class="fragment"><div class="line"><a name="
|
|
957
|
-
<div class="line"><a name="
|
|
958
|
-
<div class="line"><a name="
|
|
959
|
-
<div class="line"><a name="
|
|
960
|
-
<div class="line"><a name="
|
|
961
|
-
<div class="line"><a name="
|
|
962
|
-
<div class="line"><a name="
|
|
963
|
-
<div class="line"><a name="
|
|
964
|
-
<div class="line"><a name="
|
|
965
|
-
<div class="line"><a name="
|
|
966
|
-
<div class="line"><a name="
|
|
967
|
-
<div class="line"><a name="
|
|
965
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00591">591</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
966
|
+
<div class="fragment"><div class="line"><a name="l00592"></a><span class="lineno"> 592</span> {</div>
|
|
967
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  </div>
|
|
968
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts1;</div>
|
|
969
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(p1,pts1);</div>
|
|
970
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts2;</div>
|
|
971
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(p2,pts2);</div>
|
|
972
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  </div>
|
|
973
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">containBlackHoleNode</a>(pts1) || <a class="code" href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">containBlackHoleNode</a>(pts2) || pts1.<a class="code" href="classSVF_1_1PointsTo.html#ad78e4109c839914c4f7e37ca78046f1d">intersects</a>(pts2))</div>
|
|
974
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>;</div>
|
|
975
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">else</span></div>
|
|
976
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>;</div>
|
|
977
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> }</div>
|
|
968
978
|
</div><!-- fragment -->
|
|
969
979
|
</div>
|
|
970
980
|
</div>
|
|
@@ -1007,10 +1017,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1007
1017
|
|
|
1008
1018
|
<p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">SVF::PointerAnalysis</a>.</p>
|
|
1009
1019
|
|
|
1010
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#
|
|
1011
|
-
<div class="fragment"><div class="line"><a name="
|
|
1012
|
-
<div class="line"><a name="
|
|
1013
|
-
<div class="line"><a name="
|
|
1020
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00574">574</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
1021
|
+
<div class="fragment"><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> {</div>
|
|
1022
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">alias</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1),<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2));</div>
|
|
1023
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> }</div>
|
|
1014
1024
|
</div><!-- fragment -->
|
|
1015
1025
|
</div>
|
|
1016
1026
|
</div>
|
|
@@ -1053,10 +1063,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1053
1063
|
|
|
1054
1064
|
<p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#a0f712ead1f31750879948c36b2fc77cf">SVF::PointerAnalysis</a>.</p>
|
|
1055
1065
|
|
|
1056
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#
|
|
1057
|
-
<div class="fragment"><div class="line"><a name="
|
|
1058
|
-
<div class="line"><a name="
|
|
1059
|
-
<div class="line"><a name="
|
|
1066
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00583">583</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
1067
|
+
<div class="fragment"><div class="line"><a name="l00584"></a><span class="lineno"> 584</span> {</div>
|
|
1068
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">alias</a>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(node1),<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(node2));</div>
|
|
1069
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> }</div>
|
|
1060
1070
|
</div><!-- fragment -->
|
|
1061
1071
|
</div>
|
|
1062
1072
|
</div>
|
|
@@ -1225,22 +1235,22 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1225
1235
|
|
|
1226
1236
|
<p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#a861554c2fdeaa406131c2c920b4c7908">SVF::PointerAnalysis</a>.</p>
|
|
1227
1237
|
|
|
1228
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#
|
|
1229
|
-
<div class="fragment"><div class="line"><a name="
|
|
1230
|
-
<div class="line"><a name="
|
|
1231
|
-
<div class="line"><a name="
|
|
1232
|
-
<div class="line"><a name="
|
|
1233
|
-
<div class="line"><a name="
|
|
1234
|
-
<div class="line"><a name="
|
|
1235
|
-
<div class="line"><a name="
|
|
1236
|
-
<div class="line"><a name="
|
|
1237
|
-
<div class="line"><a name="
|
|
1238
|
-
<div class="line"><a name="
|
|
1239
|
-
<div class="line"><a name="
|
|
1240
|
-
<div class="line"><a name="
|
|
1241
|
-
<div class="line"><a name="
|
|
1242
|
-
<div class="line"><a name="
|
|
1243
|
-
<div class="line"><a name="
|
|
1238
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00471">471</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
1239
|
+
<div class="fragment"><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> {</div>
|
|
1240
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a> pagNodes;</div>
|
|
1241
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; it++)</div>
|
|
1242
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  {</div>
|
|
1243
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  pagNodes.insert(it->first);</div>
|
|
1244
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div>
|
|
1245
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  </div>
|
|
1246
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> : pagNodes)</div>
|
|
1247
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  {</div>
|
|
1248
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"----------------------------------------------\n"</span>;</div>
|
|
1249
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">dumpPts</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, this-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>));</div>
|
|
1250
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  }</div>
|
|
1251
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  </div>
|
|
1252
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"----------------------------------------------\n"</span>;</div>
|
|
1253
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> }</div>
|
|
1244
1254
|
</div><!-- fragment -->
|
|
1245
1255
|
</div>
|
|
1246
1256
|
</div>
|
|
@@ -1271,10 +1281,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1271
1281
|
|
|
1272
1282
|
<p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#ad409cbf61271743394b9e5868f3fd197">SVF::PointerAnalysis</a>.</p>
|
|
1273
1283
|
|
|
1274
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#
|
|
1275
|
-
<div class="fragment"><div class="line"><a name="
|
|
1276
|
-
<div class="line"><a name="
|
|
1277
|
-
<div class="line"><a name="
|
|
1284
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#l00225">225</a> of file <a class="el" href="PointerAnalysisImpl_8h_source.html">PointerAnalysisImpl.h</a>.</p>
|
|
1285
|
+
<div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  {</div>
|
|
1286
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>->dumpPTData();</div>
|
|
1287
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div>
|
|
1278
1288
|
</div><!-- fragment -->
|
|
1279
1289
|
</div>
|
|
1280
1290
|
</div>
|
|
@@ -1306,34 +1316,34 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1306
1316
|
|
|
1307
1317
|
<p>Reimplemented in <a class="el" href="classSVF_1_1Andersen.html#a43858bd242c7f2c5f33c3c0f6445376a">SVF::Andersen</a>.</p>
|
|
1308
1318
|
|
|
1309
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#
|
|
1310
|
-
<div class="fragment"><div class="line"><a name="
|
|
1311
|
-
<div class="line"><a name="
|
|
1312
|
-
<div class="line"><a name="
|
|
1313
|
-
<div class="line"><a name="
|
|
1314
|
-
<div class="line"><a name="
|
|
1315
|
-
<div class="line"><a name="
|
|
1316
|
-
<div class="line"><a name="
|
|
1317
|
-
<div class="line"><a name="
|
|
1318
|
-
<div class="line"><a name="
|
|
1319
|
-
<div class="line"><a name="
|
|
1320
|
-
<div class="line"><a name="
|
|
1321
|
-
<div class="line"><a name="
|
|
1322
|
-
<div class="line"><a name="
|
|
1323
|
-
<div class="line"><a name="
|
|
1324
|
-
<div class="line"><a name="
|
|
1325
|
-
<div class="line"><a name="
|
|
1326
|
-
<div class="line"><a name="
|
|
1327
|
-
<div class="line"><a name="
|
|
1328
|
-
<div class="line"><a name="
|
|
1329
|
-
<div class="line"><a name="
|
|
1330
|
-
<div class="line"><a name="
|
|
1331
|
-
<div class="line"><a name="
|
|
1332
|
-
<div class="line"><a name="
|
|
1333
|
-
<div class="line"><a name="
|
|
1334
|
-
<div class="line"><a name="
|
|
1335
|
-
<div class="line"><a name="
|
|
1336
|
-
<div class="line"><a name="
|
|
1319
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00438">438</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
1320
|
+
<div class="fragment"><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> {</div>
|
|
1321
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">for</span> (OrderedNodeSet::iterator nIter = this-><a class="code" href="classSVF_1_1PointerAnalysis.html#a60b111647e000cc983aa52513f90afbc">getAllValidPtrs</a>().begin();</div>
|
|
1322
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  nIter != this-><a class="code" href="classSVF_1_1PointerAnalysis.html#a60b111647e000cc983aa52513f90afbc">getAllValidPtrs</a>().end(); ++nIter)</div>
|
|
1323
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  {</div>
|
|
1324
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*nIter);</div>
|
|
1325
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()->isValidTopLevelPtr(node))</div>
|
|
1326
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  {</div>
|
|
1327
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = this-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div>
|
|
1328
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nNodeID "</span> << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" "</span>;</div>
|
|
1329
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  </div>
|
|
1330
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
|
|
1331
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  {</div>
|
|
1332
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\tPointsTo: {empty}\n\n"</span>;</div>
|
|
1333
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div>
|
|
1334
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">else</span></div>
|
|
1335
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  {</div>
|
|
1336
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\tPointsTo: { "</span>;</div>
|
|
1337
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
|
|
1338
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  it != eit; ++it)</div>
|
|
1339
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << *it << <span class="stringliteral">" "</span>;</div>
|
|
1340
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"}\n\n"</span>;</div>
|
|
1341
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div>
|
|
1342
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div>
|
|
1343
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div>
|
|
1344
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  </div>
|
|
1345
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>().flush();</div>
|
|
1346
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> }</div>
|
|
1337
1347
|
</div><!-- fragment -->
|
|
1338
1348
|
</div>
|
|
1339
1349
|
</div>
|
|
@@ -1529,12 +1539,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1529
1539
|
</table>
|
|
1530
1540
|
</div><div class="memdoc">
|
|
1531
1541
|
|
|
1532
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#
|
|
1533
|
-
<div class="fragment"><div class="line"><a name="
|
|
1534
|
-
<div class="line"><a name="
|
|
1535
|
-
<div class="line"><a name="
|
|
1536
|
-
<div class="line"><a name="
|
|
1537
|
-
<div class="line"><a name="
|
|
1542
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#l00178">178</a> of file <a class="el" href="PointerAnalysisImpl_8h_source.html">PointerAnalysisImpl.h</a>.</p>
|
|
1543
|
+
<div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  {</div>
|
|
1544
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a5c2288519153467142e74c8dd4e77180">DFPTDataTy</a>* df = SVFUtil::dyn_cast<DFPTDataTy>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get());</div>
|
|
1545
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  assert(df && <span class="stringliteral">"BVDataPTAImpl::getDFPTDataTy: not a DFPTDataTy!"</span>);</div>
|
|
1546
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">return</span> df;</div>
|
|
1547
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  }</div>
|
|
1538
1548
|
</div><!-- fragment -->
|
|
1539
1549
|
</div>
|
|
1540
1550
|
</div>
|
|
@@ -1561,12 +1571,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1561
1571
|
</table>
|
|
1562
1572
|
</div><div class="memdoc">
|
|
1563
1573
|
|
|
1564
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#
|
|
1565
|
-
<div class="fragment"><div class="line"><a name="
|
|
1566
|
-
<div class="line"><a name="
|
|
1567
|
-
<div class="line"><a name="
|
|
1568
|
-
<div class="line"><a name="
|
|
1569
|
-
<div class="line"><a name="
|
|
1574
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#l00171">171</a> of file <a class="el" href="PointerAnalysisImpl_8h_source.html">PointerAnalysisImpl.h</a>.</p>
|
|
1575
|
+
<div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div>
|
|
1576
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#abd8bb73e9beac5e39667091b1e211bd3">DiffPTDataTy</a>* diff = SVFUtil::dyn_cast<DiffPTDataTy>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get());</div>
|
|
1577
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  assert(diff && <span class="stringliteral">"BVDataPTAImpl::getDiffPTDataTy: not a DiffPTDataTy!"</span>);</div>
|
|
1578
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> diff;</div>
|
|
1579
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div>
|
|
1570
1580
|
</div><!-- fragment -->
|
|
1571
1581
|
</div>
|
|
1572
1582
|
</div>
|
|
@@ -1593,12 +1603,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1593
1603
|
</table>
|
|
1594
1604
|
</div><div class="memdoc">
|
|
1595
1605
|
|
|
1596
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#
|
|
1597
|
-
<div class="fragment"><div class="line"><a name="
|
|
1598
|
-
<div class="line"><a name="
|
|
1599
|
-
<div class="line"><a name="
|
|
1600
|
-
<div class="line"><a name="
|
|
1601
|
-
<div class="line"><a name="
|
|
1606
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#l00185">185</a> of file <a class="el" href="PointerAnalysisImpl_8h_source.html">PointerAnalysisImpl.h</a>.</p>
|
|
1607
|
+
<div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div>
|
|
1608
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac130bf326911b8e5396f57daa78566e7">MutDFPTDataTy</a>* mdf = SVFUtil::dyn_cast<MutDFPTDataTy>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get());</div>
|
|
1609
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  assert(mdf && <span class="stringliteral">"BVDataPTAImpl::getMutDFPTDataTy: not a MutDFPTDataTy!"</span>);</div>
|
|
1610
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">return</span> mdf;</div>
|
|
1611
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
|
1602
1612
|
</div><!-- fragment -->
|
|
1603
1613
|
</div>
|
|
1604
1614
|
</div>
|
|
@@ -1657,10 +1667,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1657
1667
|
|
|
1658
1668
|
<p>Get points-to data structure. </p>
|
|
1659
1669
|
|
|
1660
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#
|
|
1661
|
-
<div class="fragment"><div class="line"><a name="
|
|
1662
|
-
<div class="line"><a name="
|
|
1663
|
-
<div class="line"><a name="
|
|
1670
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#l00155">155</a> of file <a class="el" href="PointerAnalysisImpl_8h_source.html">PointerAnalysisImpl.h</a>.</p>
|
|
1671
|
+
<div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div>
|
|
1672
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get();</div>
|
|
1673
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div>
|
|
1664
1674
|
</div><!-- fragment -->
|
|
1665
1675
|
</div>
|
|
1666
1676
|
</div>
|
|
@@ -1757,12 +1767,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1757
1767
|
</table>
|
|
1758
1768
|
</div><div class="memdoc">
|
|
1759
1769
|
|
|
1760
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#
|
|
1761
|
-
<div class="fragment"><div class="line"><a name="
|
|
1762
|
-
<div class="line"><a name="
|
|
1763
|
-
<div class="line"><a name="
|
|
1764
|
-
<div class="line"><a name="
|
|
1765
|
-
<div class="line"><a name="
|
|
1770
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#l00192">192</a> of file <a class="el" href="PointerAnalysisImpl_8h_source.html">PointerAnalysisImpl.h</a>.</p>
|
|
1771
|
+
<div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  {</div>
|
|
1772
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a8bc5e039958280b18e5a00a56e0bdc94">VersionedPTDataTy</a>* v = SVFUtil::dyn_cast<VersionedPTDataTy>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get());</div>
|
|
1773
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  assert(v && <span class="stringliteral">"BVDataPTAImpl::getVersionedPTDataTy: not a VersionedPTDataTy!"</span>);</div>
|
|
1774
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> v;</div>
|
|
1775
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div>
|
|
1766
1776
|
</div><!-- fragment -->
|
|
1767
1777
|
</div>
|
|
1768
1778
|
</div>
|
|
@@ -1793,61 +1803,61 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1793
1803
|
|
|
1794
1804
|
<p>Reimplemented in <a class="el" href="classSVF_1_1AndersenBase.html#af37392229dab0a1f2f807a12186c3b39">SVF::AndersenBase</a>.</p>
|
|
1795
1805
|
|
|
1796
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#
|
|
1797
|
-
<div class="fragment"><div class="line"><a name="
|
|
1798
|
-
<div class="line"><a name="
|
|
1799
|
-
<div class="line"><a name="
|
|
1800
|
-
<div class="line"><a name="
|
|
1801
|
-
<div class="line"><a name="
|
|
1802
|
-
<div class="line"><a name="
|
|
1803
|
-
<div class="line"><a name="
|
|
1804
|
-
<div class="line"><a name="
|
|
1805
|
-
<div class="line"><a name="
|
|
1806
|
-
<div class="line"><a name="
|
|
1807
|
-
<div class="line"><a name="
|
|
1808
|
-
<div class="line"><a name="
|
|
1809
|
-
<div class="line"><a name="
|
|
1810
|
-
<div class="line"><a name="
|
|
1811
|
-
<div class="line"><a name="
|
|
1812
|
-
<div class="line"><a name="
|
|
1813
|
-
<div class="line"><a name="
|
|
1814
|
-
<div class="line"><a name="
|
|
1815
|
-
<div class="line"><a name="
|
|
1816
|
-
<div class="line"><a name="
|
|
1817
|
-
<div class="line"><a name="
|
|
1818
|
-
<div class="line"><a name="
|
|
1819
|
-
<div class="line"><a name="
|
|
1820
|
-
<div class="line"><a name="
|
|
1821
|
-
<div class="line"><a name="
|
|
1822
|
-
<div class="line"><a name="
|
|
1823
|
-
<div class="line"><a name="
|
|
1824
|
-
<div class="line"><a name="
|
|
1825
|
-
<div class="line"><a name="
|
|
1826
|
-
<div class="line"><a name="
|
|
1827
|
-
<div class="line"><a name="
|
|
1828
|
-
<div class="line"><a name="
|
|
1829
|
-
<div class="line"><a name="
|
|
1830
|
-
<div class="line"><a name="
|
|
1831
|
-
<div class="line"><a name="
|
|
1832
|
-
<div class="line"><a name="
|
|
1833
|
-
<div class="line"><a name="
|
|
1834
|
-
<div class="line"><a name="
|
|
1835
|
-
<div class="line"><a name="
|
|
1836
|
-
<div class="line"><a name="
|
|
1837
|
-
<div class="line"><a name="
|
|
1838
|
-
<div class="line"><a name="
|
|
1839
|
-
<div class="line"><a name="
|
|
1840
|
-
<div class="line"><a name="
|
|
1841
|
-
<div class="line"><a name="
|
|
1842
|
-
<div class="line"><a name="
|
|
1843
|
-
<div class="line"><a name="
|
|
1844
|
-
<div class="line"><a name="
|
|
1845
|
-
<div class="line"><a name="
|
|
1846
|
-
<div class="line"><a name="
|
|
1847
|
-
<div class="line"><a name="
|
|
1848
|
-
<div class="line"><a name="
|
|
1849
|
-
<div class="line"><a name="
|
|
1850
|
-
<div class="line"><a name="
|
|
1806
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00515">515</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
1807
|
+
<div class="fragment"><div class="line"><a name="l00516"></a><span class="lineno"> 516</span> {</div>
|
|
1808
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <a class="code" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">SVFIR::MemObjToFieldsMap</a> &memToFieldsMap = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">getMemToFieldsMap</a>();</div>
|
|
1809
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">SVFIR::NodeOffsetMap</a> &GepObjVarMap = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">getGepObjNodeMap</a>();</div>
|
|
1810
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  </div>
|
|
1811
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="comment">// collect each gep node whose base node has been set as field-insensitive</span></div>
|
|
1812
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> dropNodes;</div>
|
|
1813
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> t: memToFieldsMap)</div>
|
|
1814
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div>
|
|
1815
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = t.first;</div>
|
|
1816
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* memObj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(base);</div>
|
|
1817
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  assert(memObj && <span class="stringliteral">"Invalid memobj in memToFieldsMap"</span>);</div>
|
|
1818
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">if</span> (memObj-><a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div>
|
|
1819
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  {</div>
|
|
1820
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> : t.second)</div>
|
|
1821
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  {</div>
|
|
1822
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">if</span> (SVFUtil::isa<GepObjVar>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>)))</div>
|
|
1823
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  {</div>
|
|
1824
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  dropNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(<span class="keywordtype">id</span>);</div>
|
|
1825
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div>
|
|
1826
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">else</span></div>
|
|
1827
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  assert(<span class="keywordtype">id</span> == base && <span class="stringliteral">"Not a GepObj Node or a baseObj Node?"</span>);</div>
|
|
1828
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  }</div>
|
|
1829
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div>
|
|
1830
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div>
|
|
1831
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  </div>
|
|
1832
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="comment">// remove the collected redundant gep nodes in each pointers's pts</span></div>
|
|
1833
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> nIter = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); nIter != <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++nIter)</div>
|
|
1834
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  {</div>
|
|
1835
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> = nIter->first;</div>
|
|
1836
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  </div>
|
|
1837
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &tmpPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
1838
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> obj : tmpPts)</div>
|
|
1839
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  {</div>
|
|
1840
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">if</span> (!dropNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(obj))</div>
|
|
1841
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">continue</span>;</div>
|
|
1842
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> baseObj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(obj);</div>
|
|
1843
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a4909696c946cf6aba12542ec51766b64">clearPts</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, obj);</div>
|
|
1844
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">addPts</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, baseObj);</div>
|
|
1845
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div>
|
|
1846
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  }</div>
|
|
1847
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  </div>
|
|
1848
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="comment">// clear GepObjVarMap and memToFieldsMap for redundant gepnodes</span></div>
|
|
1849
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="comment">// and remove those nodes from pag</span></div>
|
|
1850
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>: dropNodes)</div>
|
|
1851
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  {</div>
|
|
1852
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
1853
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a> *gepNode = SVFUtil::dyn_cast<GepObjVar>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>));</div>
|
|
1854
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> apOffset = gepNode-><a class="code" href="classSVF_1_1GepObjVar.html#a10790e82dbb00532d4aa171f592c54bc">getConstantFieldIdx</a>();</div>
|
|
1855
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  GepObjVarMap.erase(std::make_pair(base, apOffset));</div>
|
|
1856
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  memToFieldsMap[base].reset(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
1857
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  </div>
|
|
1858
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">removeGNode</a>(gepNode);</div>
|
|
1859
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div>
|
|
1860
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> }</div>
|
|
1851
1861
|
</div><!-- fragment -->
|
|
1852
1862
|
</div>
|
|
1853
1863
|
</div>
|
|
@@ -1890,23 +1900,80 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1890
1900
|
|
|
1891
1901
|
<p>Reimplemented in <a class="el" href="classSVF_1_1CFLAlias.html#a25b38896aef06dad19532f7678291b37">SVF::CFLAlias</a>.</p>
|
|
1892
1902
|
|
|
1893
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#
|
|
1894
|
-
<div class="fragment"><div class="line"><a name="
|
|
1895
|
-
<div class="line"><a name="
|
|
1896
|
-
<div class="line"><a name="
|
|
1897
|
-
<div class="line"><a name="
|
|
1898
|
-
<div class="line"><a name="
|
|
1899
|
-
<div class="line"><a name="
|
|
1900
|
-
<div class="line"><a name="
|
|
1901
|
-
<div class="line"><a name="
|
|
1902
|
-
<div class="line"><a name="
|
|
1903
|
-
<div class="line"><a name="
|
|
1904
|
-
<div class="line"><a name="
|
|
1905
|
-
<div class="line"><a name="
|
|
1906
|
-
<div class="line"><a name="
|
|
1907
|
-
<div class="line"><a name="
|
|
1908
|
-
<div class="line"><a name="
|
|
1909
|
-
<div class="line"><a name="
|
|
1903
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00494">494</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
1904
|
+
<div class="fragment"><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> {</div>
|
|
1905
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">for</span>(CallSiteToFunPtrMap::const_iterator iter = callsites.begin(), eiter = callsites.end(); iter!=eiter; ++iter)</div>
|
|
1906
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  {</div>
|
|
1907
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = iter->first;</div>
|
|
1908
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  </div>
|
|
1909
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#a427a38e580db4bf04c9d716762243c89">isVirtualCall</a>())</div>
|
|
1910
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div>
|
|
1911
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* vtbl = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#a9b04a0f24be915a6e124106060225a3d">getVtablePtr</a>();</div>
|
|
1912
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(vtbl));</div>
|
|
1913
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vtblId = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(vtbl);</div>
|
|
1914
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba">resolveCPPIndCalls</a>(cs, <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(vtblId), newEdges);</div>
|
|
1915
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div>
|
|
1916
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">else</span></div>
|
|
1917
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">resolveIndCalls</a>(iter->first,<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(iter->second),newEdges);</div>
|
|
1918
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div>
|
|
1919
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> }</div>
|
|
1920
|
+
</div><!-- fragment -->
|
|
1921
|
+
</div>
|
|
1922
|
+
</div>
|
|
1923
|
+
<a id="a4ad982a53fbf62c5513afe63b2435fa5"></a>
|
|
1924
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a4ad982a53fbf62c5513afe63b2435fa5">◆ </a></span>readAndSetObjFieldSensitivity()</h2>
|
|
1925
|
+
|
|
1926
|
+
<div class="memitem">
|
|
1927
|
+
<div class="memproto">
|
|
1928
|
+
<table class="mlabels">
|
|
1929
|
+
<tr>
|
|
1930
|
+
<td class="mlabels-left">
|
|
1931
|
+
<table class="memname">
|
|
1932
|
+
<tr>
|
|
1933
|
+
<td class="memname">void BVDataPTAImpl::readAndSetObjFieldSensitivity </td>
|
|
1934
|
+
<td>(</td>
|
|
1935
|
+
<td class="paramtype">std::ifstream & </td>
|
|
1936
|
+
<td class="paramname"><em>f</em>, </td>
|
|
1937
|
+
</tr>
|
|
1938
|
+
<tr>
|
|
1939
|
+
<td class="paramkey"></td>
|
|
1940
|
+
<td></td>
|
|
1941
|
+
<td class="paramtype">const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> & </td>
|
|
1942
|
+
<td class="paramname"><em>delimiterStr</em> </td>
|
|
1943
|
+
</tr>
|
|
1944
|
+
<tr>
|
|
1945
|
+
<td></td>
|
|
1946
|
+
<td>)</td>
|
|
1947
|
+
<td></td><td></td>
|
|
1948
|
+
</tr>
|
|
1949
|
+
</table>
|
|
1950
|
+
</td>
|
|
1951
|
+
<td class="mlabels-right">
|
|
1952
|
+
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
1953
|
+
</tr>
|
|
1954
|
+
</table>
|
|
1955
|
+
</div><div class="memdoc">
|
|
1956
|
+
|
|
1957
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00379">379</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
1958
|
+
<div class="fragment"><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> {</div>
|
|
1959
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordtype">string</span> line;</div>
|
|
1960
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="comment">// //update ObjVar status</span></div>
|
|
1961
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">while</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>.good())</div>
|
|
1962
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div>
|
|
1963
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  getline(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, line);</div>
|
|
1964
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">if</span> (line.empty() || line == delimiterStr)</div>
|
|
1965
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">break</span>;</div>
|
|
1966
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="comment">// Parse a single line in the form of "baseNodeID insensitive"</span></div>
|
|
1967
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  istringstream ss(line);</div>
|
|
1968
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base;</div>
|
|
1969
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordtype">bool</span> insensitive;</div>
|
|
1970
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  ss >> base >> insensitive;</div>
|
|
1971
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  </div>
|
|
1972
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">if</span> (insensitive)</div>
|
|
1973
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ac5683fe2e24b393ccc5cb6d8bc92cf2b">setObjFieldInsensitive</a>(base);</div>
|
|
1974
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div>
|
|
1975
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  </div>
|
|
1976
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> }</div>
|
|
1910
1977
|
</div><!-- fragment -->
|
|
1911
1978
|
</div>
|
|
1912
1979
|
</div>
|
|
@@ -1935,124 +2002,176 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1935
2002
|
</div><div class="memdoc">
|
|
1936
2003
|
<p>Load pointer analysis result form a file. It populates <a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> with the points-to data, and updates <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> with the <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> offset nodes created during <a class="el" href="classSVF_1_1Andersen.html">Andersen</a>'s solving stage. </p>
|
|
1937
2004
|
|
|
1938
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#
|
|
1939
|
-
<div class="fragment"><div class="line"><a name="
|
|
1940
|
-
<div class="line"><a name="
|
|
1941
|
-
<div class="line"><a name="
|
|
1942
|
-
<div class="line"><a name="
|
|
1943
|
-
<div class="line"><a name="
|
|
1944
|
-
<div class="line"><a name="
|
|
1945
|
-
<div class="line"><a name="
|
|
1946
|
-
<div class="line"><a name="
|
|
1947
|
-
<div class="line"><a name="
|
|
1948
|
-
<div class="line"><a name="
|
|
1949
|
-
<div class="line"><a name="
|
|
1950
|
-
<div class="line"><a name="
|
|
1951
|
-
<div class="line"><a name="
|
|
1952
|
-
<div class="line"><a name="
|
|
1953
|
-
<div class="line"><a name="
|
|
1954
|
-
<div class="line"><a name="
|
|
1955
|
-
<div class="line"><a name="
|
|
1956
|
-
<div class="line"><a name="
|
|
1957
|
-
<div class="line"><a name="
|
|
1958
|
-
<div class="line"><a name="
|
|
1959
|
-
<div class="line"><a name="
|
|
1960
|
-
<div class="line"><a name="
|
|
1961
|
-
<div class="line"><a name="
|
|
1962
|
-
<div class="line"><a name="
|
|
1963
|
-
<div class="line"><a name="
|
|
1964
|
-
<div class="line"><a name="
|
|
1965
|
-
<div class="line"><a name="
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
<
|
|
1970
|
-
<
|
|
1971
|
-
|
|
1972
|
-
<div class="
|
|
1973
|
-
<div class="
|
|
1974
|
-
<
|
|
1975
|
-
|
|
1976
|
-
<
|
|
1977
|
-
<
|
|
1978
|
-
|
|
1979
|
-
<
|
|
1980
|
-
<
|
|
1981
|
-
<
|
|
1982
|
-
<
|
|
1983
|
-
<
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
<
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
<
|
|
1994
|
-
<div class="line"><a name="
|
|
1995
|
-
<div class="line"><a name="
|
|
1996
|
-
<div class="line"><a name="
|
|
1997
|
-
<div class="line"><a name="
|
|
1998
|
-
<div class="line"><a name="
|
|
1999
|
-
<div class="line"><a name="
|
|
2000
|
-
<div class="line"><a name="
|
|
2001
|
-
<div class="line"><a name="
|
|
2002
|
-
<div class="line"><a name="
|
|
2003
|
-
<div class="line"><a name="
|
|
2004
|
-
<div class="line"><a name="
|
|
2005
|
-
<div class="line"><a name="
|
|
2006
|
-
<div class="line"><a name="
|
|
2007
|
-
<div class="line"><a name="
|
|
2008
|
-
<div class="line"><a name="
|
|
2009
|
-
<div class="line"><a name="
|
|
2010
|
-
<div class="line"><a name="
|
|
2011
|
-
<div class="line"><a name="
|
|
2012
|
-
<div class="line"><a name="
|
|
2013
|
-
<div class="line"><a name="
|
|
2014
|
-
<div class="line"><a name="
|
|
2015
|
-
<div class="line"><a name="
|
|
2016
|
-
<div class="line"><a name="
|
|
2017
|
-
<div class="line"><a name="
|
|
2018
|
-
<div class="line"><a name="
|
|
2019
|
-
<div class="line"><a name="
|
|
2020
|
-
<div class="line"><a name="
|
|
2021
|
-
<div class="line"><a name="
|
|
2022
|
-
<div class="line"><a name="
|
|
2023
|
-
<div class="line"><a name="
|
|
2024
|
-
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordtype">size_t</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
|
|
2025
|
-
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  ss >> <span class="keywordtype">id</span> >> base >> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
|
|
2026
|
-
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">getGepObjVar</a>(base, <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
|
|
2027
|
-
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordtype">bool</span> matched = (<span class="keywordtype">id</span> == <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
2028
|
-
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  (void)matched;</div>
|
|
2029
|
-
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  assert(matched && <span class="stringliteral">"Error adding GepObjNode into SVFIR!"</span>);</div>
|
|
2030
|
-
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div>
|
|
2005
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00405">405</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
2006
|
+
<div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> {</div>
|
|
2007
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
|
|
2008
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Loading pointer analysis results from '"</span> << filename << <span class="stringliteral">"'..."</span>;</div>
|
|
2009
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  </div>
|
|
2010
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  ifstream <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>(filename.c_str());</div>
|
|
2011
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">if</span> (!<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>.is_open())</div>
|
|
2012
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  {</div>
|
|
2013
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" error opening file for reading!\n"</span>;</div>
|
|
2014
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2015
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  }</div>
|
|
2016
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  </div>
|
|
2017
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a4ad982a53fbf62c5513afe63b2435fa5">readAndSetObjFieldSensitivity</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>,<span class="stringliteral">"------"</span>);</div>
|
|
2018
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  </div>
|
|
2019
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#af4e17ce3667d40d1a377508a275af384">readPtsResultFromFile</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
2020
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  </div>
|
|
2021
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#afce21c2a8fca8a2eae4883d2fe148cc0">readGepObjVarMapFromFile</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
2022
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  </div>
|
|
2023
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a4ad982a53fbf62c5513afe63b2435fa5">readAndSetObjFieldSensitivity</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>,<span class="stringliteral">""</span>);</div>
|
|
2024
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  </div>
|
|
2025
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="comment">// Update callgraph</span></div>
|
|
2026
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">updateCallGraph</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>());</div>
|
|
2027
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
|
|
2028
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>.close();</div>
|
|
2029
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div>
|
|
2030
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  </div>
|
|
2031
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2032
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> }</div>
|
|
2033
|
+
</div><!-- fragment -->
|
|
2034
|
+
</div>
|
|
2035
|
+
</div>
|
|
2036
|
+
<a id="afce21c2a8fca8a2eae4883d2fe148cc0"></a>
|
|
2037
|
+
<h2 class="memtitle"><span class="permalink"><a href="#afce21c2a8fca8a2eae4883d2fe148cc0">◆ </a></span>readGepObjVarMapFromFile()</h2>
|
|
2038
|
+
|
|
2039
|
+
<div class="memitem">
|
|
2040
|
+
<div class="memproto">
|
|
2041
|
+
<table class="mlabels">
|
|
2042
|
+
<tr>
|
|
2043
|
+
<td class="mlabels-left">
|
|
2044
|
+
<table class="memname">
|
|
2045
|
+
<tr>
|
|
2046
|
+
<td class="memname">void BVDataPTAImpl::readGepObjVarMapFromFile </td>
|
|
2047
|
+
<td>(</td>
|
|
2048
|
+
<td class="paramtype">std::ifstream & </td>
|
|
2049
|
+
<td class="paramname"><em>f</em></td><td>)</td>
|
|
2050
|
+
<td></td>
|
|
2051
|
+
</tr>
|
|
2052
|
+
</table>
|
|
2053
|
+
</td>
|
|
2054
|
+
<td class="mlabels-right">
|
|
2055
|
+
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
2056
|
+
</tr>
|
|
2057
|
+
</table>
|
|
2058
|
+
</div><div class="memdoc">
|
|
2059
|
+
|
|
2060
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00343">343</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
2061
|
+
<div class="fragment"><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> {</div>
|
|
2062
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordtype">string</span> line;</div>
|
|
2063
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="comment">//read GepObjVarMap from file</span></div>
|
|
2064
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">SVFIR::NodeOffsetMap</a> gepObjVarMap = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">getGepObjNodeMap</a>();</div>
|
|
2065
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">while</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>.good())</div>
|
|
2066
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  {</div>
|
|
2067
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  getline(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, line);</div>
|
|
2068
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">if</span> (line == <span class="stringliteral">"------"</span>) <span class="keywordflow">break</span>;</div>
|
|
2069
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="comment">// Parse a single line in the form of "ID baseNodeID offset"</span></div>
|
|
2070
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  istringstream ss(line);</div>
|
|
2071
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base;</div>
|
|
2072
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordtype">size_t</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
|
|
2073
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id;</div>
|
|
2074
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  ss >> base >> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> >>id;</div>
|
|
2075
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  SVFIR::NodeOffsetMap::const_iterator iter = gepObjVarMap.find(std::make_pair(base, <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>));</div>
|
|
2076
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">if</span> (iter == gepObjVarMap.end())</div>
|
|
2077
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div>
|
|
2078
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(base);</div>
|
|
2079
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <span class="keyword">nullptr</span>;</div>
|
|
2080
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>* gepObjVar = SVFUtil::dyn_cast<GepObjVar>(node))</div>
|
|
2081
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  obj = gepObjVar->getMemObj();</div>
|
|
2082
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a>* baseNode = SVFUtil::dyn_cast<FIObjVar>(node))</div>
|
|
2083
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  obj = baseNode->getMemObj();</div>
|
|
2084
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>* baseNode = SVFUtil::dyn_cast<DummyObjVar>(node))</div>
|
|
2085
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  obj = baseNode->getMemObj();</div>
|
|
2086
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">else</span></div>
|
|
2087
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"new gep obj node kind?"</span>);</div>
|
|
2088
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a685991a5dec8a17fe73b3161fdb9ea7e">addGepObjNode</a>(obj, <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>, <span class="keywordtype">id</span>);</div>
|
|
2089
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-><a class="code" href="classSVF_1_1NodeIDAllocator.html#a9c45508d535a6c669cfeb150aa4fb71f">increaseNumOfObjAndNodes</a>();</div>
|
|
2090
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div>
|
|
2031
2091
|
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </div>
|
|
2032
|
-
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> 
|
|
2033
|
-
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> 
|
|
2034
|
-
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> 
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
<
|
|
2039
|
-
<
|
|
2040
|
-
|
|
2041
|
-
<div class="
|
|
2042
|
-
<div class="
|
|
2043
|
-
<
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
<
|
|
2047
|
-
<
|
|
2048
|
-
<
|
|
2049
|
-
<
|
|
2050
|
-
<
|
|
2051
|
-
<
|
|
2052
|
-
<
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2092
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  </div>
|
|
2093
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div>
|
|
2094
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> }</div>
|
|
2095
|
+
</div><!-- fragment -->
|
|
2096
|
+
</div>
|
|
2097
|
+
</div>
|
|
2098
|
+
<a id="af4e17ce3667d40d1a377508a275af384"></a>
|
|
2099
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af4e17ce3667d40d1a377508a275af384">◆ </a></span>readPtsResultFromFile()</h2>
|
|
2100
|
+
|
|
2101
|
+
<div class="memitem">
|
|
2102
|
+
<div class="memproto">
|
|
2103
|
+
<table class="mlabels">
|
|
2104
|
+
<tr>
|
|
2105
|
+
<td class="mlabels-left">
|
|
2106
|
+
<table class="memname">
|
|
2107
|
+
<tr>
|
|
2108
|
+
<td class="memname">void BVDataPTAImpl::readPtsResultFromFile </td>
|
|
2109
|
+
<td>(</td>
|
|
2110
|
+
<td class="paramtype">std::ifstream & </td>
|
|
2111
|
+
<td class="paramname"><em>f</em></td><td>)</td>
|
|
2112
|
+
<td></td>
|
|
2113
|
+
</tr>
|
|
2114
|
+
</table>
|
|
2115
|
+
</td>
|
|
2116
|
+
<td class="mlabels-right">
|
|
2117
|
+
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
2118
|
+
</tr>
|
|
2119
|
+
</table>
|
|
2120
|
+
</div><div class="memdoc">
|
|
2121
|
+
|
|
2122
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00289">289</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
2123
|
+
<div class="fragment"><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> {</div>
|
|
2124
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordtype">string</span> line;</div>
|
|
2125
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="comment">// Read analysis results from file</span></div>
|
|
2126
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">PTDataTy</a> *<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a> = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>();</div>
|
|
2127
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
|
|
2128
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="comment">// Read points-to sets</span></div>
|
|
2129
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordtype">string</span> delimiter1 = <span class="stringliteral">" -> { "</span>;</div>
|
|
2130
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordtype">string</span> delimiter2 = <span class="stringliteral">" }"</span>;</div>
|
|
2131
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  map<NodeID, string> nodePtsMap;</div>
|
|
2132
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  map<string, PointsTo> strPtsMap;</div>
|
|
2133
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </div>
|
|
2134
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">while</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>.good())</div>
|
|
2135
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  {</div>
|
|
2136
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">// Parse a single line in the form of "var -> { obj1 obj2 obj3 }"</span></div>
|
|
2137
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  getline(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, line);</div>
|
|
2138
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">if</span> (line.at(0) == <span class="charliteral">'['</span> || line == <span class="stringliteral">"---VERSIONED---"</span>) <span class="keywordflow">continue</span>;</div>
|
|
2139
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">if</span> (line == <span class="stringliteral">"------"</span>) <span class="keywordflow">break</span>;</div>
|
|
2140
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordtype">size_t</span> pos = line.find(delimiter1);</div>
|
|
2141
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">if</span> (pos == string::npos) <span class="keywordflow">break</span>;</div>
|
|
2142
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">if</span> (line.back() != <span class="charliteral">'}'</span>) <span class="keywordflow">break</span>;</div>
|
|
2143
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div>
|
|
2144
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// var</span></div>
|
|
2145
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> var = atoi(line.substr(0, pos).c_str());</div>
|
|
2146
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  </div>
|
|
2147
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="comment">// objs</span></div>
|
|
2148
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  pos = pos + delimiter1.length();</div>
|
|
2149
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordtype">size_t</span> len = line.length() - pos - delimiter2.length();</div>
|
|
2150
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordtype">string</span> objs = line.substr(pos, len);</div>
|
|
2151
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> dstPts;</div>
|
|
2152
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div>
|
|
2153
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">if</span> (!objs.empty())</div>
|
|
2154
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  {</div>
|
|
2155
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="comment">// map the variable ID to its unique string pointer set</span></div>
|
|
2156
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  nodePtsMap[var] = objs;</div>
|
|
2157
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">if</span> (strPtsMap.count(objs)) <span class="keywordflow">continue</span>;</div>
|
|
2158
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
|
|
2159
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  istringstream ss(objs);</div>
|
|
2160
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> obj;</div>
|
|
2161
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">while</span> (ss.good())</div>
|
|
2162
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div>
|
|
2163
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  ss >> obj;</div>
|
|
2164
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  dstPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(obj);</div>
|
|
2165
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  }</div>
|
|
2166
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="comment">// map the string pointer set to the parsed PointsTo set</span></div>
|
|
2167
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  strPtsMap[objs] = dstPts;</div>
|
|
2168
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  }</div>
|
|
2169
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  }</div>
|
|
2170
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  </div>
|
|
2171
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="comment">// map the variable ID to its pointer set</span></div>
|
|
2172
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> t: nodePtsMap)</div>
|
|
2173
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>->unionPts(t.first, strPtsMap[t.second]);</div>
|
|
2174
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> }</div>
|
|
2056
2175
|
</div><!-- fragment -->
|
|
2057
2176
|
</div>
|
|
2058
2177
|
</div>
|
|
@@ -2196,11 +2315,54 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2196
2315
|
|
|
2197
2316
|
<p>Reimplemented in <a class="el" href="classSVF_1_1FlowSensitive.html#aad0bf334d3c749240ca27b4bcfd6eeab">SVF::FlowSensitive</a>, <a class="el" href="classSVF_1_1Andersen.html#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b">SVF::Andersen</a>, <a class="el" href="classSVF_1_1CFLAlias.html#a9637bcb592d250b5556b242d2ffc88fa">SVF::CFLAlias</a>, <a class="el" href="classSVF_1_1Steensgaard.html#a86e82b92b1a5029c3c9499c7bd7b9ae0">SVF::Steensgaard</a>, <a class="el" href="classSVF_1_1AndersenSCD.html#a512c636bdaafe6a3ac8f0cc29392c573">SVF::AndersenSCD</a>, and <a class="el" href="classSVF_1_1AndersenBase.html#ac05796a5672ddb5bd0e08924d79da065">SVF::AndersenBase</a>.</p>
|
|
2198
2317
|
|
|
2199
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#
|
|
2200
|
-
<div class="fragment"><div class="line"><a name="
|
|
2201
|
-
<div class="line"><a name="
|
|
2202
|
-
<div class="line"><a name="
|
|
2203
|
-
<div class="line"><a name="
|
|
2318
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#l00165">165</a> of file <a class="el" href="PointerAnalysisImpl_8h_source.html">PointerAnalysisImpl.h</a>.</p>
|
|
2319
|
+
<div class="fragment"><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div>
|
|
2320
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Virtual function not implemented!"</span>);</div>
|
|
2321
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2322
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div>
|
|
2323
|
+
</div><!-- fragment -->
|
|
2324
|
+
</div>
|
|
2325
|
+
</div>
|
|
2326
|
+
<a id="a5e782fb9a94a62403046c483ca4176c3"></a>
|
|
2327
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a5e782fb9a94a62403046c483ca4176c3">◆ </a></span>writeGepObjVarMapToFile()</h2>
|
|
2328
|
+
|
|
2329
|
+
<div class="memitem">
|
|
2330
|
+
<div class="memproto">
|
|
2331
|
+
<table class="mlabels">
|
|
2332
|
+
<tr>
|
|
2333
|
+
<td class="mlabels-left">
|
|
2334
|
+
<table class="memname">
|
|
2335
|
+
<tr>
|
|
2336
|
+
<td class="memname">void BVDataPTAImpl::writeGepObjVarMapToFile </td>
|
|
2337
|
+
<td>(</td>
|
|
2338
|
+
<td class="paramtype">std::fstream & </td>
|
|
2339
|
+
<td class="paramname"><em>f</em></td><td>)</td>
|
|
2340
|
+
<td></td>
|
|
2341
|
+
</tr>
|
|
2342
|
+
</table>
|
|
2343
|
+
</td>
|
|
2344
|
+
<td class="mlabels-right">
|
|
2345
|
+
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
2346
|
+
</tr>
|
|
2347
|
+
</table>
|
|
2348
|
+
</div><div class="memdoc">
|
|
2349
|
+
|
|
2350
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00224">224</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
2351
|
+
<div class="fragment"><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> {</div>
|
|
2352
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">//write gepObjVarMap to file(in form of: baseID offset gepObjNodeId)</span></div>
|
|
2353
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">SVFIR::NodeOffsetMap</a> &gepObjVarMap = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">getGepObjNodeMap</a>();</div>
|
|
2354
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">for</span>(SVFIR::NodeOffsetMap::const_iterator it = gepObjVarMap.begin(), eit = gepObjVarMap.end(); it != eit; it++)</div>
|
|
2355
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div>
|
|
2356
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a43ffcccfd81f5400c2d4c8e4bd71bdde">SVFIR::NodeOffset</a> offsetPair = it -> first;</div>
|
|
2357
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="comment">//write the base id to file</span></div>
|
|
2358
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  f << offsetPair.first << <span class="stringliteral">" "</span>;</div>
|
|
2359
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="comment">//write the offset to file</span></div>
|
|
2360
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  f << offsetPair.second << <span class="stringliteral">" "</span>;</div>
|
|
2361
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">//write the gepObjNodeId to file</span></div>
|
|
2362
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  f << it->second << <span class="stringliteral">"\n"</span>;</div>
|
|
2363
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
|
2364
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
|
|
2365
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> }</div>
|
|
2204
2366
|
</div><!-- fragment -->
|
|
2205
2367
|
</div>
|
|
2206
2368
|
</div>
|
|
@@ -2266,6 +2428,58 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2266
2428
|
</div><!-- fragment -->
|
|
2267
2429
|
</div>
|
|
2268
2430
|
</div>
|
|
2431
|
+
<a id="a6ca3ab1e32012ef13613f52f27f3c502"></a>
|
|
2432
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a6ca3ab1e32012ef13613f52f27f3c502">◆ </a></span>writePtsResultToFile()</h2>
|
|
2433
|
+
|
|
2434
|
+
<div class="memitem">
|
|
2435
|
+
<div class="memproto">
|
|
2436
|
+
<table class="mlabels">
|
|
2437
|
+
<tr>
|
|
2438
|
+
<td class="mlabels-left">
|
|
2439
|
+
<table class="memname">
|
|
2440
|
+
<tr>
|
|
2441
|
+
<td class="memname">void BVDataPTAImpl::writePtsResultToFile </td>
|
|
2442
|
+
<td>(</td>
|
|
2443
|
+
<td class="paramtype">std::fstream & </td>
|
|
2444
|
+
<td class="paramname"><em>f</em></td><td>)</td>
|
|
2445
|
+
<td></td>
|
|
2446
|
+
</tr>
|
|
2447
|
+
</table>
|
|
2448
|
+
</td>
|
|
2449
|
+
<td class="mlabels-right">
|
|
2450
|
+
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
2451
|
+
</tr>
|
|
2452
|
+
</table>
|
|
2453
|
+
</div><div class="memdoc">
|
|
2454
|
+
|
|
2455
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00198">198</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
2456
|
+
<div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div>
|
|
2457
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="comment">// Write analysis results to file</span></div>
|
|
2458
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), ie = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != ie; ++it)</div>
|
|
2459
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div>
|
|
2460
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> var = it->first;</div>
|
|
2461
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &pts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(var);</div>
|
|
2462
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
|
|
2463
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  stringstream ss;</div>
|
|
2464
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  f << var << <span class="stringliteral">" -> { "</span>;</div>
|
|
2465
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
|
|
2466
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div>
|
|
2467
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  f << <span class="stringliteral">" "</span>;</div>
|
|
2468
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
|
|
2469
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">else</span></div>
|
|
2470
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  {</div>
|
|
2471
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>: pts)</div>
|
|
2472
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  {</div>
|
|
2473
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  f << <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> << <span class="stringliteral">" "</span>;</div>
|
|
2474
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div>
|
|
2475
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div>
|
|
2476
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  f << <span class="stringliteral">"}\n"</span>;</div>
|
|
2477
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div>
|
|
2478
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
|
2479
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> }</div>
|
|
2480
|
+
</div><!-- fragment -->
|
|
2481
|
+
</div>
|
|
2482
|
+
</div>
|
|
2269
2483
|
<a id="a25c68f9d2b88437778e854ff0d741d1b"></a>
|
|
2270
2484
|
<h2 class="memtitle"><span class="permalink"><a href="#a25c68f9d2b88437778e854ff0d741d1b">◆ </a></span>writeToFile()</h2>
|
|
2271
2485
|
|
|
@@ -2293,78 +2507,48 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2293
2507
|
<p>Interface for analysis result storage on filesystem. </p>
|
|
2294
2508
|
<p>Store pointer analysis result into a file. It includes the points-to relations, and all <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> nodes including those created when solving <a class="el" href="classSVF_1_1Andersen.html">Andersen</a>'s constraints. </p>
|
|
2295
2509
|
|
|
2296
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#
|
|
2297
|
-
<div class="fragment"><div class="line"><a name="
|
|
2298
|
-
<div class="line"><a name="
|
|
2299
|
-
<div class="line"><a name="
|
|
2300
|
-
<div class="line"><a name="
|
|
2301
|
-
<div class="line"><a name="
|
|
2302
|
-
<div class="line"><a name="
|
|
2303
|
-
<div class="line"><a name="
|
|
2304
|
-
<div class="line"><a name="
|
|
2305
|
-
<div class="line"><a name="
|
|
2306
|
-
<div class="line"><a name="
|
|
2307
|
-
<div class="line"><a name="
|
|
2308
|
-
<div class="line"><a name="
|
|
2309
|
-
<div class="line"><a name="
|
|
2310
|
-
<div class="line"><a name="
|
|
2311
|
-
<div class="line"><a name="
|
|
2312
|
-
<div class="line"><a name="
|
|
2313
|
-
<div class="line"><a name="
|
|
2314
|
-
<div class="line"><a name="
|
|
2315
|
-
<div class="line"><a name="
|
|
2316
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  f << var << <span class="stringliteral">" -> { "</span>;</div>
|
|
2317
|
-
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
|
|
2318
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  {</div>
|
|
2319
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  f << <span class="stringliteral">" "</span>;</div>
|
|
2320
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div>
|
|
2321
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">else</span></div>
|
|
2322
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div>
|
|
2323
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>: pts)</div>
|
|
2324
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  {</div>
|
|
2325
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  f << <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> << <span class="stringliteral">" "</span>;</div>
|
|
2326
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div>
|
|
2327
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div>
|
|
2328
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  f << <span class="stringliteral">"}\n"</span>;</div>
|
|
2329
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div>
|
|
2330
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
|
|
2331
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  f << <span class="stringliteral">"------\n"</span>;</div>
|
|
2332
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
|
|
2333
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// Write GepPAGNodes to file</span></div>
|
|
2334
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), ie = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != ie; ++it)</div>
|
|
2335
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div>
|
|
2336
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = it->second;</div>
|
|
2337
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a> *gepObjPN = SVFUtil::dyn_cast<GepObjVar>(pagNode))</div>
|
|
2338
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  {</div>
|
|
2339
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  f << it->first << <span class="stringliteral">" "</span>;</div>
|
|
2340
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  f << <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(it->first) << <span class="stringliteral">" "</span>;</div>
|
|
2341
|
-
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  f << gepObjPN->getConstantFieldIdx() << <span class="stringliteral">"\n"</span>;</div>
|
|
2342
|
-
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div>
|
|
2343
|
-
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div>
|
|
2344
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
|
|
2345
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  f << <span class="stringliteral">"------\n"</span>;</div>
|
|
2346
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
|
|
2347
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="comment">// Write BaseNodes insensitivity to file</span></div>
|
|
2348
|
-
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> NodeIDs;</div>
|
|
2349
|
-
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), ie = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != ie; ++it)</div>
|
|
2350
|
-
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  {</div>
|
|
2351
|
-
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = it->second;</div>
|
|
2352
|
-
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">if</span> (!isa<ObjVar>(pagNode)) <span class="keywordflow">continue</span>;</div>
|
|
2353
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(it->first);</div>
|
|
2354
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span> (NodeIDs.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)) <span class="keywordflow">continue</span>;</div>
|
|
2355
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  f << <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> << <span class="stringliteral">" "</span>;</div>
|
|
2356
|
-
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  f << <a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) << <span class="stringliteral">"\n"</span>;</div>
|
|
2357
|
-
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  NodeIDs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
2358
|
-
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div>
|
|
2510
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8cpp_source.html#l00246">246</a> of file <a class="el" href="PointerAnalysisImpl_8cpp_source.html">PointerAnalysisImpl.cpp</a>.</p>
|
|
2511
|
+
<div class="fragment"><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> {</div>
|
|
2512
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  </div>
|
|
2513
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Storing pointer analysis results to '"</span> << filename << <span class="stringliteral">"'..."</span>;</div>
|
|
2514
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div>
|
|
2515
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  error_code err;</div>
|
|
2516
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  std::fstream f(filename.c_str(), std::ios_base::app);</div>
|
|
2517
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">if</span> (!f.good())</div>
|
|
2518
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  {</div>
|
|
2519
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" error opening file for writing!\n"</span>;</div>
|
|
2520
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span>;</div>
|
|
2521
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div>
|
|
2522
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  </div>
|
|
2523
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a6ca3ab1e32012ef13613f52f27f3c502">writePtsResultToFile</a>(f);</div>
|
|
2524
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
|
|
2525
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  f << <span class="stringliteral">"------\n"</span>;</div>
|
|
2526
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
|
|
2527
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a5e782fb9a94a62403046c483ca4176c3">writeGepObjVarMapToFile</a>(f);</div>
|
|
2528
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
|
|
2529
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  f << <span class="stringliteral">"------\n"</span>;</div>
|
|
2359
2530
|
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  </div>
|
|
2360
|
-
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">//
|
|
2361
|
-
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> 
|
|
2362
|
-
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">
|
|
2531
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">// Write BaseNodes insensitivity to file</span></div>
|
|
2532
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> NodeIDs;</div>
|
|
2533
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), ie = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != ie; ++it)</div>
|
|
2363
2534
|
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div>
|
|
2364
|
-
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="
|
|
2365
|
-
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">
|
|
2366
|
-
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> 
|
|
2367
|
-
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> 
|
|
2535
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = it->second;</div>
|
|
2536
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (!isa<ObjVar>(pagNode)) <span class="keywordflow">continue</span>;</div>
|
|
2537
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(it->first);</div>
|
|
2538
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span> (NodeIDs.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)) <span class="keywordflow">continue</span>;</div>
|
|
2539
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  f << <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> << <span class="stringliteral">" "</span>;</div>
|
|
2540
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  f << <a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) << <span class="stringliteral">"\n"</span>;</div>
|
|
2541
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  NodeIDs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
2542
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div>
|
|
2543
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
|
|
2544
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="comment">// Job finish and close file</span></div>
|
|
2545
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  f.close();</div>
|
|
2546
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">if</span> (f.good())</div>
|
|
2547
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  {</div>
|
|
2548
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div>
|
|
2549
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">return</span>;</div>
|
|
2550
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div>
|
|
2551
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div>
|
|
2368
2552
|
</div><!-- fragment -->
|
|
2369
2553
|
</div>
|
|
2370
2554
|
</div>
|
|
@@ -2389,7 +2573,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2389
2573
|
</table>
|
|
2390
2574
|
</div><div class="memdoc">
|
|
2391
2575
|
|
|
2392
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#
|
|
2576
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#l00210">210</a> of file <a class="el" href="PointerAnalysisImpl_8h_source.html">PointerAnalysisImpl.h</a>.</p>
|
|
2393
2577
|
|
|
2394
2578
|
</div>
|
|
2395
2579
|
</div>
|
|
@@ -2415,7 +2599,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2415
2599
|
|
|
2416
2600
|
<p>Points-to data. </p>
|
|
2417
2601
|
|
|
2418
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#
|
|
2602
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysisImpl_8h_source.html#l00208">208</a> of file <a class="el" href="PointerAnalysisImpl_8h_source.html">PointerAnalysisImpl.h</a>.</p>
|
|
2419
2603
|
|
|
2420
2604
|
</div>
|
|
2421
2605
|
</div>
|
|
@@ -2428,10 +2612,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2428
2612
|
<div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
|
|
2429
2613
|
<div class="ttc" id="aclassSVF_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>
|
|
2430
2614
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a401ec65771a3d2dcc8eb60574aadd354"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">SVF::IRGraph::hasValueNode</a></div><div class="ttdeci">bool hasValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00142">IRGraph.h:142</a></div></div>
|
|
2615
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_afce21c2a8fca8a2eae4883d2fe148cc0"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#afce21c2a8fca8a2eae4883d2fe148cc0">SVF::BVDataPTAImpl::readGepObjVarMapFromFile</a></div><div class="ttdeci">virtual void readGepObjVarMapFromFile(std::ifstream &f)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00343">PointerAnalysisImpl.cpp:343</a></div></div>
|
|
2616
|
+
<div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a9c45508d535a6c669cfeb150aa4fb71f"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a9c45508d535a6c669cfeb150aa4fb71f">SVF::NodeIDAllocator::increaseNumOfObjAndNodes</a></div><div class="ttdeci">void increaseNumOfObjAndNodes()</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8h_source.html#l00085">NodeIDAllocator.h:85</a></div></div>
|
|
2431
2617
|
<div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
|
|
2432
2618
|
<div class="ttc" id="anamespaceSVF_html_a3c2bd95727ec0d9c55c631b6617026c8"><div class="ttname"><a href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">SVF::OrderedNodeSet</a></div><div class="ttdeci">OrderedSet< NodeID > OrderedNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00113">SVFType.h:113</a></div></div>
|
|
2433
2619
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00459">SymbolTableInfo.cpp:459</a></div></div>
|
|
2434
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap & getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
2620
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap & getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00337">SVFIR.h:337</a></div></div>
|
|
2621
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a6ca3ab1e32012ef13613f52f27f3c502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a6ca3ab1e32012ef13613f52f27f3c502">SVF::BVDataPTAImpl::writePtsResultToFile</a></div><div class="ttdeci">virtual void writePtsResultToFile(std::fstream &f)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00198">PointerAnalysisImpl.cpp:198</a></div></div>
|
|
2435
2622
|
<div class="ttc" id="acJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
|
|
2436
2623
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00384">GenericGraph.h:384</a></div></div>
|
|
2437
2624
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00138">IRGraph.h:138</a></div></div>
|
|
@@ -2443,67 +2630,72 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2443
2630
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
|
|
2444
2631
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
|
|
2445
2632
|
<div class="ttc" id="aclassSVF_1_1GepObjVar_html_a10790e82dbb00532d4aa171f592c54bc"><div class="ttname"><a href="classSVF_1_1GepObjVar.html#a10790e82dbb00532d4aa171f592c54bc">SVF::GepObjVar::getConstantFieldIdx</a></div><div class="ttdeci">APOffset getConstantFieldIdx() const</div><div class="ttdoc">offset of the mem object</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00491">SVFVariables.h:491</a></div></div>
|
|
2446
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a2026cffd7043208333083ed1a6603e7b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a2026cffd7043208333083ed1a6603e7b">SVF::BVDataPTAImpl::normalizePointsTo</a></div><div class="ttdeci">virtual void normalizePointsTo()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#
|
|
2633
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a2026cffd7043208333083ed1a6603e7b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a2026cffd7043208333083ed1a6603e7b">SVF::BVDataPTAImpl::normalizePointsTo</a></div><div class="ttdeci">virtual void normalizePointsTo()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00515">PointerAnalysisImpl.cpp:515</a></div></div>
|
|
2447
2634
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_acfdb43f20bbcababc928cc4df93a8483"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">SVF::BVDataPTAImpl::PTDataTy</a></div><div class="ttdeci">PTData< NodeID, NodeSet, NodeID, PointsTo > PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00046">PointerAnalysisImpl.h:46</a></div></div>
|
|
2448
2635
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">SVF::PointerAnalysis::FlowS_DDA</a></div><div class="ttdeci">@ FlowS_DDA</div><div class="ttdoc">Flow sensitive DDA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00085">PointerAnalysis.h:85</a></div></div>
|
|
2449
2636
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ab87dcf990c05d31f91b9bfdfcfb54b7d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab87dcf990c05d31f91b9bfdfcfb54b7d">SVF::PointerAnalysis::CFLFSCS_WPA</a></div><div class="ttdeci">@ CFLFSCS_WPA</div><div class="ttdoc">Flow-, context-, CFL-reachability-based analysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00080">PointerAnalysis.h:80</a></div></div>
|
|
2450
2637
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a6c06b12c95a4aa57edc6bef57514a7e1"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a6c06b12c95a4aa57edc6bef57514a7e1">SVF::PointerAnalysis::AndersenSCD_WPA</a></div><div class="ttdeci">@ AndersenSCD_WPA</div><div class="ttdoc">Selective cycle detection andersen-style WPA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00068">PointerAnalysis.h:68</a></div></div>
|
|
2451
2638
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85abe1d8104c77bfe4bbc201a64410c7f61"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85abe1d8104c77bfe4bbc201a64410c7f61">SVF::PointerAnalysis::FieldS_DDA</a></div><div class="ttdeci">@ FieldS_DDA</div><div class="ttdoc">Field sensitive DDA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00084">PointerAnalysis.h:84</a></div></div>
|
|
2452
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a6f46446d667258b32ddc1ccab48f651c"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">SVF::SVFIR::getMemToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap & getMemToFieldsMap()</div><div class="ttdoc">Return memToFieldsMap.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
2639
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a6f46446d667258b32ddc1ccab48f651c"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">SVF::SVFIR::getMemToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap & getMemToFieldsMap()</div><div class="ttdoc">Return memToFieldsMap.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00128">SVFIR.h:128</a></div></div>
|
|
2453
2640
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a3550ea3f087ec557a6fe076bc443b05d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a3550ea3f087ec557a6fe076bc443b05d">SVF::PointerAnalysis::print_stat</a></div><div class="ttdeci">bool print_stat</div><div class="ttdoc">User input flags.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00134">PointerAnalysis.h:134</a></div></div>
|
|
2454
2641
|
<div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdeci">@ NoAlias</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00587">SVFType.h:587</a></div></div>
|
|
2455
2642
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a43837619e78e03dc95ec6e88959faf82"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a43837619e78e03dc95ec6e88959faf82">SVF::PointerAnalysis::FSCS_WPA</a></div><div class="ttdeci">@ FSCS_WPA</div><div class="ttdoc">Flow-, context- sensitive WPA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00077">PointerAnalysis.h:77</a></div></div>
|
|
2456
2643
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_ad78e4109c839914c4f7e37ca78046f1d"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad78e4109c839914c4f7e37ca78046f1d">SVF::PointsTo::intersects</a></div><div class="ttdeci">bool intersects(const PointsTo &rhs) const</div><div class="ttdoc">Returns true if this set and rhs share any elements.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00189">PointsTo.cpp:189</a></div></div>
|
|
2457
2644
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
|
|
2458
2645
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a118dabc50024b5cd91095814ade47166"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">SVF::PointerAnalysis::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of a pointer analysis, including checking alias correctness.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00180">PointerAnalysis.cpp:180</a></div></div>
|
|
2646
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a4ad982a53fbf62c5513afe63b2435fa5"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a4ad982a53fbf62c5513afe63b2435fa5">SVF::BVDataPTAImpl::readAndSetObjFieldSensitivity</a></div><div class="ttdeci">virtual void readAndSetObjFieldSensitivity(std::ifstream &f, const std::string &delimiterStr)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00379">PointerAnalysisImpl.cpp:379</a></div></div>
|
|
2459
2647
|
<div class="ttc" id="acJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
|
|
2460
2648
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
|
2461
2649
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a60b111647e000cc983aa52513f90afbc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a60b111647e000cc983aa52513f90afbc">SVF::PointerAnalysis::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet & getAllValidPtrs()</div><div class="ttdoc">Get all Valid Pointers for resolution.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00218">PointerAnalysis.h:218</a></div></div>
|
|
2462
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a94acf249e50ad56f966ddad6843c18f8"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a94acf249e50ad56f966ddad6843c18f8">SVF::BVDataPTAImpl::ptCache</a></div><div class="ttdeci">PersistentPointsToCache< PointsTo > ptCache</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
2650
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a94acf249e50ad56f966ddad6843c18f8"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a94acf249e50ad56f966ddad6843c18f8">SVF::BVDataPTAImpl::ptCache</a></div><div class="ttdeci">PersistentPointsToCache< PointsTo > ptCache</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00210">PointerAnalysisImpl.h:210</a></div></div>
|
|
2463
2651
|
<div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">SVF::MayAlias</a></div><div class="ttdeci">@ MayAlias</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00588">SVFType.h:588</a></div></div>
|
|
2464
2652
|
<div class="ttc" id="aclassSVF_1_1CallSite_html_a9b04a0f24be915a6e124106060225a3d"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9b04a0f24be915a6e124106060225a3d">SVF::CallSite::getVtablePtr</a></div><div class="ttdeci">const SVFValue * getVtablePtr() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01138">SVFValue.h:1138</a></div></div>
|
|
2465
2653
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ac130bf326911b8e5396f57daa78566e7"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac130bf326911b8e5396f57daa78566e7">SVF::BVDataPTAImpl::MutDFPTDataTy</a></div><div class="ttdeci">MutableDFPTData< NodeID, NodeSet, NodeID, PointsTo > MutDFPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00053">PointerAnalysisImpl.h:53</a></div></div>
|
|
2466
2654
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac0c0855918cb2cdc3d8ebc175acfbd4da84705167ea3a7162ecb9470a8a77b5d8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4da84705167ea3a7162ecb9470a8a77b5d8">SVF::PointerAnalysis::BVDataImpl</a></div><div class="ttdeci">@ BVDataImpl</div><div class="ttdoc">Represents BVDataPTAImpl.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00097">PointerAnalysis.h:97</a></div></div>
|
|
2467
2655
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a1817b65e76052f11e36a67d6b9efd915"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">SVF::GenericGraph::removeGNode</a></div><div class="ttdeci">void removeGNode(NodeType *node)</div><div class="ttdoc">Delete a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00421">GenericGraph.h:421</a></div></div>
|
|
2468
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
2656
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00445">SVFIR.h:445</a></div></div>
|
|
2469
2657
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00150">SVFValue.h:150</a></div></div>
|
|
2470
2658
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ad76328a8543b02784992afc2d5501d8aaeda0ee502cc42a07c64c6f09296b6640"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8aaeda0ee502cc42a07c64c6f09296b6640">SVF::BVDataPTAImpl::Persistent</a></div><div class="ttdeci">@ Persistent</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00067">PointerAnalysisImpl.h:67</a></div></div>
|
|
2471
2659
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
2472
2660
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_afaeae813ff38e010bbe8fe61befb345c"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#afaeae813ff38e010bbe8fe61befb345c">SVF::BVDataPTAImpl::getPtCache</a></div><div class="ttdeci">PersistentPointsToCache< PointsTo > & getPtCache()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00076">PointerAnalysisImpl.h:76</a></div></div>
|
|
2473
2661
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_af68485a2208553579f9c2e4b2cb20cff"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">SVF::BVDataPTAImpl::addPts</a></div><div class="ttdeci">virtual bool addPts(NodeID id, NodeID ptd)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00121">PointerAnalysisImpl.h:121</a></div></div>
|
|
2662
|
+
<div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a2bd3ca30fc9669d9a0327544bdb4557b"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">SVF::NodeIDAllocator::get</a></div><div class="ttdeci">static NodeIDAllocator * get(void)</div><div class="ttdoc">Return (singleton) allocator.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00026">NodeIDAllocator.cpp:26</a></div></div>
|
|
2474
2663
|
<div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
|
|
2475
2664
|
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00385">ICFGNode.h:385</a></div></div>
|
|
2476
2665
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_abd8bb73e9beac5e39667091b1e211bd3"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#abd8bb73e9beac5e39667091b1e211bd3">SVF::BVDataPTAImpl::DiffPTDataTy</a></div><div class="ttdeci">DiffPTData< NodeID, NodeSet, NodeID, PointsTo > DiffPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00047">PointerAnalysisImpl.h:47</a></div></div>
|
|
2477
2666
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a14e2a209cb594f91a24ef09b12f82f3f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a14e2a209cb594f91a24ef09b12f82f3f">SVF::PointerAnalysis::PointerAnalysis</a></div><div class="ttdeci">PointerAnalysis(SVFIR *pag, PTATY ty=Default_PTA, bool alias_check=true)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00070">PointerAnalysis.cpp:70</a></div></div>
|
|
2478
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ae683914bce36e2d387bc0bc97dfcb14d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">SVF::SVFIR::NodeOffsetMap</a></div><div class="ttdeci">Map< NodeOffset, NodeID > NodeOffsetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
2667
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ae683914bce36e2d387bc0bc97dfcb14d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">SVF::SVFIR::NodeOffsetMap</a></div><div class="ttdeci">Map< NodeOffset, NodeID > NodeOffsetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00070">SVFIR.h:70</a></div></div>
|
|
2668
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_af4e17ce3667d40d1a377508a275af384"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#af4e17ce3667d40d1a377508a275af384">SVF::BVDataPTAImpl::readPtsResultFromFile</a></div><div class="ttdeci">virtual void readPtsResultFromFile(std::ifstream &f)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00289">PointerAnalysisImpl.cpp:289</a></div></div>
|
|
2479
2669
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8">SVF::PointerAnalysis::Cxt_DDA</a></div><div class="ttdeci">@ Cxt_DDA</div><div class="ttdoc">context sensitive DDA</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00087">PointerAnalysis.h:87</a></div></div>
|
|
2670
|
+
<div class="ttc" id="aclassSVF_1_1FIObjVar_html"><div class="ttname"><a href="classSVF_1_1FIObjVar.html">SVF::FIObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00529">SVFVariables.h:529</a></div></div>
|
|
2480
2671
|
<div class="ttc" id="aclassSVF_1_1Options_html_a1743b8a1ab2d71c35206c7befa725d90"><div class="ttname"><a href="classSVF_1_1Options.html#a1743b8a1ab2d71c35206c7befa725d90">SVF::Options::INCDFPTData</a></div><div class="ttdeci">static const Option< bool > INCDFPTData</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00148">Options.h:148</a></div></div>
|
|
2481
2672
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_ab196d86cfb48d1c5d27a0c03c7497afa"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">SVF::PointsTo::set</a></div><div class="ttdeci">void set(u32_t n)</div><div class="ttdoc">Inserts n in the set.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00157">PointsTo.cpp:157</a></div></div>
|
|
2482
2673
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a8d128246f86f28fdf4981d91169ab440"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">SVF::PointerAnalysis::resolveIndCalls</a></div><div class="ttdeci">virtual void resolveIndCalls(const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges)</div><div class="ttdoc">Resolve indirect call edges.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00387">PointerAnalysis.cpp:387</a></div></div>
|
|
2483
2674
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac04b64a5884710508b304f93da88c7ba"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba">SVF::PointerAnalysis::resolveCPPIndCalls</a></div><div class="ttdeci">virtual void resolveCPPIndCalls(const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges)</div><div class="ttdoc">Resolve cpp indirect call edges.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00490">PointerAnalysis.cpp:490</a></div></div>
|
|
2484
2675
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
2485
2676
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac5683fe2e24b393ccc5cb6d8bc92cf2b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac5683fe2e24b393ccc5cb6d8bc92cf2b">SVF::PointerAnalysis::setObjFieldInsensitive</a></div><div class="ttdeci">void setObjFieldInsensitive(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00349">PointerAnalysis.h:349</a></div></div>
|
|
2486
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a236d3e9c894fd7c34c8d7a77ac11dd48"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">SVF::BVDataPTAImpl::alias</a></div><div class="ttdeci">AliasResult alias(const SVFValue *V1, const SVFValue *V2) override</div><div class="ttdoc">Interface expose to users of our pointer analysis, given Value infos.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#
|
|
2677
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a236d3e9c894fd7c34c8d7a77ac11dd48"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">SVF::BVDataPTAImpl::alias</a></div><div class="ttdeci">AliasResult alias(const SVFValue *V1, const SVFValue *V2) override</div><div class="ttdoc">Interface expose to users of our pointer analysis, given Value infos.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00574">PointerAnalysisImpl.cpp:574</a></div></div>
|
|
2487
2678
|
<div class="ttc" id="aclassSVF_1_1CallSite_html_a427a38e580db4bf04c9d716762243c89"><div class="ttname"><a href="classSVF_1_1CallSite.html#a427a38e580db4bf04c9d716762243c89">SVF::CallSite::isVirtualCall</a></div><div class="ttdeci">bool isVirtualCall() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01134">SVFValue.h:1134</a></div></div>
|
|
2488
2679
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a62281bc39fea50a88e55edf605620322"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a62281bc39fea50a88e55edf605620322">SVF::PointerAnalysis::FSDATAFLOW_WPA</a></div><div class="ttdeci">@ FSDATAFLOW_WPA</div><div class="ttdoc">Traditional Dataflow-based flow sensitive WPA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00074">PointerAnalysis.h:74</a></div></div>
|
|
2489
2680
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85abf2f61ee9a5f6228db6587a8182ec9f2"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85abf2f61ee9a5f6228db6587a8182ec9f2">SVF::PointerAnalysis::AndersenWaveDiff_WPA</a></div><div class="ttdeci">@ AndersenWaveDiff_WPA</div><div class="ttdoc">Diff wave propagation andersen-style WPA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00070">PointerAnalysis.h:70</a></div></div>
|
|
2490
2681
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
|
|
2491
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ae94cea78b71fb75837ee2a17b5ed0e81"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">SVF::BVDataPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data structure.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
2492
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ab6abb822445c9b3f5cb2b7206042e940"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">SVF::SVFIR::MemObjToFieldsMap</a></div><div class="ttdeci">Map< NodeID, NodeBS > MemObjToFieldsMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
2682
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ae94cea78b71fb75837ee2a17b5ed0e81"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">SVF::BVDataPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data structure.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00155">PointerAnalysisImpl.h:155</a></div></div>
|
|
2683
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ab6abb822445c9b3f5cb2b7206042e940"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">SVF::SVFIR::MemObjToFieldsMap</a></div><div class="ttdeci">Map< NodeID, NodeBS > MemObjToFieldsMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00057">SVFIR.h:57</a></div></div>
|
|
2493
2684
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85acc2e7cbdd04a614a3b6189d2f01042f3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85acc2e7cbdd04a614a3b6189d2f01042f3">SVF::PointerAnalysis::TypeCPP_WPA</a></div><div class="ttdeci">@ TypeCPP_WPA</div><div class="ttdoc">Type-based analysis for C++.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00081">PointerAnalysis.h:81</a></div></div>
|
|
2494
2685
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ade83738ac754d5ffc2a3b497b600cad4"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ade83738ac754d5ffc2a3b497b600cad4">SVF::PointerAnalysis::ptaTy</a></div><div class="ttdeci">PTATY ptaTy</div><div class="ttdoc">Pointer analysis Type.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00146">PointerAnalysis.h:146</a></div></div>
|
|
2495
2686
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00142">PointerAnalysis.h:142</a></div></div>
|
|
2496
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_aa534e475fa34fa322c567bc376a3da70"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">SVF::BVDataPTAImpl::updateCallGraph</a></div><div class="ttdeci">virtual bool updateCallGraph(const CallSiteToFunPtrMap &)</div><div class="ttdoc">Update callgraph. This should be implemented by its subclass.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
2687
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_aa534e475fa34fa322c567bc376a3da70"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">SVF::BVDataPTAImpl::updateCallGraph</a></div><div class="ttdeci">virtual bool updateCallGraph(const CallSiteToFunPtrMap &)</div><div class="ttdoc">Update callgraph. This should be implemented by its subclass.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00165">PointerAnalysisImpl.h:165</a></div></div>
|
|
2688
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a5e782fb9a94a62403046c483ca4176c3"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a5e782fb9a94a62403046c483ca4176c3">SVF::BVDataPTAImpl::writeGepObjVarMapToFile</a></div><div class="ttdeci">virtual void writeGepObjVarMapToFile(std::fstream &f)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00224">PointerAnalysisImpl.cpp:224</a></div></div>
|
|
2497
2689
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a112f2ede1240c95f9fe810f2882fab80"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">SVF::SparseBitVector::test</a></div><div class="ttdeci">bool test(unsigned Idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00708">SparseBitVector.h:708</a></div></div>
|
|
2690
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a43ffcccfd81f5400c2d4c8e4bd71bdde"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a43ffcccfd81f5400c2d4c8e4bd71bdde">SVF::SVFIR::NodeOffset</a></div><div class="ttdeci">std::pair< NodeID, APOffset > NodeOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00068">SVFIR.h:68</a></div></div>
|
|
2498
2691
|
<div class="ttc" id="acJSON_8cpp_html_a95bf816579e97b6f33bdb5e25ed6d5de"><div class="ttname"><a href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a></div><div class="ttdeci">buffer offset</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01113">cJSON.cpp:1113</a></div></div>
|
|
2499
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
2692
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00160">SVFIR.h:160</a></div></div>
|
|
2500
2693
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6">SVF::PointerAnalysis::Andersen_WPA</a></div><div class="ttdeci">@ Andersen_WPA</div><div class="ttdoc">Andersen PTA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00067">PointerAnalysis.h:67</a></div></div>
|
|
2501
2694
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00380">GenericGraph.h:380</a></div></div>
|
|
2502
2695
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85accfa4ed42d3a3ac5e4abc403e738427b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85accfa4ed42d3a3ac5e4abc403e738427b">SVF::PointerAnalysis::AndersenSFR_WPA</a></div><div class="ttdeci">@ AndersenSFR_WPA</div><div class="ttdoc">Stride-based field representation.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00069">PointerAnalysis.h:69</a></div></div>
|
|
2503
2696
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
2504
2697
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a5d3c3094e263bf16a4f312a118c1bd36"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36">SVF::PointerAnalysis::ptaImplTy</a></div><div class="ttdeci">PTAImplTy ptaImplTy</div><div class="ttdoc">PTA implementation type.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00148">PointerAnalysis.h:148</a></div></div>
|
|
2505
2698
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_a13746982a11d0cab57e5919d53bfbec8"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">SVF::PointsTo::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Returns true if set is empty.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00098">PointsTo.cpp:98</a></div></div>
|
|
2506
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ae18425df0631aefca7dd4b799f6f524a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const APOffset &ap)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00422">SVFIR.cpp:422</a></div></div>
|
|
2507
2699
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph< SVFVar, SVFStmt >::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00359">GenericGraph.h:359</a></div></div>
|
|
2508
2700
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ad24ef5326c26db858c73432aa7e67a0a"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad24ef5326c26db858c73432aa7e67a0a">SVF::PointerAnalysis::Steensgaard_WPA</a></div><div class="ttdeci">@ Steensgaard_WPA</div><div class="ttdoc">Steensgaard PTA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00071">PointerAnalysis.h:71</a></div></div>
|
|
2509
2701
|
<div class="ttc" id="aclassSVF_1_1GepObjVar_html"><div class="ttname"><a href="classSVF_1_1GepObjVar.html">SVF::GepObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00448">SVFVariables.h:448</a></div></div>
|
|
@@ -2511,18 +2703,20 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2511
2703
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_a6e2ff63437d07a30cc6db35de032728a"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
|
|
2512
2704
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb">SVF::PointerAnalysis::CFLFICI_WPA</a></div><div class="ttdeci">@ CFLFICI_WPA</div><div class="ttdoc">Flow-, context-, insensitive CFL-reachability-based analysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00078">PointerAnalysis.h:78</a></div></div>
|
|
2513
2705
|
<div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
|
|
2514
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS & getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#
|
|
2706
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS & getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00477">SVFIR.cpp:477</a></div></div>
|
|
2707
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a685991a5dec8a17fe73b3161fdb9ea7e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a685991a5dec8a17fe73b3161fdb9ea7e">SVF::SVFIR::addGepObjNode</a></div><div class="ttdeci">NodeID addGepObjNode(const MemObj *obj, const APOffset &apOffset, const NodeID gepId)</div><div class="ttdoc">Add a field obj node, this method can only invoked by getGepObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00449">SVFIR.cpp:449</a></div></div>
|
|
2515
2708
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a56368369bc37e37b13f19e5eb1890063"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">SVF::PointerAnalysis::containBlackHoleNode</a></div><div class="ttdeci">bool containBlackHoleNode(const PointsTo &pts)</div><div class="ttdoc">Determine whether a points-to contains a black hole or constant node.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00292">PointerAnalysis.h:292</a></div></div>
|
|
2516
2709
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a798c84d5e861de2b61bcb1a86385f721"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">SVF::BVDataPTAImpl::expandFIObjs</a></div><div class="ttdeci">virtual void expandFIObjs(const PointsTo &pts, PointsTo &expandedPts)</div><div class="ttdoc">Expand FI objects.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00133">PointerAnalysisImpl.cpp:133</a></div></div>
|
|
2517
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ac1674bd25a17cae24141e6bff24a411e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">SVF::SVFIR::getGepObjNodeMap</a></div><div class="ttdeci">NodeOffsetMap & getGepObjNodeMap()</div><div class="ttdoc">Return GepObjVarMap.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
2518
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
2710
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ac1674bd25a17cae24141e6bff24a411e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">SVF::SVFIR::getGepObjNodeMap</a></div><div class="ttdeci">NodeOffsetMap & getGepObjNodeMap()</div><div class="ttdoc">Return GepObjVarMap.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00133">SVFIR.h:133</a></div></div>
|
|
2711
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00382">SVFIR.h:382</a></div></div>
|
|
2519
2712
|
<div class="ttc" id="aclassSVF_1_1Options_html_aaab923c093730b1670a54f09340b1bd5"><div class="ttname"><a href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const Option< u32_t > MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00038">Options.h:38</a></div></div>
|
|
2520
2713
|
<div class="ttc" id="anamespaceSVF_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="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
2521
2714
|
<div class="ttc" id="aclassSVF_1_1Options_html_ae3c3cc703ef35987a32aa808038a1307"><div class="ttname"><a href="classSVF_1_1Options.html#ae3c3cc703ef35987a32aa808038a1307">SVF::Options::ptDataBacking</a></div><div class="ttdeci">static const OptionMap< BVDataPTAImpl::PTBackingType > ptDataBacking</div><div class="ttdoc">PTData type.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00069">Options.h:69</a></div></div>
|
|
2522
2715
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a5c2288519153467142e74c8dd4e77180"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a5c2288519153467142e74c8dd4e77180">SVF::BVDataPTAImpl::DFPTDataTy</a></div><div class="ttdeci">DFPTData< NodeID, NodeSet, NodeID, PointsTo > DFPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00048">PointerAnalysisImpl.h:48</a></div></div>
|
|
2523
2716
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ae18227f257c9881541b84ca186680dfd"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae18227f257c9881541b84ca186680dfd">SVF::SVFUtil::split</a></div><div class="ttdeci">std::vector< std::string > split(const std::string &s, char separator)</div><div class="ttdoc">Split into two substrings around the first occurrence of a separator string.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00218">SVFUtil.h:218</a></div></div>
|
|
2717
|
+
<div class="ttc" id="aclassSVF_1_1DummyObjVar_html"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html">SVF::DummyObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00708">SVFVariables.h:708</a></div></div>
|
|
2524
2718
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ac9897a09cad8a99169f2da2116807b1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">const PointsTo & getPts(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00088">PointerAnalysisImpl.h:88</a></div></div>
|
|
2525
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ab283427a420ab349da4920ec10b7e1cd"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">SVF::BVDataPTAImpl::ptD</a></div><div class="ttdeci">std::unique_ptr< PTDataTy > ptD</div><div class="ttdoc">Points-to data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
2719
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ab283427a420ab349da4920ec10b7e1cd"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">SVF::BVDataPTAImpl::ptD</a></div><div class="ttdeci">std::unique_ptr< PTDataTy > ptD</div><div class="ttdoc">Points-to data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00208">PointerAnalysisImpl.h:208</a></div></div>
|
|
2526
2720
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a9a25374fb6d2218c6c59de0482548f49"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a9a25374fb6d2218c6c59de0482548f49">SVF::PointerAnalysis::Andersen_BASE</a></div><div class="ttdeci">@ Andersen_BASE</div><div class="ttdoc">Base Andersen PTA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00066">PointerAnalysis.h:66</a></div></div>
|
|
2527
2721
|
<div class="ttc" id="aclassSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00380">SymbolTableInfo.h:380</a></div></div>
|
|
2528
2722
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|