svf-tools 1.0.837 → 1.0.839
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/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Andersen_8cpp_source.html +20 -16
- package/SVF-doxygen/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/BoundedZ3Expr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLAlias_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CFLBase_8cpp_source.html +4 -4
- package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLSVFGBuilder_8cpp.html +86 -0
- package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +195 -0
- package/SVF-doxygen/html/CFLSVFGBuilder_8h.html +98 -0
- package/SVF-doxygen/html/CFLSVFGBuilder_8h_source.html +148 -0
- package/SVF-doxygen/html/CFLVF_8cpp_source.html +4 -4
- package/SVF-doxygen/html/CFLVF_8h.html +1 -1
- package/SVF-doxygen/html/CFLVF_8h_source.html +5 -5
- package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAPass_8cpp_source.html +9 -9
- package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/DoubleFreeChecker_8cpp_source.html +5 -5
- package/SVF-doxygen/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FSMPTA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/FileChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/LeakChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/Options_8cpp_source.html +825 -892
- package/SVF-doxygen/html/Options_8h_source.html +275 -297
- package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +12 -12
- package/SVF-doxygen/html/ProgSlice_8cpp_source.html +170 -136
- package/SVF-doxygen/html/ProgSlice_8h_source.html +314 -298
- package/SVF-doxygen/html/SVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/SVFGOPT_8cpp_source.html +4 -4
- package/SVF-doxygen/html/SVFGOPT_8h_source.html +5 -5
- package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFG_8cpp_source.html +32 -32
- package/SVF-doxygen/html/SVFG_8h_source.html +446 -444
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIR_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +246 -235
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp.html +1 -0
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +272 -266
- package/SVF-doxygen/html/SaberSVFGBuilder_8h_source.html +75 -62
- package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +261 -260
- package/SVF-doxygen/html/SrcSnkDDA_8h_source.html +18 -18
- package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/TCT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/WPAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/Z3Expr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/annotated.html +377 -376
- package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +18 -14
- package/SVF-doxygen/html/classSVF_1_1AndersenBase.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1CFLBase.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1CFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder-members.html +121 -0
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +473 -0
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1CFLVF-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFLVF.html +11 -11
- package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ConstraintNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DDAPass.html +9 -9
- package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1ExtAPI.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FileChecker.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTASVFGBuilder.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1MTAStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInfo.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Options-members.html +64 -73
- package/SVF-doxygen/html/classSVF_1_1Options.html +128 -362
- package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1ProgSlice-members.html +25 -22
- package/SVF-doxygen/html/classSVF_1_1ProgSlice.html +493 -366
- package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFG-members.html +182 -181
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +326 -300
- package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.html +6 -5
- package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1SVFGOPT.html +11 -11
- package/SVF-doxygen/html/classSVF_1_1SVFIR.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator-members.html +22 -19
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +239 -160
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder-members.html +11 -9
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +348 -286
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +263 -261
- package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1WPAPass.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +1 -1
- package/SVF-doxygen/html/classes.html +95 -94
- package/SVF-doxygen/html/dir_1b8e404556d3e8597ae60437f0a084bf.html +2 -0
- package/SVF-doxygen/html/dir_8a9c8659eb68b9cbd3fead4690588a47.html +2 -0
- package/SVF-doxygen/html/files.html +6 -4
- package/SVF-doxygen/html/functions_b.html +7 -6
- package/SVF-doxygen/html/functions_c.html +38 -29
- package/SVF-doxygen/html/functions_d.html +0 -15
- package/SVF-doxygen/html/functions_f.html +9 -9
- package/SVF-doxygen/html/functions_func_b.html +3 -2
- package/SVF-doxygen/html/functions_func_c.html +29 -23
- package/SVF-doxygen/html/functions_func_g.html +14 -10
- package/SVF-doxygen/html/functions_func_r.html +6 -5
- package/SVF-doxygen/html/functions_func_s.html +20 -17
- package/SVF-doxygen/html/functions_func_~.html +3 -0
- package/SVF-doxygen/html/functions_g.html +10 -6
- package/SVF-doxygen/html/functions_m.html +4 -7
- package/SVF-doxygen/html/functions_n.html +6 -5
- package/SVF-doxygen/html/functions_p.html +15 -14
- package/SVF-doxygen/html/functions_r.html +10 -6
- package/SVF-doxygen/html/functions_rela_c.html +3 -0
- package/SVF-doxygen/html/functions_s.html +24 -21
- package/SVF-doxygen/html/functions_t.html +5 -11
- package/SVF-doxygen/html/functions_type_n.html +2 -1
- package/SVF-doxygen/html/functions_type_s.html +6 -1
- package/SVF-doxygen/html/functions_type_w.html +1 -0
- package/SVF-doxygen/html/functions_v.html +4 -6
- package/SVF-doxygen/html/functions_vars_d.html +0 -15
- package/SVF-doxygen/html/functions_vars_m.html +1 -4
- package/SVF-doxygen/html/functions_vars_p.html +3 -0
- package/SVF-doxygen/html/functions_vars_r.html +3 -0
- package/SVF-doxygen/html/functions_vars_s.html +2 -7
- package/SVF-doxygen/html/functions_vars_t.html +0 -6
- package/SVF-doxygen/html/functions_w.html +3 -2
- package/SVF-doxygen/html/functions_~.html +3 -0
- package/SVF-doxygen/html/hierarchy.html +2 -1
- package/SVF-doxygen/html/namespaceSVF.html +2 -0
- package/SVF-doxygen/html/search/all_10.js +207 -206
- package/SVF-doxygen/html/search/all_11.js +115 -114
- package/SVF-doxygen/html/search/all_12.js +335 -335
- package/SVF-doxygen/html/search/all_13.js +190 -192
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +167 -167
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +26 -25
- package/SVF-doxygen/html/search/all_2.js +2 -2
- package/SVF-doxygen/html/search/all_3.js +466 -462
- package/SVF-doxygen/html/search/all_4.js +230 -235
- package/SVF-doxygen/html/search/all_5.js +119 -119
- package/SVF-doxygen/html/search/all_6.js +226 -226
- package/SVF-doxygen/html/search/all_7.js +804 -803
- package/SVF-doxygen/html/search/all_9.js +3 -3
- package/SVF-doxygen/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/search/all_d.js +184 -185
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +37 -36
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +34 -34
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +57 -55
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +362 -362
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +139 -139
- package/SVF-doxygen/html/search/functions_12.js +289 -288
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +173 -172
- package/SVF-doxygen/html/search/functions_2.js +89 -89
- package/SVF-doxygen/html/search/functions_3.js +260 -258
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +60 -60
- package/SVF-doxygen/html/search/functions_7.js +856 -855
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +424 -424
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +3 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_10.js +17 -16
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_c.js +1 -1
- package/SVF-doxygen/html/search/variables_0.js +151 -151
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +98 -97
- package/SVF-doxygen/html/search/variables_11.js +45 -44
- package/SVF-doxygen/html/search/variables_12.js +90 -92
- package/SVF-doxygen/html/search/variables_13.js +4 -6
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +50 -55
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -34
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -78
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +55 -56
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
- package/package.json +1 -1
- package/svf/include/CFL/CFLSVFGBuilder.h +58 -0
- package/svf/include/CFL/CFLVF.h +2 -2
- package/svf/include/Graphs/SVFG.h +1 -0
- package/svf/include/SABER/ProgSlice.h +11 -0
- package/svf/include/SABER/SaberCondAllocator.h +8 -0
- package/svf/include/SABER/SaberSVFGBuilder.h +12 -2
- package/svf/include/Util/Options.h +1 -14
- package/svf/lib/CFL/CFLSVFGBuilder.cpp +100 -0
- package/svf/lib/SABER/ProgSlice.cpp +48 -1
- package/svf/lib/SABER/SaberSVFGBuilder.cpp +5 -0
- package/svf/lib/SABER/SrcSnkDDA.cpp +1 -0
- package/svf/lib/Util/Options.cpp +6 -64
- package/svf/lib/WPA/Andersen.cpp +5 -2
|
@@ -69,8 +69,7 @@ $(function() {
|
|
|
69
69
|
<a href="#pub-types">Public Types</a> |
|
|
70
70
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
71
71
|
<a href="#pro-methods">Protected Member Functions</a> |
|
|
72
|
-
<a href="#
|
|
73
|
-
<a href="#pri-attribs">Private Attributes</a> |
|
|
72
|
+
<a href="#pro-attribs">Protected Attributes</a> |
|
|
74
73
|
<a href="classSVF_1_1SaberSVFGBuilder-members.html">List of all members</a> </div>
|
|
75
74
|
<div class="headertitle">
|
|
76
75
|
<div class="title">SVF::SaberSVFGBuilder Class Reference</div> </div>
|
|
@@ -85,6 +84,7 @@ Inheritance diagram for SVF::SaberSVFGBuilder:</div>
|
|
|
85
84
|
<img src="classSVF_1_1SaberSVFGBuilder.png" usemap="#SVF::SaberSVFGBuilder_map" alt=""/>
|
|
86
85
|
<map id="SVF::SaberSVFGBuilder_map" name="SVF::SaberSVFGBuilder_map">
|
|
87
86
|
<area href="classSVF_1_1SVFGBuilder.html" alt="SVF::SVFGBuilder" shape="rect" coords="0,0,151,24"/>
|
|
87
|
+
<area href="classSVF_1_1CFLSVFGBuilder.html" alt="SVF::CFLSVFGBuilder" shape="rect" coords="0,112,151,136"/>
|
|
88
88
|
</map>
|
|
89
89
|
</div></div>
|
|
90
90
|
<table class="memberdecls">
|
|
@@ -119,6 +119,8 @@ Public Member Functions</h2></td></tr>
|
|
|
119
119
|
<tr class="memitem:ab8db9f6681eeb4663614119417a83cec"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#ab8db9f6681eeb4663614119417a83cec">addActualParmVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *pagNode, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
120
120
|
<tr class="memdesc:ab8db9f6681eeb4663614119417a83cec"><td class="mdescLeft"> </td><td class="mdescRight">Add <a class="el" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a>. <a href="classSVF_1_1SaberSVFGBuilder.html#ab8db9f6681eeb4663614119417a83cec">More...</a><br /></td></tr>
|
|
121
121
|
<tr class="separator:ab8db9f6681eeb4663614119417a83cec"><td class="memSeparator" colspan="2"> </td></tr>
|
|
122
|
+
<tr class="memitem:a8eb03d4362685f361bc1110fc98925b9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a8eb03d4362685f361bc1110fc98925b9">setSaberCondAllocator</a> (<a class="el" href="classSVF_1_1SaberCondAllocator.html">SaberCondAllocator</a> *allocator)</td></tr>
|
|
123
|
+
<tr class="separator:a8eb03d4362685f361bc1110fc98925b9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
122
124
|
<tr class="inherit_header pub_methods_classSVF_1_1SVFGBuilder"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1SVFGBuilder')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classSVF_1_1SVFGBuilder.html">SVF::SVFGBuilder</a></td></tr>
|
|
123
125
|
<tr class="memitem:a003c6d9e13e5f73e0648d97400f1854e inherit pub_methods_classSVF_1_1SVFGBuilder"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e">SVFGBuilder</a> (bool _SVFGWithIndCall=<a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>)</td></tr>
|
|
124
126
|
<tr class="memdesc:a003c6d9e13e5f73e0648d97400f1854e inherit pub_methods_classSVF_1_1SVFGBuilder"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e">More...</a><br /></td></tr>
|
|
@@ -151,19 +153,9 @@ Protected Member Functions</h2></td></tr>
|
|
|
151
153
|
<tr class="memitem:a21c20865a0093192978cec09ce09f20b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a21c20865a0093192978cec09ce09f20b">isStrongUpdate</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *node, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> &singleton, <a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *pta)</td></tr>
|
|
152
154
|
<tr class="memdesc:a21c20865a0093192978cec09ce09f20b"><td class="mdescLeft"> </td><td class="mdescRight">Return TRUE if this is a strong update STORE statement. <a href="classSVF_1_1SaberSVFGBuilder.html#a21c20865a0093192978cec09ce09f20b">More...</a><br /></td></tr>
|
|
153
155
|
<tr class="separator:a21c20865a0093192978cec09ce09f20b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
154
|
-
<tr class="inherit_header pro_methods_classSVF_1_1SVFGBuilder"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1SVFGBuilder')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classSVF_1_1SVFGBuilder.html">SVF::SVFGBuilder</a></td></tr>
|
|
155
|
-
<tr class="memitem:a47591192260ddc3ff0717430f127cc95 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGBuilder.html#a47591192260ddc3ff0717430f127cc95">build</a> (<a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *pta, <a class="el" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFG::VFGK</a> kind)</td></tr>
|
|
156
|
-
<tr class="memdesc:a47591192260ddc3ff0717430f127cc95 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="mdescLeft"> </td><td class="mdescRight">Create a DDA <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. By default actualOut and FormalIN are removed, unless withAOFI is set true. <a href="classSVF_1_1SVFGBuilder.html#a47591192260ddc3ff0717430f127cc95">More...</a><br /></td></tr>
|
|
157
|
-
<tr class="separator:a47591192260ddc3ff0717430f127cc95 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="memSeparator" colspan="2"> </td></tr>
|
|
158
|
-
<tr class="memitem:a6e08e6a99f7e743abf35e603e35e54f5 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5">releaseMemory</a> ()</td></tr>
|
|
159
|
-
<tr class="memdesc:a6e08e6a99f7e743abf35e603e35e54f5 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="mdescLeft"> </td><td class="mdescRight">Release global <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. <a href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5">More...</a><br /></td></tr>
|
|
160
|
-
<tr class="separator:a6e08e6a99f7e743abf35e603e35e54f5 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="memSeparator" colspan="2"> </td></tr>
|
|
161
|
-
</table><table class="memberdecls">
|
|
162
|
-
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
|
|
163
|
-
Private Member Functions</h2></td></tr>
|
|
164
156
|
<tr class="memitem:ad8f4f63d2071be4eb5f6fb2fdf29a10a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#ad8f4f63d2071be4eb5f6fb2fdf29a10a">rmDerefDirSVFGEdges</a> (<a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *pta)</td></tr>
|
|
165
157
|
<tr class="separator:ad8f4f63d2071be4eb5f6fb2fdf29a10a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
166
|
-
<tr class="memitem:ae0a9c42c850bda29aeae2f47ad2b8f4a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#ae0a9c42c850bda29aeae2f47ad2b8f4a">rmIncomingEdgeForSUStore</a> (<a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *pta)</td></tr>
|
|
158
|
+
<tr class="memitem:ae0a9c42c850bda29aeae2f47ad2b8f4a"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#ae0a9c42c850bda29aeae2f47ad2b8f4a">rmIncomingEdgeForSUStore</a> (<a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *pta)</td></tr>
|
|
167
159
|
<tr class="separator:ae0a9c42c850bda29aeae2f47ad2b8f4a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
168
160
|
<tr class="memitem:ab6870d6f6f5abc5417dcea771eaa31f7"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#ab6870d6f6f5abc5417dcea771eaa31f7">AddExtActualParmSVFGNodes</a> (<a class="el" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a> *callgraph)</td></tr>
|
|
169
161
|
<tr class="memdesc:ab6870d6f6f5abc5417dcea771eaa31f7"><td class="mdescLeft"> </td><td class="mdescRight">Add actual parameter SVFGNode for 1st argument of a deallocation like external function. <a href="classSVF_1_1SaberSVFGBuilder.html#ab6870d6f6f5abc5417dcea771eaa31f7">More...</a><br /></td></tr>
|
|
@@ -176,17 +168,23 @@ Private Member Functions</h2></td></tr>
|
|
|
176
168
|
<tr class="memitem:a411e168e2a6c27e15186c609c5e216b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a411e168e2a6c27e15186c609c5e216b3">CollectPtsChain</a> (<a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *pta, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id, <a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a4cb1f607e33d106dfa178e822c5ab7e1">NodeToPTSSMap</a> &cachedPtsMap)</td></tr>
|
|
177
169
|
<tr class="memdesc:a411e168e2a6c27e15186c609c5e216b3"><td class="mdescLeft"> </td><td class="mdescRight">Collect objects along points-to chains. <a href="classSVF_1_1SaberSVFGBuilder.html#a411e168e2a6c27e15186c609c5e216b3">More...</a><br /></td></tr>
|
|
178
170
|
<tr class="separator:a411e168e2a6c27e15186c609c5e216b3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
171
|
+
<tr class="inherit_header pro_methods_classSVF_1_1SVFGBuilder"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1SVFGBuilder')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classSVF_1_1SVFGBuilder.html">SVF::SVFGBuilder</a></td></tr>
|
|
172
|
+
<tr class="memitem:a47591192260ddc3ff0717430f127cc95 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGBuilder.html#a47591192260ddc3ff0717430f127cc95">build</a> (<a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *pta, <a class="el" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFG::VFGK</a> kind)</td></tr>
|
|
173
|
+
<tr class="memdesc:a47591192260ddc3ff0717430f127cc95 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="mdescLeft"> </td><td class="mdescRight">Create a DDA <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. By default actualOut and FormalIN are removed, unless withAOFI is set true. <a href="classSVF_1_1SVFGBuilder.html#a47591192260ddc3ff0717430f127cc95">More...</a><br /></td></tr>
|
|
174
|
+
<tr class="separator:a47591192260ddc3ff0717430f127cc95 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="memSeparator" colspan="2"> </td></tr>
|
|
175
|
+
<tr class="memitem:a6e08e6a99f7e743abf35e603e35e54f5 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5">releaseMemory</a> ()</td></tr>
|
|
176
|
+
<tr class="memdesc:a6e08e6a99f7e743abf35e603e35e54f5 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="mdescLeft"> </td><td class="mdescRight">Release global <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. <a href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5">More...</a><br /></td></tr>
|
|
177
|
+
<tr class="separator:a6e08e6a99f7e743abf35e603e35e54f5 inherit pro_methods_classSVF_1_1SVFGBuilder"><td class="memSeparator" colspan="2"> </td></tr>
|
|
179
178
|
</table><table class="memberdecls">
|
|
180
|
-
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="
|
|
181
|
-
|
|
179
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
|
|
180
|
+
Protected Attributes</h2></td></tr>
|
|
182
181
|
<tr class="memitem:a967dba864a6032e448222525aedb1f2a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a967dba864a6032e448222525aedb1f2a">globs</a></td></tr>
|
|
183
182
|
<tr class="separator:a967dba864a6032e448222525aedb1f2a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
184
183
|
<tr class="memitem:a9431a9dcbcf88b78e721b0347046e997"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a298a94f9b368e37767935a42e5ba954a">SVFGNodeSet</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a9431a9dcbcf88b78e721b0347046e997">globSVFGNodes</a></td></tr>
|
|
185
184
|
<tr class="memdesc:a9431a9dcbcf88b78e721b0347046e997"><td class="mdescLeft"> </td><td class="mdescRight">Store all global <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> nodes. <a href="classSVF_1_1SaberSVFGBuilder.html#a9431a9dcbcf88b78e721b0347046e997">More...</a><br /></td></tr>
|
|
186
185
|
<tr class="separator:a9431a9dcbcf88b78e721b0347046e997"><td class="memSeparator" colspan="2"> </td></tr>
|
|
187
|
-
</
|
|
188
|
-
<tr class="
|
|
189
|
-
Additional Inherited Members</h2></td></tr>
|
|
186
|
+
<tr class="memitem:ad7902869f6565f92a4c5af61bd895235"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SaberCondAllocator.html">SaberCondAllocator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberSVFGBuilder.html#ad7902869f6565f92a4c5af61bd895235">saberCondAllocator</a></td></tr>
|
|
187
|
+
<tr class="separator:ad7902869f6565f92a4c5af61bd895235"><td class="memSeparator" colspan="2"> </td></tr>
|
|
190
188
|
<tr class="inherit_header pro_attribs_classSVF_1_1SVFGBuilder"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classSVF_1_1SVFGBuilder')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classSVF_1_1SVFGBuilder.html">SVF::SVFGBuilder</a></td></tr>
|
|
191
189
|
<tr class="memitem:aa9b432dd72f1a39be142c4e2c2d51247 inherit pro_attribs_classSVF_1_1SVFGBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFGBuilder.html#a640158fff237cb5afabdf1c5946550e0">SVFGEdgeSet</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGBuilder.html#aa9b432dd72f1a39be142c4e2c2d51247">vfEdgesAtIndCallSite</a></td></tr>
|
|
192
190
|
<tr class="memdesc:aa9b432dd72f1a39be142c4e2c2d51247 inherit pro_attribs_classSVF_1_1SVFGBuilder"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> Edges connected at indirect call/ret sites. <a href="classSVF_1_1SVFGBuilder.html#aa9b432dd72f1a39be142c4e2c2d51247">More...</a><br /></td></tr>
|
|
@@ -199,7 +197,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
199
197
|
</table>
|
|
200
198
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
201
199
|
<div class="textblock">
|
|
202
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
200
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00043">43</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
203
201
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
204
202
|
<a id="a4cb1f607e33d106dfa178e822c5ab7e1"></a>
|
|
205
203
|
<h2 class="memtitle"><span class="permalink"><a href="#a4cb1f607e33d106dfa178e822c5ab7e1">◆ </a></span>NodeToPTSSMap</h2>
|
|
@@ -213,7 +211,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
213
211
|
</table>
|
|
214
212
|
</div><div class="memdoc">
|
|
215
213
|
|
|
216
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
214
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00048">48</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
217
215
|
|
|
218
216
|
</div>
|
|
219
217
|
</div>
|
|
@@ -229,7 +227,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
229
227
|
</table>
|
|
230
228
|
</div><div class="memdoc">
|
|
231
229
|
|
|
232
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
230
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00047">47</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
233
231
|
|
|
234
232
|
</div>
|
|
235
233
|
</div>
|
|
@@ -245,7 +243,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
245
243
|
</table>
|
|
246
244
|
</div><div class="memdoc">
|
|
247
245
|
|
|
248
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
246
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00049">49</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
249
247
|
|
|
250
248
|
</div>
|
|
251
249
|
</div>
|
|
@@ -275,8 +273,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
275
273
|
|
|
276
274
|
<p>Constructor. </p>
|
|
277
275
|
|
|
278
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
279
|
-
<div class="fragment"><div class="line"><a name="
|
|
276
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00052">52</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
277
|
+
<div class="fragment"><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> : <a class="code" href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e">SVFGBuilder</a>(<span class="keyword">true</span>) {}</div>
|
|
280
278
|
</div><!-- fragment -->
|
|
281
279
|
</div>
|
|
282
280
|
</div>
|
|
@@ -305,8 +303,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
305
303
|
|
|
306
304
|
<p>Destructor. </p>
|
|
307
305
|
|
|
308
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
309
|
-
<div class="fragment"><div class="line"><a name="
|
|
306
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00055">55</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
307
|
+
<div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {}</div>
|
|
310
308
|
</div><!-- fragment -->
|
|
311
309
|
</div>
|
|
312
310
|
</div>
|
|
@@ -340,7 +338,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
340
338
|
</table>
|
|
341
339
|
</td>
|
|
342
340
|
<td class="mlabels-right">
|
|
343
|
-
<span class="mlabels"><span class="mlabel">
|
|
341
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
344
342
|
</tr>
|
|
345
343
|
</table>
|
|
346
344
|
</div><div class="memdoc">
|
|
@@ -348,15 +346,15 @@ Additional Inherited Members</h2></td></tr>
|
|
|
348
346
|
<p>Whether points-to of a PAGNode points-to global variable. </p>
|
|
349
347
|
<p>Decide whether the node and its points-to contains a global objects </p>
|
|
350
348
|
|
|
351
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#
|
|
352
|
-
<div class="fragment"><div class="line"><a name="
|
|
353
|
-
<div class="line"><a name="
|
|
354
|
-
<div class="line"><a name="
|
|
355
|
-
<div class="line"><a name="
|
|
356
|
-
<div class="line"><a name="
|
|
357
|
-
<div class="line"><a name="
|
|
358
|
-
<div class="line"><a name="
|
|
359
|
-
<div class="line"><a name="
|
|
349
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#l00170">170</a> of file <a class="el" href="SaberSVFGBuilder_8cpp_source.html">SaberSVFGBuilder.cpp</a>.</p>
|
|
350
|
+
<div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> {</div>
|
|
351
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
|
|
352
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = pagNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
353
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts = pta-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(<span class="keywordtype">id</span>);</div>
|
|
354
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  pts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(<span class="keywordtype">id</span>);</div>
|
|
355
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
|
356
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> pts.<a class="code" href="classSVF_1_1PointsTo.html#ad78e4109c839914c4f7e37ca78046f1d">intersects</a>(<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a967dba864a6032e448222525aedb1f2a">globs</a>);</div>
|
|
357
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }</div>
|
|
360
358
|
</div><!-- fragment -->
|
|
361
359
|
</div>
|
|
362
360
|
</div>
|
|
@@ -396,10 +394,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
396
394
|
|
|
397
395
|
<p>Add <a class="el" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a>. </p>
|
|
398
396
|
|
|
399
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
400
|
-
<div class="fragment"><div class="line"><a name="
|
|
401
|
-
<div class="line"><a name="
|
|
402
|
-
<div class="line"><a name="
|
|
397
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00063">63</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
398
|
+
<div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div>
|
|
399
|
+
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->addActualParmVFGNode(pagNode, cs);</div>
|
|
400
|
+
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
|
|
403
401
|
</div><!-- fragment -->
|
|
404
402
|
</div>
|
|
405
403
|
</div>
|
|
@@ -422,7 +420,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
422
420
|
</table>
|
|
423
421
|
</td>
|
|
424
422
|
<td class="mlabels-right">
|
|
425
|
-
<span class="mlabels"><span class="mlabel">
|
|
423
|
+
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
|
|
426
424
|
</tr>
|
|
427
425
|
</table>
|
|
428
426
|
</div><div class="memdoc">
|
|
@@ -430,36 +428,36 @@ Additional Inherited Members</h2></td></tr>
|
|
|
430
428
|
<p>Add actual parameter SVFGNode for 1st argument of a deallocation like external function. </p>
|
|
431
429
|
<p>Add actual parameter SVFGNode for 1st argument of a deallocation like external function In order to path sensitive leak detection </p>
|
|
432
430
|
|
|
433
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#
|
|
434
|
-
<div class="fragment"><div class="line"><a name="
|
|
435
|
-
<div class="line"><a name="
|
|
436
|
-
<div class="line"><a name="
|
|
437
|
-
<div class="line"><a name="
|
|
438
|
-
<div class="line"><a name="
|
|
439
|
-
<div class="line"><a name="
|
|
440
|
-
<div class="line"><a name="
|
|
441
|
-
<div class="line"><a name="
|
|
442
|
-
<div class="line"><a name="
|
|
443
|
-
<div class="line"><a name="
|
|
444
|
-
<div class="line"><a name="
|
|
445
|
-
<div class="line"><a name="
|
|
446
|
-
<div class="line"><a name="
|
|
447
|
-
<div class="line"><a name="
|
|
448
|
-
<div class="line"><a name="
|
|
449
|
-
<div class="line"><a name="
|
|
450
|
-
<div class="line"><a name="
|
|
451
|
-
<div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="
|
|
453
|
-
<div class="line"><a name="
|
|
454
|
-
<div class="line"><a name="
|
|
455
|
-
<div class="line"><a name="
|
|
456
|
-
<div class="line"><a name="
|
|
457
|
-
<div class="line"><a name="
|
|
458
|
-
<div class="line"><a name="
|
|
459
|
-
<div class="line"><a name="
|
|
460
|
-
<div class="line"><a name="
|
|
461
|
-
<div class="line"><a name="
|
|
462
|
-
<div class="line"><a name="
|
|
431
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#l00294">294</a> of file <a class="el" href="SaberSVFGBuilder_8cpp_source.html">SaberSVFGBuilder.cpp</a>.</p>
|
|
432
|
+
<div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> {</div>
|
|
433
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div>
|
|
434
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">for</span>(SVFIR::CSToArgsListMap::iterator it = pag-><a class="code" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">getCallSiteArgsMap</a>().begin(),</div>
|
|
435
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  eit = pag-><a class="code" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">getCallSiteArgsMap</a>().end(); it!=eit; ++it)</div>
|
|
436
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div>
|
|
437
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> callees;</div>
|
|
438
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  callgraph-><a class="code" href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">getCallees</a>(it->first, callees);</div>
|
|
439
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator cit = callees.begin(),</div>
|
|
440
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  ecit = callees.end(); cit != ecit; cit++)</div>
|
|
441
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div>
|
|
442
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div>
|
|
443
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = *cit;</div>
|
|
444
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SaberCheckerAPI.html#acf41a2b6de063da9ed492ef0da129036">SaberCheckerAPI::getCheckerAPI</a>()->isMemDealloc(fun)</div>
|
|
445
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  || <a class="code" href="classSVF_1_1SaberCheckerAPI.html#acf41a2b6de063da9ed492ef0da129036">SaberCheckerAPI::getCheckerAPI</a>()->isFClose(fun))</div>
|
|
446
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div>
|
|
447
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFIR::SVFVarList</a>& arglist = it->second;</div>
|
|
448
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">for</span>(SVFIR::SVFVarList::const_iterator ait = arglist.begin(), aeit = arglist.end(); ait!=aeit; ++ait)</div>
|
|
449
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div>
|
|
450
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *pagNode = *ait;</div>
|
|
451
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">if</span> (pagNode-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div>
|
|
452
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div>
|
|
453
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ab8db9f6681eeb4663614119417a83cec">addActualParmVFGNode</a>(pagNode, it->first);</div>
|
|
454
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->addIntraDirectVFEdge(<a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getDefSVFGNode(pagNode)->getId(), <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getActualParmVFGNode(pagNode, it->first)->getId());</div>
|
|
455
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div>
|
|
456
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div>
|
|
457
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div>
|
|
458
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div>
|
|
459
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div>
|
|
460
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> }</div>
|
|
463
461
|
</div><!-- fragment -->
|
|
464
462
|
</div>
|
|
465
463
|
</div>
|
|
@@ -490,29 +488,32 @@ Additional Inherited Members</h2></td></tr>
|
|
|
490
488
|
|
|
491
489
|
<p>Reimplemented from <a class="el" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305">SVF::SVFGBuilder</a>.</p>
|
|
492
490
|
|
|
493
|
-
<p
|
|
494
|
-
|
|
495
|
-
<
|
|
496
|
-
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> 
|
|
497
|
-
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> 
|
|
498
|
-
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="
|
|
499
|
-
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="
|
|
500
|
-
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
|
501
|
-
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="
|
|
491
|
+
<p>Reimplemented in <a class="el" href="classSVF_1_1CFLSVFGBuilder.html#ab8c71c5af2877ccacd6c34a86a9eadf2">SVF::CFLSVFGBuilder</a>.</p>
|
|
492
|
+
|
|
493
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#l00041">41</a> of file <a class="el" href="SaberSVFGBuilder_8cpp_source.html">SaberSVFGBuilder.cpp</a>.</p>
|
|
494
|
+
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
|
|
495
|
+
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
|
496
|
+
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getMSSA();</div>
|
|
497
|
+
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->buildSVFG();</div>
|
|
498
|
+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta = mssa-><a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>();</div>
|
|
499
|
+
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4550f2fb815882edfb666ac818792064">pasMsg</a>(<span class="stringliteral">"\tCollect Global Variables\n"</span>));</div>
|
|
502
500
|
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
|
503
|
-
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="
|
|
501
|
+
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a2d0492c50159a5f97a587874c6877286">collectGlobals</a>(pta);</div>
|
|
504
502
|
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
|
505
|
-
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="
|
|
503
|
+
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4550f2fb815882edfb666ac818792064">pasMsg</a>(<span class="stringliteral">"\tRemove Dereference Direct SVFG Edge\n"</span>));</div>
|
|
506
504
|
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
|
507
|
-
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#
|
|
505
|
+
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ad8f4f63d2071be4eb5f6fb2fdf29a10a">rmDerefDirSVFGEdges</a>(pta);</div>
|
|
508
506
|
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
|
|
509
|
-
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> 
|
|
510
|
-
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
|
511
|
-
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> 
|
|
512
|
-
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
|
513
|
-
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> 
|
|
514
|
-
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> 
|
|
515
|
-
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> 
|
|
507
|
+
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  assert(<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ad7902869f6565f92a4c5af61bd895235">saberCondAllocator</a> && <span class="stringliteral">"saber condition allocator not set yet!"</span>);</div>
|
|
508
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ae0a9c42c850bda29aeae2f47ad2b8f4a">rmIncomingEdgeForSUStore</a>(pta);</div>
|
|
509
|
+
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
|
510
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4550f2fb815882edfb666ac818792064">pasMsg</a>(<span class="stringliteral">"\tAdd Sink SVFG Nodes\n"</span>));</div>
|
|
511
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
|
512
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ab6870d6f6f5abc5417dcea771eaa31f7">AddExtActualParmSVFGNodes</a>(pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>());</div>
|
|
513
|
+
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
|
|
514
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">if</span>(pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div>
|
|
515
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->performStat();</div>
|
|
516
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div>
|
|
516
517
|
</div><!-- fragment -->
|
|
517
518
|
</div>
|
|
518
519
|
</div>
|
|
@@ -535,48 +536,48 @@ Additional Inherited Members</h2></td></tr>
|
|
|
535
536
|
</table>
|
|
536
537
|
</td>
|
|
537
538
|
<td class="mlabels-right">
|
|
538
|
-
<span class="mlabels"><span class="mlabel">
|
|
539
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
539
540
|
</tr>
|
|
540
541
|
</table>
|
|
541
542
|
</div><div class="memdoc">
|
|
542
543
|
<p>Collect memory pointed global pointers, note that this collection is recursively performed, for example gp-->obj-->obj' obj and obj' are both considered global memory</p>
|
|
543
544
|
<p>Recursively collect global memory objects </p>
|
|
544
545
|
|
|
545
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#
|
|
546
|
-
<div class="fragment"><div class="line"><a name="
|
|
547
|
-
<div class="line"><a name="
|
|
548
|
-
<div class="line"><a name="
|
|
549
|
-
<div class="line"><a name="
|
|
550
|
-
<div class="line"><a name="
|
|
551
|
-
<div class="line"><a name="
|
|
552
|
-
<div class="line"><a name="
|
|
553
|
-
<div class="line"><a name="
|
|
554
|
-
<div class="line"><a name="
|
|
555
|
-
<div class="line"><a name="
|
|
556
|
-
<div class="line"><a name="
|
|
557
|
-
<div class="line"><a name="
|
|
558
|
-
<div class="line"><a name="
|
|
559
|
-
<div class="line"><a name="
|
|
560
|
-
<div class="line"><a name="
|
|
561
|
-
<div class="line"><a name="
|
|
562
|
-
<div class="line"><a name="
|
|
563
|
-
<div class="line"><a name="
|
|
564
|
-
<div class="line"><a name="
|
|
565
|
-
<div class="line"><a name="
|
|
566
|
-
<div class="line"><a name="
|
|
567
|
-
<div class="line"><a name="
|
|
568
|
-
<div class="line"><a name="
|
|
569
|
-
<div class="line"><a name="
|
|
570
|
-
<div class="line"><a name="
|
|
571
|
-
<div class="line"><a name="
|
|
572
|
-
<div class="line"><a name="
|
|
573
|
-
<div class="line"><a name="
|
|
574
|
-
<div class="line"><a name="
|
|
575
|
-
<div class="line"><a name="
|
|
576
|
-
<div class="line"><a name="
|
|
577
|
-
<div class="line"><a name="
|
|
578
|
-
<div class="line"><a name="
|
|
579
|
-
<div class="line"><a name="
|
|
546
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#l00070">70</a> of file <a class="el" href="SaberSVFGBuilder_8cpp_source.html">SaberSVFGBuilder.cpp</a>.</p>
|
|
547
|
+
<div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div>
|
|
548
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getPAG();</div>
|
|
549
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="namespaceSVF.html#a39d27055a14d9d6363c668ee215a4676">NodeVector</a> worklist;</div>
|
|
550
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; it++)</div>
|
|
551
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div>
|
|
552
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = it->second;</div>
|
|
553
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DummyValVar, DummyObjVar>(pagNode))</div>
|
|
554
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">continue</span>;</div>
|
|
555
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
|
|
556
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>* gepobj = SVFUtil::dyn_cast<GepObjVar>(pagNode))</div>
|
|
557
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div>
|
|
558
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">if</span>(SVFUtil::isa<DummyObjVar>(pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(gepobj->getBaseNode())))</div>
|
|
559
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">continue</span>;</div>
|
|
560
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div>
|
|
561
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val = pagNode-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>())</div>
|
|
562
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  {</div>
|
|
563
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span>(SVFUtil::isa<SVFGlobalValue>(val))</div>
|
|
564
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  worklist.push_back(it->first);</div>
|
|
565
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div>
|
|
566
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div>
|
|
567
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
|
|
568
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a4cb1f607e33d106dfa178e822c5ab7e1">NodeToPTSSMap</a> cachedPtsMap;</div>
|
|
569
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">while</span>(!worklist.empty())</div>
|
|
570
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div>
|
|
571
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = worklist.back();</div>
|
|
572
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  worklist.pop_back();</div>
|
|
573
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a967dba864a6032e448222525aedb1f2a">globs</a>.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(<span class="keywordtype">id</span>);</div>
|
|
574
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = pta-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(<span class="keywordtype">id</span>);</div>
|
|
575
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</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>(); it!=eit; ++it)</div>
|
|
576
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div>
|
|
577
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a967dba864a6032e448222525aedb1f2a">globs</a> |= <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a411e168e2a6c27e15186c609c5e216b3">CollectPtsChain</a>(pta,*it,cachedPtsMap);</div>
|
|
578
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
|
|
579
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div>
|
|
580
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div>
|
|
580
581
|
</div><!-- fragment -->
|
|
581
582
|
</div>
|
|
582
583
|
</div>
|
|
@@ -615,57 +616,57 @@ Additional Inherited Members</h2></td></tr>
|
|
|
615
616
|
</table>
|
|
616
617
|
</td>
|
|
617
618
|
<td class="mlabels-right">
|
|
618
|
-
<span class="mlabels"><span class="mlabel">
|
|
619
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
619
620
|
</tr>
|
|
620
621
|
</table>
|
|
621
622
|
</div><div class="memdoc">
|
|
622
623
|
|
|
623
624
|
<p>Collect objects along points-to chains. </p>
|
|
624
625
|
|
|
625
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#
|
|
626
|
-
<div class="fragment"><div class="line"><a name="
|
|
627
|
-
<div class="line"><a name="
|
|
628
|
-
<div class="line"><a name="
|
|
629
|
-
<div class="line"><a name="
|
|
630
|
-
<div class="line"><a name="
|
|
631
|
-
<div class="line"><a name="
|
|
632
|
-
<div class="line"><a name="
|
|
633
|
-
<div class="line"><a name="
|
|
634
|
-
<div class="line"><a name="
|
|
635
|
-
<div class="line"><a name="
|
|
636
|
-
<div class="line"><a name="
|
|
637
|
-
<div class="line"><a name="
|
|
638
|
-
<div class="line"><a name="
|
|
639
|
-
<div class="line"><a name="
|
|
640
|
-
<div class="line"><a name="
|
|
641
|
-
<div class="line"><a name="
|
|
642
|
-
<div class="line"><a name="
|
|
643
|
-
<div class="line"><a name="
|
|
644
|
-
<div class="line"><a name="
|
|
645
|
-
<div class="line"><a name="
|
|
646
|
-
<div class="line"><a name="
|
|
647
|
-
<div class="line"><a name="
|
|
648
|
-
<div class="line"><a name="
|
|
649
|
-
<div class="line"><a name="
|
|
650
|
-
<div class="line"><a name="
|
|
651
|
-
<div class="line"><a name="
|
|
652
|
-
<div class="line"><a name="
|
|
653
|
-
<div class="line"><a name="
|
|
654
|
-
<div class="line"><a name="
|
|
655
|
-
<div class="line"><a name="
|
|
656
|
-
<div class="line"><a name="
|
|
657
|
-
<div class="line"><a name="
|
|
658
|
-
<div class="line"><a name="
|
|
659
|
-
<div class="line"><a name="
|
|
660
|
-
<div class="line"><a name="
|
|
661
|
-
<div class="line"><a name="
|
|
662
|
-
<div class="line"><a name="
|
|
663
|
-
<div class="line"><a name="
|
|
664
|
-
<div class="line"><a name="
|
|
665
|
-
<div class="line"><a name="
|
|
666
|
-
<div class="line"><a name="
|
|
667
|
-
<div class="line"><a name="
|
|
668
|
-
<div class="line"><a name="
|
|
626
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#l00122">122</a> of file <a class="el" href="SaberSVFGBuilder_8cpp_source.html">SaberSVFGBuilder.cpp</a>.</p>
|
|
627
|
+
<div class="fragment"><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> {</div>
|
|
628
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getPAG();</div>
|
|
629
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
|
630
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> baseId = pag-><a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<span class="keywordtype">id</span>);</div>
|
|
631
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  NodeToPTSSMap::iterator it = cachedPtsMap.find(baseId);</div>
|
|
632
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span>(it!=cachedPtsMap.end())</div>
|
|
633
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div>
|
|
634
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
635
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div>
|
|
636
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">else</span></div>
|
|
637
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div>
|
|
638
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = cachedPtsMap[baseId];</div>
|
|
639
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// base object</span></div>
|
|
640
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1Options.html#a9be31261a2f96c5733bd35a5da07eb76">Options::CollectExtRetGlobals</a>())</div>
|
|
641
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  {</div>
|
|
642
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">if</span>(pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#af90d2ccb01402c5ca9d7a059f345c816">isFIObjNode</a>(baseId) && pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(baseId)-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
643
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div>
|
|
644
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFCallInst.html">SVFCallInst</a>* inst = SVFUtil::dyn_cast<SVFCallInst>(pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(baseId)-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>());</div>
|
|
645
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span>(inst && <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(inst))</div>
|
|
646
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div>
|
|
647
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">return</span> pts;</div>
|
|
648
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div>
|
|
649
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
|
|
650
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div>
|
|
651
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div>
|
|
652
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  pts |= pag-><a class="code" href="classSVF_1_1SVFIR.html#a42d1e2f0213fb6e54c56cc0695b57cb0">getFieldsAfterCollapse</a>(baseId);</div>
|
|
653
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
|
|
654
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a8e07c6afc4ae6e2792431065c2948039">WorkList</a> worklist;</div>
|
|
655
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</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>(); it!=eit; ++it)</div>
|
|
656
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(*it);</div>
|
|
657
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  </div>
|
|
658
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">while</span>(!worklist.empty())</div>
|
|
659
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div>
|
|
660
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = worklist.pop();</div>
|
|
661
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& tmp = pta-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(nodeId);</div>
|
|
662
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = tmp.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = tmp.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it!=eit; ++it)</div>
|
|
663
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div>
|
|
664
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  pts |= <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a411e168e2a6c27e15186c609c5e216b3">CollectPtsChain</a>(pta,*it,cachedPtsMap);</div>
|
|
665
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div>
|
|
666
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div>
|
|
667
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> pts;</div>
|
|
668
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div>
|
|
669
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</div>
|
|
669
670
|
</div><!-- fragment -->
|
|
670
671
|
</div>
|
|
671
672
|
</div>
|
|
@@ -693,10 +694,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
693
694
|
</table>
|
|
694
695
|
</div><div class="memdoc">
|
|
695
696
|
|
|
696
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
697
|
-
<div class="fragment"><div class="line"><a name="
|
|
698
|
-
<div class="line"><a name="
|
|
699
|
-
<div class="line"><a name="
|
|
697
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00057">57</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
698
|
+
<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  {</div>
|
|
699
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a9431a9dcbcf88b78e721b0347046e997">globSVFGNodes</a>.find(node)!=<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a9431a9dcbcf88b78e721b0347046e997">globSVFGNodes</a>.end();</div>
|
|
700
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div>
|
|
700
701
|
</div><!-- fragment -->
|
|
701
702
|
</div>
|
|
702
703
|
</div>
|
|
@@ -744,28 +745,28 @@ Additional Inherited Members</h2></td></tr>
|
|
|
744
745
|
<p>Return TRUE if this is a strong update STORE statement. </p>
|
|
745
746
|
<p>Find the unique element in cpts</p>
|
|
746
747
|
|
|
747
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#
|
|
748
|
-
<div class="fragment"><div class="line"><a name="
|
|
749
|
-
<div class="line"><a name="
|
|
750
|
-
<div class="line"><a name="
|
|
751
|
-
<div class="line"><a name="
|
|
752
|
-
<div class="line"><a name="
|
|
753
|
-
<div class="line"><a name="
|
|
754
|
-
<div class="line"><a name="
|
|
755
|
-
<div class="line"><a name="
|
|
756
|
-
<div class="line"><a name="
|
|
757
|
-
<div class="line"><a name="
|
|
758
|
-
<div class="line"><a name="
|
|
759
|
-
<div class="line"><a name="
|
|
760
|
-
<div class="line"><a name="
|
|
761
|
-
<div class="line"><a name="
|
|
762
|
-
<div class="line"><a name="
|
|
763
|
-
<div class="line"><a name="
|
|
764
|
-
<div class="line"><a name="
|
|
765
|
-
<div class="line"><a name="
|
|
766
|
-
<div class="line"><a name="
|
|
767
|
-
<div class="line"><a name="
|
|
768
|
-
<div class="line"><a name="
|
|
748
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#l00224">224</a> of file <a class="el" href="SaberSVFGBuilder_8cpp_source.html">SaberSVFGBuilder.cpp</a>.</p>
|
|
749
|
+
<div class="fragment"><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> {</div>
|
|
750
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordtype">bool</span> isSU = <span class="keyword">false</span>;</div>
|
|
751
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store = SVFUtil::dyn_cast<StoreSVFGNode>(node))</div>
|
|
752
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  {</div>
|
|
753
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& dstCPSet = pta-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(store->getPAGDstNodeID());</div>
|
|
754
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">if</span> (dstCPSet.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>() == 1)</div>
|
|
755
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  {</div>
|
|
756
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = dstCPSet.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>();</div>
|
|
757
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  singleton = *it;</div>
|
|
758
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
|
|
759
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">// Strong update can be made if this points-to target is not heap, array or field-insensitive.</span></div>
|
|
760
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">if</span> (!pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#ae6ea391ac44dffeb6899bb44323c5361">isHeapMemObj</a>(singleton) && !pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a89dfeedf8e3e91603a1e9c73e3608a73">isArrayMemObj</a>(singleton)</div>
|
|
761
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  && <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(singleton)-><a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>() == <span class="keyword">false</span></div>
|
|
762
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  && !pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">isLocalVarInRecursiveFun</a>(singleton))</div>
|
|
763
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  {</div>
|
|
764
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  isSU = <span class="keyword">true</span>;</div>
|
|
765
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div>
|
|
766
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div>
|
|
767
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div>
|
|
768
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">return</span> isSU;</div>
|
|
769
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> }</div>
|
|
769
770
|
</div><!-- fragment -->
|
|
770
771
|
</div>
|
|
771
772
|
</div>
|
|
@@ -788,52 +789,52 @@ Additional Inherited Members</h2></td></tr>
|
|
|
788
789
|
</table>
|
|
789
790
|
</td>
|
|
790
791
|
<td class="mlabels-right">
|
|
791
|
-
<span class="mlabels"><span class="mlabel">
|
|
792
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
792
793
|
</tr>
|
|
793
794
|
</table>
|
|
794
795
|
</div><div class="memdoc">
|
|
795
796
|
<p>Remove direct value-flow edge to a dereference point for Saber source-sink memory error detection for example, given two statements: p = alloc; q = *p, the direct <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> edge between them is deleted Because those edges only stand for values used at the dereference points but they can not pass the value to other definitions </p>
|
|
796
797
|
<p>for store, connect the RHS/LHS pointer to its def</p>
|
|
797
798
|
|
|
798
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#
|
|
799
|
-
<div class="fragment"><div class="line"><a name="
|
|
800
|
-
<div class="line"><a name="
|
|
801
|
-
<div class="line"><a name="
|
|
802
|
-
<div class="line"><a name="
|
|
803
|
-
<div class="line"><a name="
|
|
804
|
-
<div class="line"><a name="
|
|
805
|
-
<div class="line"><a name="
|
|
806
|
-
<div class="line"><a name="
|
|
807
|
-
<div class="line"><a name="
|
|
808
|
-
<div class="line"><a name="
|
|
809
|
-
<div class="line"><a name="
|
|
810
|
-
<div class="line"><a name="
|
|
811
|
-
<div class="line"><a name="
|
|
812
|
-
<div class="line"><a name="
|
|
813
|
-
<div class="line"><a name="
|
|
814
|
-
<div class="line"><a name="
|
|
815
|
-
<div class="line"><a name="
|
|
816
|
-
<div class="line"><a name="
|
|
817
|
-
<div class="line"><a name="
|
|
818
|
-
<div class="line"><a name="
|
|
819
|
-
<div class="line"><a name="
|
|
820
|
-
<div class="line"><a name="
|
|
821
|
-
<div class="line"><a name="
|
|
822
|
-
<div class="line"><a name="
|
|
823
|
-
<div class="line"><a name="
|
|
824
|
-
<div class="line"><a name="
|
|
825
|
-
<div class="line"><a name="
|
|
826
|
-
<div class="line"><a name="
|
|
827
|
-
<div class="line"><a name="
|
|
828
|
-
<div class="line"><a name="
|
|
829
|
-
<div class="line"><a name="
|
|
830
|
-
<div class="line"><a name="
|
|
831
|
-
<div class="line"><a name="
|
|
832
|
-
<div class="line"><a name="
|
|
833
|
-
<div class="line"><a name="
|
|
834
|
-
<div class="line"><a name="
|
|
835
|
-
<div class="line"><a name="
|
|
836
|
-
<div class="line"><a name="
|
|
799
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#l00180">180</a> of file <a class="el" href="SaberSVFGBuilder_8cpp_source.html">SaberSVFGBuilder.cpp</a>.</p>
|
|
800
|
+
<div class="fragment"><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> {</div>
|
|
801
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
|
|
802
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">SVFG::iterator</a> it = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->begin(), eit = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->end(); it!=eit; ++it)</div>
|
|
803
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  {</div>
|
|
804
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it->second;</div>
|
|
805
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div>
|
|
806
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtSVFGNode>(node))</div>
|
|
807
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  {</div>
|
|
808
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span>(SVFUtil::isa<StoreSVFGNode>(stmtNode))</div>
|
|
809
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div>
|
|
810
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* def = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getDefSVFGNode(stmtNode->getPAGDstNode());</div>
|
|
811
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getIntraVFGEdge(def,stmtNode,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>))</div>
|
|
812
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->removeSVFGEdge(edge);</div>
|
|
813
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">else</span></div>
|
|
814
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  assert((<a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getKind()==<a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getKind()==<a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>) && <span class="stringliteral">"Edge not found!"</span>);</div>
|
|
815
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
|
|
816
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a4bfa849a30d1982ae597d26b4a01dd0f">accessGlobal</a>(pta,stmtNode->getPAGDstNode()))</div>
|
|
817
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  {</div>
|
|
818
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a9431a9dcbcf88b78e721b0347046e997">globSVFGNodes</a>.insert(stmtNode);</div>
|
|
819
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  }</div>
|
|
820
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div>
|
|
821
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<LoadSVFGNode>(stmtNode))</div>
|
|
822
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div>
|
|
823
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* def = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getDefSVFGNode(stmtNode->getPAGSrcNode());</div>
|
|
824
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getIntraVFGEdge(def,stmtNode,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>))</div>
|
|
825
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->removeSVFGEdge(edge);</div>
|
|
826
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">else</span></div>
|
|
827
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  assert((<a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getKind()==<a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getKind()==<a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>) && <span class="stringliteral">"Edge not found!"</span>);</div>
|
|
828
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
|
|
829
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a4bfa849a30d1982ae597d26b4a01dd0f">accessGlobal</a>(pta,stmtNode->getPAGSrcNode()))</div>
|
|
830
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  {</div>
|
|
831
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a9431a9dcbcf88b78e721b0347046e997">globSVFGNodes</a>.insert(stmtNode);</div>
|
|
832
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div>
|
|
833
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div>
|
|
834
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
|
|
835
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div>
|
|
836
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div>
|
|
837
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> }</div>
|
|
837
838
|
</div><!-- fragment -->
|
|
838
839
|
</div>
|
|
839
840
|
</div>
|
|
@@ -856,7 +857,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
856
857
|
</table>
|
|
857
858
|
</td>
|
|
858
859
|
<td class="mlabels-right">
|
|
859
|
-
<span class="mlabels"><span class="mlabel">
|
|
860
|
+
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
|
|
860
861
|
</tr>
|
|
861
862
|
</table>
|
|
862
863
|
</div><div class="memdoc">
|
|
@@ -864,37 +865,72 @@ Additional Inherited Members</h2></td></tr>
|
|
|
864
865
|
<p>Remove Incoming Edge for strong-update (SU) store instruction Because the SU node does not receive indirect value</p>
|
|
865
866
|
<p>e.g., L1: *p = O; (singleton) L2: *p = _; (SU here) We should remove the indirect value flow L1 -> L2 Because the points-to set of O from L1 does not pass to that after L2 </p>
|
|
866
867
|
|
|
867
|
-
<p
|
|
868
|
-
|
|
869
|
-
<
|
|
870
|
-
<div class="line"><a name="
|
|
871
|
-
<div class="line"><a name="
|
|
872
|
-
<div class="line"><a name="
|
|
873
|
-
<div class="line"><a name="
|
|
874
|
-
<div class="line"><a name="
|
|
875
|
-
<div class="line"><a name="
|
|
876
|
-
<div class="line"><a name="
|
|
877
|
-
<div class="line"><a name="
|
|
878
|
-
<div class="line"><a name="
|
|
879
|
-
<div class="line"><a name="
|
|
880
|
-
<div class="line"><a name="
|
|
881
|
-
<div class="line"><a name="
|
|
882
|
-
<div class="line"><a name="
|
|
883
|
-
<div class="line"><a name="
|
|
884
|
-
<div class="line"><a name="
|
|
885
|
-
<div class="line"><a name="
|
|
886
|
-
<div class="line"><a name="
|
|
887
|
-
<div class="line"><a name="
|
|
888
|
-
<div class="line"><a name="
|
|
889
|
-
<div class="line"><a name="
|
|
890
|
-
<div class="line"><a name="
|
|
891
|
-
<div class="line"><a name="
|
|
892
|
-
<div class="line"><a name="
|
|
893
|
-
<div class="line"><a name="
|
|
894
|
-
<div class="line"><a name="
|
|
895
|
-
<div class="line"><a name="
|
|
896
|
-
<div class="line"><a name="
|
|
897
|
-
<div class="line"><a name="
|
|
868
|
+
<p>Reimplemented in <a class="el" href="classSVF_1_1CFLSVFGBuilder.html#a5a8d9e9a8bdb5ff8605592c2310d34a2">SVF::CFLSVFGBuilder</a>.</p>
|
|
869
|
+
|
|
870
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8cpp_source.html#l00258">258</a> of file <a class="el" href="SaberSVFGBuilder_8cpp_source.html">SaberSVFGBuilder.cpp</a>.</p>
|
|
871
|
+
<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> {</div>
|
|
872
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
|
|
873
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">SVFG::iterator</a> it = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->begin(), eit = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->end(); it!=eit; ++it)</div>
|
|
874
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  {</div>
|
|
875
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it->second;</div>
|
|
876
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
|
|
877
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StoreSVFGNode>(node))</div>
|
|
878
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div>
|
|
879
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">if</span>(SVFUtil::isa<StoreStmt>(stmtNode->getPAGEdge()))</div>
|
|
880
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  {</div>
|
|
881
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> singleton;</div>
|
|
882
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a21c20865a0093192978cec09ce09f20b">isStrongUpdate</a>(node, singleton, pta))</div>
|
|
883
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  {</div>
|
|
884
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<SVFGEdge*></a> toRemove;</div>
|
|
885
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it2 = node-><a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>(), eit2 = node-><a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>(); it2 != eit2; ++it2)</div>
|
|
886
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div>
|
|
887
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">if</span> ((*it2)->isIndirectVFGEdge())</div>
|
|
888
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  {</div>
|
|
889
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  toRemove.insert(*it2);</div>
|
|
890
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div>
|
|
891
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div>
|
|
892
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge: toRemove)</div>
|
|
893
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div>
|
|
894
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">if</span> (isa<StoreSVFGNode>(edge->getSrcNode()))</div>
|
|
895
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ad7902869f6565f92a4c5af61bd895235">saberCondAllocator</a>-><a class="code" href="classSVF_1_1SaberCondAllocator.html#aaac0aab3bb5c3533889779b4f63bd6a4">getRemovedSUVFEdges</a>()[edge->getSrcNode()].insert(edge->getDstNode());</div>
|
|
896
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->removeSVFGEdge(edge);</div>
|
|
897
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div>
|
|
898
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div>
|
|
899
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div>
|
|
900
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div>
|
|
901
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div>
|
|
902
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> }</div>
|
|
903
|
+
</div><!-- fragment -->
|
|
904
|
+
</div>
|
|
905
|
+
</div>
|
|
906
|
+
<a id="a8eb03d4362685f361bc1110fc98925b9"></a>
|
|
907
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a8eb03d4362685f361bc1110fc98925b9">◆ </a></span>setSaberCondAllocator()</h2>
|
|
908
|
+
|
|
909
|
+
<div class="memitem">
|
|
910
|
+
<div class="memproto">
|
|
911
|
+
<table class="mlabels">
|
|
912
|
+
<tr>
|
|
913
|
+
<td class="mlabels-left">
|
|
914
|
+
<table class="memname">
|
|
915
|
+
<tr>
|
|
916
|
+
<td class="memname">void SVF::SaberSVFGBuilder::setSaberCondAllocator </td>
|
|
917
|
+
<td>(</td>
|
|
918
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1SaberCondAllocator.html">SaberCondAllocator</a> * </td>
|
|
919
|
+
<td class="paramname"><em>allocator</em></td><td>)</td>
|
|
920
|
+
<td></td>
|
|
921
|
+
</tr>
|
|
922
|
+
</table>
|
|
923
|
+
</td>
|
|
924
|
+
<td class="mlabels-right">
|
|
925
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
926
|
+
</tr>
|
|
927
|
+
</table>
|
|
928
|
+
</div><div class="memdoc">
|
|
929
|
+
|
|
930
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00068">68</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
931
|
+
<div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
|
|
932
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ad7902869f6565f92a4c5af61bd895235">saberCondAllocator</a> = allocator;</div>
|
|
933
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div>
|
|
898
934
|
</div><!-- fragment -->
|
|
899
935
|
</div>
|
|
900
936
|
</div>
|
|
@@ -914,12 +950,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
914
950
|
</table>
|
|
915
951
|
</td>
|
|
916
952
|
<td class="mlabels-right">
|
|
917
|
-
<span class="mlabels"><span class="mlabel">
|
|
953
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
918
954
|
</tr>
|
|
919
955
|
</table>
|
|
920
956
|
</div><div class="memdoc">
|
|
921
957
|
|
|
922
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
958
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00105">105</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
923
959
|
|
|
924
960
|
</div>
|
|
925
961
|
</div>
|
|
@@ -938,14 +974,38 @@ Additional Inherited Members</h2></td></tr>
|
|
|
938
974
|
</table>
|
|
939
975
|
</td>
|
|
940
976
|
<td class="mlabels-right">
|
|
941
|
-
<span class="mlabels"><span class="mlabel">
|
|
977
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
942
978
|
</tr>
|
|
943
979
|
</table>
|
|
944
980
|
</div><div class="memdoc">
|
|
945
981
|
|
|
946
982
|
<p>Store all global <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> nodes. </p>
|
|
947
983
|
|
|
948
|
-
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#
|
|
984
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00107">107</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
985
|
+
|
|
986
|
+
</div>
|
|
987
|
+
</div>
|
|
988
|
+
<a id="ad7902869f6565f92a4c5af61bd895235"></a>
|
|
989
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ad7902869f6565f92a4c5af61bd895235">◆ </a></span>saberCondAllocator</h2>
|
|
990
|
+
|
|
991
|
+
<div class="memitem">
|
|
992
|
+
<div class="memproto">
|
|
993
|
+
<table class="mlabels">
|
|
994
|
+
<tr>
|
|
995
|
+
<td class="mlabels-left">
|
|
996
|
+
<table class="memname">
|
|
997
|
+
<tr>
|
|
998
|
+
<td class="memname"><a class="el" href="classSVF_1_1SaberCondAllocator.html">SaberCondAllocator</a>* SVF::SaberSVFGBuilder::saberCondAllocator</td>
|
|
999
|
+
</tr>
|
|
1000
|
+
</table>
|
|
1001
|
+
</td>
|
|
1002
|
+
<td class="mlabels-right">
|
|
1003
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
1004
|
+
</tr>
|
|
1005
|
+
</table>
|
|
1006
|
+
</div><div class="memdoc">
|
|
1007
|
+
|
|
1008
|
+
<p class="definition">Definition at line <a class="el" href="SaberSVFGBuilder_8h_source.html#l00109">109</a> of file <a class="el" href="SaberSVFGBuilder_8h_source.html">SaberSVFGBuilder.h</a>.</p>
|
|
949
1009
|
|
|
950
1010
|
</div>
|
|
951
1011
|
</div>
|
|
@@ -955,7 +1015,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
955
1015
|
</ul>
|
|
956
1016
|
</div><!-- contents -->
|
|
957
1017
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
958
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a4cb1f607e33d106dfa178e822c5ab7e1"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a4cb1f607e33d106dfa178e822c5ab7e1">SVF::SaberSVFGBuilder::NodeToPTSSMap</a></div><div class="ttdeci">Map< NodeID, PointsTo > NodeToPTSSMap</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#
|
|
1018
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a4cb1f607e33d106dfa178e822c5ab7e1"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a4cb1f607e33d106dfa178e822c5ab7e1">SVF::SaberSVFGBuilder::NodeToPTSSMap</a></div><div class="ttdeci">Map< NodeID, PointsTo > NodeToPTSSMap</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00048">SaberSVFGBuilder.h:48</a></div></div>
|
|
959
1019
|
<div class="ttc" id="anamespaceSVF_html_a39d27055a14d9d6363c668ee215a4676"><div class="ttname"><a href="namespaceSVF.html#a39d27055a14d9d6363c668ee215a4676">SVF::NodeVector</a></div><div class="ttdeci">std::vector< NodeID > NodeVector</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00117">SVFType.h:117</a></div></div>
|
|
960
1020
|
<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>
|
|
961
1021
|
<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#l00469">SymbolTableInfo.cpp:469</a></div></div>
|
|
@@ -968,41 +1028,43 @@ Additional Inherited Members</h2></td></tr>
|
|
|
968
1028
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html_a317e09edb29b110cf4273009551d31ec"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">SVF::PTACallGraph::getCallees</a></div><div class="ttdeci">void getCallees(const CallICFGNode *cs, FunctionSet &callees)</div><div class="ttdoc">Get all callees for a callsite.</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00382">PTACallGraph.h:382</a></div></div>
|
|
969
1029
|
<div class="ttc" id="aclassSVF_1_1SVFGBuilder_html_af9f454c48ebf26376fca06cdcec0f9cc"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">SVF::SVFGBuilder::svfg</a></div><div class="ttdeci">std::unique_ptr< SVFG > svfg</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00091">SVFGBuilder.h:91</a></div></div>
|
|
970
1030
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
|
|
1031
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_ad7902869f6565f92a4c5af61bd895235"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ad7902869f6565f92a4c5af61bd895235">SVF::SaberSVFGBuilder::saberCondAllocator</a></div><div class="ttdeci">SaberCondAllocator * saberCondAllocator</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00109">SaberSVFGBuilder.h:109</a></div></div>
|
|
971
1032
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_aa0d4ee196b91fce626f3f15bcc5599e4"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">SVF::PointsTo::count</a></div><div class="ttdeci">u32_t count() const</div><div class="ttdoc">Returns number of elements.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00111">PointsTo.cpp:111</a></div></div>
|
|
972
1033
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
|
|
973
1034
|
<div class="ttc" id="aSVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00582">SVFType.h:582</a></div></div>
|
|
974
1035
|
<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>
|
|
975
1036
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00117">SVFVariables.h:117</a></div></div>
|
|
976
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a21c20865a0093192978cec09ce09f20b"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a21c20865a0093192978cec09ce09f20b">SVF::SaberSVFGBuilder::isStrongUpdate</a></div><div class="ttdeci">bool isStrongUpdate(const SVFGNode *node, NodeID &singleton, BVDataPTAImpl *pta)</div><div class="ttdoc">Return TRUE if this is a strong update STORE statement.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#
|
|
1037
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a21c20865a0093192978cec09ce09f20b"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a21c20865a0093192978cec09ce09f20b">SVF::SaberSVFGBuilder::isStrongUpdate</a></div><div class="ttdeci">bool isStrongUpdate(const SVFGNode *node, NodeID &singleton, BVDataPTAImpl *pta)</div><div class="ttdoc">Return TRUE if this is a strong update STORE statement.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00224">SaberSVFGBuilder.cpp:224</a></div></div>
|
|
977
1038
|
<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>
|
|
978
1039
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a89dfeedf8e3e91603a1e9c73e3608a73"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a89dfeedf8e3e91603a1e9c73e3608a73">SVF::PointerAnalysis::isArrayMemObj</a></div><div class="ttdeci">bool isArrayMemObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00319">PointerAnalysis.h:319</a></div></div>
|
|
979
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_ab8db9f6681eeb4663614119417a83cec"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ab8db9f6681eeb4663614119417a83cec">SVF::SaberSVFGBuilder::addActualParmVFGNode</a></div><div class="ttdeci">void addActualParmVFGNode(const PAGNode *pagNode, const CallICFGNode *cs)</div><div class="ttdoc">Add ActualParmVFGNode.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#
|
|
1040
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_ab8db9f6681eeb4663614119417a83cec"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ab8db9f6681eeb4663614119417a83cec">SVF::SaberSVFGBuilder::addActualParmVFGNode</a></div><div class="ttdeci">void addActualParmVFGNode(const PAGNode *pagNode, const CallICFGNode *cs)</div><div class="ttdoc">Add ActualParmVFGNode.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00063">SaberSVFGBuilder.h:63</a></div></div>
|
|
980
1041
|
<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>
|
|
981
1042
|
<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#l00177">SVFValue.h:177</a></div></div>
|
|
982
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a9431a9dcbcf88b78e721b0347046e997"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a9431a9dcbcf88b78e721b0347046e997">SVF::SaberSVFGBuilder::globSVFGNodes</a></div><div class="ttdeci">SVFGNodeSet globSVFGNodes</div><div class="ttdoc">Store all global SVFG nodes.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#
|
|
1043
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a9431a9dcbcf88b78e721b0347046e997"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a9431a9dcbcf88b78e721b0347046e997">SVF::SaberSVFGBuilder::globSVFGNodes</a></div><div class="ttdeci">SVFGNodeSet globSVFGNodes</div><div class="ttdoc">Store all global SVFG nodes.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00107">SaberSVFGBuilder.h:107</a></div></div>
|
|
983
1044
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00114">SVFIR.h:114</a></div></div>
|
|
984
1045
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
|
|
985
|
-
<div class="ttc" id="
|
|
1046
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aaac0aab3bb5c3533889779b4f63bd6a4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aaac0aab3bb5c3533889779b4f63bd6a4">SVF::SaberCondAllocator::getRemovedSUVFEdges</a></div><div class="ttdeci">SVFGNodeToSVFGNodeSetMap & getRemovedSUVFEdges()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00244">SaberCondAllocator.h:244</a></div></div>
|
|
1047
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_ab6870d6f6f5abc5417dcea771eaa31f7"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ab6870d6f6f5abc5417dcea771eaa31f7">SVF::SaberSVFGBuilder::AddExtActualParmSVFGNodes</a></div><div class="ttdeci">virtual void AddExtActualParmSVFGNodes(PTACallGraph *callgraph)</div><div class="ttdoc">Add actual parameter SVFGNode for 1st argument of a deallocation like external function.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00294">SaberSVFGBuilder.cpp:294</a></div></div>
|
|
986
1048
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00042">PointerAnalysisImpl.h:42</a></div></div>
|
|
987
1049
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a346b9300ad16ef65e3ab4e11f88193a7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">SVF::SVFIR::getCallSiteArgsMap</a></div><div class="ttdeci">CSToArgsListMap & getCallSiteArgsMap()</div><div class="ttdoc">Get callsite argument list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00274">SVFIR.h:274</a></div></div>
|
|
988
1050
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
989
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a4bfa849a30d1982ae597d26b4a01dd0f"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a4bfa849a30d1982ae597d26b4a01dd0f">SVF::SaberSVFGBuilder::accessGlobal</a></div><div class="ttdeci">bool accessGlobal(BVDataPTAImpl *pta, const PAGNode *pagNode)</div><div class="ttdoc">Whether points-to of a PAGNode points-to global variable.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#
|
|
1051
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a4bfa849a30d1982ae597d26b4a01dd0f"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a4bfa849a30d1982ae597d26b4a01dd0f">SVF::SaberSVFGBuilder::accessGlobal</a></div><div class="ttdeci">bool accessGlobal(BVDataPTAImpl *pta, const PAGNode *pagNode)</div><div class="ttdoc">Whether points-to of a PAGNode points-to global variable.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00170">SaberSVFGBuilder.cpp:170</a></div></div>
|
|
990
1052
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00225">GenericGraph.h:225</a></div></div>
|
|
991
1053
|
<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>
|
|
992
1054
|
<div class="ttc" id="aclassSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">SVF::VFG::FULLSVFG_OPT</a></div><div class="ttdeci">@ FULLSVFG_OPT</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00057">VFG.h:57</a></div></div>
|
|
993
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a2d0492c50159a5f97a587874c6877286"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a2d0492c50159a5f97a587874c6877286">SVF::SaberSVFGBuilder::collectGlobals</a></div><div class="ttdeci">void collectGlobals(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#
|
|
1055
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a2d0492c50159a5f97a587874c6877286"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a2d0492c50159a5f97a587874c6877286">SVF::SaberSVFGBuilder::collectGlobals</a></div><div class="ttdeci">void collectGlobals(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00070">SaberSVFGBuilder.cpp:70</a></div></div>
|
|
994
1056
|
<div class="ttc" id="aclassSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">SVF::VFG::PTRONLYSVFG_OPT</a></div><div class="ttdeci">@ PTRONLYSVFG_OPT</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00057">VFG.h:57</a></div></div>
|
|
995
1057
|
<div class="ttc" id="aclassSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
996
1058
|
<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>
|
|
997
1059
|
<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>
|
|
998
1060
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a108380f6f0b67654bb7c7676686096c8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">SVF::PointerAnalysis::isLocalVarInRecursiveFun</a></div><div class="ttdeci">bool isLocalVarInRecursiveFun(NodeID id) const</div><div class="ttdoc">Whether a local variable is in function recursions.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00137">PointerAnalysis.cpp:137</a></div></div>
|
|
999
1061
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00309">SVFUtil.h:309</a></div></div>
|
|
1000
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a967dba864a6032e448222525aedb1f2a"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a967dba864a6032e448222525aedb1f2a">SVF::SaberSVFGBuilder::globs</a></div><div class="ttdeci">PointsTo globs</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#
|
|
1062
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a967dba864a6032e448222525aedb1f2a"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a967dba864a6032e448222525aedb1f2a">SVF::SaberSVFGBuilder::globs</a></div><div class="ttdeci">PointsTo globs</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00105">SaberSVFGBuilder.h:105</a></div></div>
|
|
1001
1063
|
<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>
|
|
1002
1064
|
<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>
|
|
1003
1065
|
<div class="ttc" id="aclassSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00052">MemSSA.h:52</a></div></div>
|
|
1004
1066
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ae6ea391ac44dffeb6899bb44323c5361"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae6ea391ac44dffeb6899bb44323c5361">SVF::PointerAnalysis::isHeapMemObj</a></div><div class="ttdeci">bool isHeapMemObj(NodeID id) const</div><div class="ttdoc">Whether this object is heap or array.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00312">PointerAnalysis.h:312</a></div></div>
|
|
1005
|
-
<div class="ttc" id="aclassSVF_1_1Options_html_a9be31261a2f96c5733bd35a5da07eb76"><div class="ttname"><a href="classSVF_1_1Options.html#a9be31261a2f96c5733bd35a5da07eb76">SVF::Options::CollectExtRetGlobals</a></div><div class="ttdeci">static const Option< bool > CollectExtRetGlobals</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#
|
|
1067
|
+
<div class="ttc" id="aclassSVF_1_1Options_html_a9be31261a2f96c5733bd35a5da07eb76"><div class="ttname"><a href="classSVF_1_1Options.html#a9be31261a2f96c5733bd35a5da07eb76">SVF::Options::CollectExtRetGlobals</a></div><div class="ttdeci">static const Option< bool > CollectExtRetGlobals</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00220">Options.h:220</a></div></div>
|
|
1006
1068
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a4550f2fb815882edfb666ac818792064"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4550f2fb815882edfb666ac818792064">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(const std::string &msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00099">SVFUtil.cpp:99</a></div></div>
|
|
1007
1069
|
<div class="ttc" id="aclassSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA.</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00308">MemSSA.h:308</a></div></div>
|
|
1008
1070
|
<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>
|
|
@@ -1014,7 +1076,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1014
1076
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
1015
1077
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a64939d7ecfd8e2cf862782954a56596b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVF::SVFIR::SVFVarList</a></div><div class="ttdeci">std::vector< const SVFVar * > SVFVarList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00059">SVFIR.h:59</a></div></div>
|
|
1016
1078
|
<div class="ttc" id="aclassSVF_1_1StmtVFGNode_html"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00116">VFGNode.h:116</a></div></div>
|
|
1017
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a411e168e2a6c27e15186c609c5e216b3"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a411e168e2a6c27e15186c609c5e216b3">SVF::SaberSVFGBuilder::CollectPtsChain</a></div><div class="ttdeci">PointsTo & CollectPtsChain(BVDataPTAImpl *pta, NodeID id, NodeToPTSSMap &cachedPtsMap)</div><div class="ttdoc">Collect objects along points-to chains.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#
|
|
1079
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a411e168e2a6c27e15186c609c5e216b3"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a411e168e2a6c27e15186c609c5e216b3">SVF::SaberSVFGBuilder::CollectPtsChain</a></div><div class="ttdeci">PointsTo & CollectPtsChain(BVDataPTAImpl *pta, NodeID id, NodeToPTSSMap &cachedPtsMap)</div><div class="ttdoc">Collect objects along points-to chains.</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00122">SaberSVFGBuilder.cpp:122</a></div></div>
|
|
1018
1080
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00112">SVFVariables.h:112</a></div></div>
|
|
1019
1081
|
<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>
|
|
1020
1082
|
<div class="ttc" id="aclassSVF_1_1SaberCheckerAPI_html_acf41a2b6de063da9ed492ef0da129036"><div class="ttname"><a href="classSVF_1_1SaberCheckerAPI.html#acf41a2b6de063da9ed492ef0da129036">SVF::SaberCheckerAPI::getCheckerAPI</a></div><div class="ttdeci">static SaberCheckerAPI * getCheckerAPI()</div><div class="ttdoc">Return a static reference.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCheckerAPI_8h_source.html#l00089">SaberCheckerAPI.h:89</a></div></div>
|
|
@@ -1022,14 +1084,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1022
1084
|
<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>
|
|
1023
1085
|
<div class="ttc" id="aSVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DBUG model of each pass.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00576">SVFType.h:576</a></div></div>
|
|
1024
1086
|
<div class="ttc" id="aclassSVF_1_1SVFGBuilder_html_a003c6d9e13e5f73e0648d97400f1854e"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e">SVF::SVFGBuilder::SVFGBuilder</a></div><div class="ttdeci">SVFGBuilder(bool _SVFGWithIndCall=false)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00052">SVFGBuilder.h:52</a></div></div>
|
|
1025
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_ae0a9c42c850bda29aeae2f47ad2b8f4a"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ae0a9c42c850bda29aeae2f47ad2b8f4a">SVF::SaberSVFGBuilder::rmIncomingEdgeForSUStore</a></div><div class="ttdeci">void rmIncomingEdgeForSUStore(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#
|
|
1087
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_ae0a9c42c850bda29aeae2f47ad2b8f4a"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ae0a9c42c850bda29aeae2f47ad2b8f4a">SVF::SaberSVFGBuilder::rmIncomingEdgeForSUStore</a></div><div class="ttdeci">virtual void rmIncomingEdgeForSUStore(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00258">SaberSVFGBuilder.cpp:258</a></div></div>
|
|
1026
1088
|
<div class="ttc" id="aclassSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
|
|
1027
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_ad8f4f63d2071be4eb5f6fb2fdf29a10a"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ad8f4f63d2071be4eb5f6fb2fdf29a10a">SVF::SaberSVFGBuilder::rmDerefDirSVFGEdges</a></div><div class="ttdeci">void rmDerefDirSVFGEdges(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#
|
|
1089
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_ad8f4f63d2071be4eb5f6fb2fdf29a10a"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ad8f4f63d2071be4eb5f6fb2fdf29a10a">SVF::SaberSVFGBuilder::rmDerefDirSVFGEdges</a></div><div class="ttdeci">void rmDerefDirSVFGEdges(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00180">SaberSVFGBuilder.cpp:180</a></div></div>
|
|
1028
1090
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_af90d2ccb01402c5ca9d7a059f345c816"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#af90d2ccb01402c5ca9d7a059f345c816">SVF::PointerAnalysis::isFIObjNode</a></div><div class="ttdeci">bool isFIObjNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00329">PointerAnalysis.h:329</a></div></div>
|
|
1029
1091
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00449">SVFIR.h:449</a></div></div>
|
|
1030
1092
|
<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>
|
|
1031
1093
|
<div class="ttc" id="aclassSVF_1_1VFG_html_a241d0489bf0315460e2b07db87e7847c"><div class="ttname"><a href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">SVF::VFG::iterator</a></div><div class="ttdeci">VFGNodeIDToNodeMapTy::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00080">VFG.h:80</a></div></div>
|
|
1032
|
-
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a8e07c6afc4ae6e2792431065c2948039"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a8e07c6afc4ae6e2792431065c2948039">SVF::SaberSVFGBuilder::WorkList</a></div><div class="ttdeci">FIFOWorkList< NodeID > WorkList</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#
|
|
1094
|
+
<div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a8e07c6afc4ae6e2792431065c2948039"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a8e07c6afc4ae6e2792431065c2948039">SVF::SaberSVFGBuilder::WorkList</a></div><div class="ttdeci">FIFOWorkList< NodeID > WorkList</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00049">SaberSVFGBuilder.h:49</a></div></div>
|
|
1033
1095
|
<!-- start footer part -->
|
|
1034
1096
|
<hr class="footer"/><address class="footer"><small>
|
|
1035
1097
|
Generated by  <a href="http://www.doxygen.org/index.html">
|