svf-tools 1.0.829 → 1.0.830
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/AccessPath_8cpp_source.html +225 -224
- package/SVF-doxygen/html/AccessPath_8h_source.html +11 -11
- package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/BasicTypes_8h.html +2 -0
- package/SVF-doxygen/html/BasicTypes_8h_source.html +123 -121
- package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +11 -11
- package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/DCHG_8cpp_source.html +12 -12
- package/SVF-doxygen/html/DCHG_8h_source.html +5 -5
- package/SVF-doxygen/html/DDAClient_8cpp_source.html +2 -2
- package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAVFSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +145 -144
- package/SVF-doxygen/html/LLVMModule_8h_source.html +3 -3
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +1138 -1066
- package/SVF-doxygen/html/LLVMUtil_8h.html +2 -0
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +419 -414
- 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/MemRegion_8cpp_source.html +3 -3
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +4 -4
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +363 -362
- package/SVF-doxygen/html/PointerAnalysis_8h_source.html +13 -13
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +7 -7
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +11 -10
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +927 -924
- package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +35 -34
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFIR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIR_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFStat_8cpp_source.html +12 -12
- package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFStatements_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFType_8cpp_source.html +38 -37
- package/SVF-doxygen/html/SVFType_8h_source.html +5 -5
- package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFVariables_8h_source.html +1 -1
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +653 -651
- package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +17 -17
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +339 -338
- package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +33 -33
- package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +236 -235
- package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +11 -11
- package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.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_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +12 -12
- 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 +1 -1
- package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1GepStmt.html +3 -3
- 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_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IRGraph.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +141 -140
- package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
- 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 +3 -3
- 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_1MemObj.html +121 -121
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInfo.html +29 -29
- package/SVF-doxygen/html/classSVF_1_1ObjVar.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +342 -341
- package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFIR.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +11 -10
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +868 -864
- package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +3 -2
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +634 -631
- package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +125 -124
- 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_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/functions_func_g.html +10 -10
- package/SVF-doxygen/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/functions_g.html +6 -6
- package/SVF-doxygen/html/functions_r.html +2 -2
- package/SVF-doxygen/html/functions_s.html +5 -5
- package/SVF-doxygen/html/functions_t.html +7 -7
- package/SVF-doxygen/html/functions_v.html +3 -1
- package/SVF-doxygen/html/functions_w.html +8 -8
- package/SVF-doxygen/html/namespaceSVF.html +43 -25
- package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +1233 -1138
- package/SVF-doxygen/html/namespacemembers_func_g.html +6 -3
- package/SVF-doxygen/html/namespacemembers_g.html +10 -4
- package/SVF-doxygen/html/namespacemembers_type_g.html +3 -0
- package/SVF-doxygen/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/search/all_11.js +223 -223
- package/SVF-doxygen/html/search/all_12.js +553 -553
- package/SVF-doxygen/html/search/all_13.js +192 -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 +172 -172
- package/SVF-doxygen/html/search/all_7.js +895 -893
- package/SVF-doxygen/html/search/all_8.js +198 -198
- package/SVF-doxygen/html/search/all_9.js +607 -607
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +198 -198
- 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_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- 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 +80 -80
- 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 +21 -21
- 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 +55 -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 +360 -360
- 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 +288 -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 +172 -172
- package/SVF-doxygen/html/search/functions_2.js +89 -89
- package/SVF-doxygen/html/search/functions_3.js +258 -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 +857 -856
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +423 -423
- 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 +2 -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_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +61 -61
- 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_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +56 -55
- package/SVF-doxygen/html/search/typedefs_7.js +44 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- 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 +97 -97
- package/SVF-doxygen/html/search/variables_11.js +44 -44
- package/SVF-doxygen/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/search/variables_13.js +76 -76
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- 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 +55 -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 +56 -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 +1 -1
- 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/MemoryModel/AccessPath.h +2 -2
- package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +2 -2
- package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +4 -4
- package/svf/lib/MemoryModel/AccessPath.cpp +6 -5
- package/svf/lib/MemoryModel/PointerAnalysis.cpp +1 -0
- package/svf/lib/SVFIR/SVFType.cpp +1 -0
- package/svf/lib/SVFIR/SymbolTableInfo.cpp +1 -0
- package/svf-llvm/include/SVF-LLVM/BasicTypes.h +1 -0
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +6 -0
- package/svf-llvm/lib/LLVMModule.cpp +1 -0
- package/svf-llvm/lib/LLVMUtil.cpp +70 -0
- package/svf-llvm/lib/SVFIRBuilder.cpp +3 -1
- package/svf-llvm/lib/SymbolTableBuilder.cpp +4 -1
|
@@ -947,25 +947,25 @@ Private Member Functions</h2></td></tr>
|
|
|
947
947
|
</table>
|
|
948
948
|
</div><div class="memdoc">
|
|
949
949
|
|
|
950
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
951
|
-
<div class="fragment"><div class="line"><a name="
|
|
952
|
-
<div class="line"><a name="
|
|
953
|
-
<div class="line"><a name="
|
|
954
|
-
<div class="line"><a name="
|
|
955
|
-
<div class="line"><a name="
|
|
956
|
-
<div class="line"><a name="
|
|
957
|
-
<div class="line"><a name="
|
|
958
|
-
<div class="line"><a name="
|
|
959
|
-
<div class="line"><a name="
|
|
960
|
-
<div class="line"><a name="
|
|
961
|
-
<div class="line"><a name="
|
|
962
|
-
<div class="line"><a name="
|
|
963
|
-
<div class="line"><a name="
|
|
964
|
-
<div class="line"><a name="
|
|
965
|
-
<div class="line"><a name="
|
|
966
|
-
<div class="line"><a name="
|
|
967
|
-
<div class="line"><a name="
|
|
968
|
-
<div class="line"><a name="
|
|
950
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00469">469</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
951
|
+
<div class="fragment"><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> {</div>
|
|
952
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordflow">for</span> (VFunSet::const_iterator fit = vfns.begin(),</div>
|
|
953
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  feit = vfns.end(); fit != feit; ++fit)</div>
|
|
954
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div>
|
|
955
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *fit;</div>
|
|
956
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  callee = callee-><a class="code" href="classSVF_1_1SVFFunction.html#a804a41f4eb078586f20f7d5755ea6fdd">getDefFunForMultipleModule</a>();</div>
|
|
957
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>(callee) > 0)</div>
|
|
958
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">continue</span>;</div>
|
|
959
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#a2a1904e6f381a0f8ac30265f2dfc48c8">arg_size</a>() == callee-><a class="code" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">arg_size</a>() ||</div>
|
|
960
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#abe38a348db833b797f32ecc05f67100c">isVarArg</a>() && callee-><a class="code" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">isVarArg</a>()))</div>
|
|
961
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  {</div>
|
|
962
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  newEdges[cs].insert(callee);</div>
|
|
963
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div>
|
|
964
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div>
|
|
965
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(callBlockNode, cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(),callee);</div>
|
|
966
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  }</div>
|
|
967
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  }</div>
|
|
968
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> }</div>
|
|
969
969
|
</div><!-- fragment -->
|
|
970
970
|
</div>
|
|
971
971
|
</div>
|
|
@@ -1164,10 +1164,11 @@ Private Member Functions</h2></td></tr>
|
|
|
1164
1164
|
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  </div>
|
|
1165
1165
|
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = node-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>();</div>
|
|
1166
1166
|
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">getSymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">printFlattenFields</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
|
|
1167
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="
|
|
1168
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> 
|
|
1169
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> 
|
|
1170
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> }</div>
|
|
1167
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="comment">// TODO: getPtrElementType to be removed</span></div>
|
|
1168
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* ptType = SVFUtil::dyn_cast<SVFPointerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
1169
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">getSymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">printFlattenFields</a>(ptType->getPtrElementType());</div>
|
|
1170
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  }</div>
|
|
1171
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> }</div>
|
|
1171
1172
|
</div><!-- fragment -->
|
|
1172
1173
|
</div>
|
|
1173
1174
|
</div>
|
|
@@ -1237,65 +1238,65 @@ Private Member Functions</h2></td></tr>
|
|
|
1237
1238
|
<p>Dump points-to of top-level pointers (<a class="el" href="classSVF_1_1ValVar.html">ValVar</a>) </p>
|
|
1238
1239
|
<p>print the points-to set of node which has the maximum pts size.</p>
|
|
1239
1240
|
|
|
1240
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
1241
|
-
<div class="fragment"><div class="line"><a name="
|
|
1242
|
-
<div class="line"><a name="
|
|
1243
|
-
<div class="line"><a name="
|
|
1244
|
-
<div class="line"><a name="
|
|
1245
|
-
<div class="line"><a name="
|
|
1246
|
-
<div class="line"><a name="
|
|
1247
|
-
<div class="line"><a name="
|
|
1248
|
-
<div class="line"><a name="
|
|
1249
|
-
<div class="line"><a name="
|
|
1250
|
-
<div class="line"><a name="
|
|
1251
|
-
<div class="line"><a name="
|
|
1252
|
-
<div class="line"><a name="
|
|
1253
|
-
<div class="line"><a name="
|
|
1254
|
-
<div class="line"><a name="
|
|
1255
|
-
<div class="line"><a name="
|
|
1256
|
-
<div class="line"><a name="
|
|
1257
|
-
<div class="line"><a name="
|
|
1258
|
-
<div class="line"><a name="
|
|
1259
|
-
<div class="line"><a name="
|
|
1260
|
-
<div class="line"><a name="
|
|
1261
|
-
<div class="line"><a name="
|
|
1262
|
-
<div class="line"><a name="
|
|
1263
|
-
<div class="line"><a name="
|
|
1264
|
-
<div class="line"><a name="
|
|
1265
|
-
<div class="line"><a name="
|
|
1266
|
-
<div class="line"><a name="
|
|
1267
|
-
<div class="line"><a name="
|
|
1268
|
-
<div class="line"><a name="
|
|
1269
|
-
<div class="line"><a name="
|
|
1270
|
-
<div class="line"><a name="
|
|
1271
|
-
<div class="line"><a name="
|
|
1272
|
-
<div class="line"><a name="
|
|
1273
|
-
<div class="line"><a name="
|
|
1274
|
-
<div class="line"><a name="
|
|
1275
|
-
<div class="line"><a name="
|
|
1276
|
-
<div class="line"><a name="
|
|
1277
|
-
<div class="line"><a name="
|
|
1278
|
-
<div class="line"><a name="
|
|
1279
|
-
<div class="line"><a name="
|
|
1280
|
-
<div class="line"><a name="
|
|
1281
|
-
<div class="line"><a name="
|
|
1282
|
-
<div class="line"><a name="
|
|
1283
|
-
<div class="line"><a name="
|
|
1284
|
-
<div class="line"><a name="
|
|
1285
|
-
<div class="line"><a name="
|
|
1286
|
-
<div class="line"><a name="
|
|
1287
|
-
<div class="line"><a name="
|
|
1288
|
-
<div class="line"><a name="
|
|
1289
|
-
<div class="line"><a name="
|
|
1290
|
-
<div class="line"><a name="
|
|
1291
|
-
<div class="line"><a name="
|
|
1292
|
-
<div class="line"><a name="
|
|
1293
|
-
<div class="line"><a name="
|
|
1294
|
-
<div class="line"><a name="
|
|
1295
|
-
<div class="line"><a name="
|
|
1296
|
-
<div class="line"><a name="
|
|
1297
|
-
<div class="line"><a name="
|
|
1298
|
-
<div class="line"><a name="
|
|
1241
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00260">260</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
1242
|
+
<div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> {</div>
|
|
1243
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
|
|
1244
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(ptr);</div>
|
|
1245
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DummyObjVar> (node))</div>
|
|
1246
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div>
|
|
1247
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"##<Dummy Obj > id:"</span> << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1248
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div>
|
|
1249
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!SVFUtil::isa<DummyValVar>(node) && !<a class="code" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVFModule::pagReadFromTXT</a>())</div>
|
|
1250
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div>
|
|
1251
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
1252
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  {</div>
|
|
1253
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"##<"</span> << node-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() << <span class="stringliteral">"> "</span>;</div>
|
|
1254
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Source Loc: "</span> << node-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
|
|
1255
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div>
|
|
1256
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div>
|
|
1257
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nPtr "</span> << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" "</span>;</div>
|
|
1258
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
|
|
1259
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
|
|
1260
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div>
|
|
1261
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\tPointsTo: {empty}\n\n"</span>;</div>
|
|
1262
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div>
|
|
1263
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">else</span></div>
|
|
1264
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div>
|
|
1265
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\tPointsTo: { "</span>;</div>
|
|
1266
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</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;</div>
|
|
1267
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  ++it)</div>
|
|
1268
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << *it << <span class="stringliteral">" "</span>;</div>
|
|
1269
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"}\n\n"</span>;</div>
|
|
1270
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div>
|
|
1271
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  </div>
|
|
1272
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">""</span>;</div>
|
|
1273
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
|
|
1274
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</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>
|
|
1275
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div>
|
|
1276
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*it);</div>
|
|
1277
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ObjVar>(node) == <span class="keyword">false</span>)</div>
|
|
1278
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">continue</span>;</div>
|
|
1279
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1280
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"!!Target NodeID "</span> << ptd << <span class="stringliteral">"\t ["</span>;</div>
|
|
1281
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(ptd);</div>
|
|
1282
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DummyValVar>(node))</div>
|
|
1283
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"DummyVal\n"</span>;</div>
|
|
1284
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<DummyObjVar>(node))</div>
|
|
1285
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Dummy Obj id: "</span> << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">"]\n"</span>;</div>
|
|
1286
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">else</span></div>
|
|
1287
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  {</div>
|
|
1288
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVFModule::pagReadFromTXT</a>())</div>
|
|
1289
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div>
|
|
1290
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
1291
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div>
|
|
1292
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"<"</span> << pagNode-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() << <span class="stringliteral">"> "</span>;</div>
|
|
1293
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Source Loc: "</span></div>
|
|
1294
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  << pagNode-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"] \n"</span>;</div>
|
|
1295
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div>
|
|
1296
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div>
|
|
1297
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div>
|
|
1298
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div>
|
|
1299
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> }</div>
|
|
1299
1300
|
</div><!-- fragment -->
|
|
1300
1301
|
</div>
|
|
1301
1302
|
</div>
|
|
@@ -2185,11 +2186,11 @@ Private Member Functions</h2></td></tr>
|
|
|
2185
2186
|
</table>
|
|
2186
2187
|
</div><div class="memdoc">
|
|
2187
2188
|
|
|
2188
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
2189
|
-
<div class="fragment"><div class="line"><a name="
|
|
2190
|
-
<div class="line"><a name="
|
|
2191
|
-
<div class="line"><a name="
|
|
2192
|
-
<div class="line"><a name="
|
|
2189
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00434">434</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
2190
|
+
<div class="fragment"><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> {</div>
|
|
2191
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-><a class="code" href="classSVF_1_1CommonCHGraph.html#a0ce9117288d9e0b498f128217fda0cca">csHasVFnsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>())))</div>
|
|
2192
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  vfns = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-><a class="code" href="classSVF_1_1CommonCHGraph.html#abe9232b9cada361e0434f7c4390a7864">getCSVFsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div>
|
|
2193
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> }</div>
|
|
2193
2194
|
</div><!-- fragment -->
|
|
2194
2195
|
</div>
|
|
2195
2196
|
</div>
|
|
@@ -2225,28 +2226,28 @@ Private Member Functions</h2></td></tr>
|
|
|
2225
2226
|
</table>
|
|
2226
2227
|
</div><div class="memdoc">
|
|
2227
2228
|
|
|
2228
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
2229
|
-
<div class="fragment"><div class="line"><a name="
|
|
2230
|
-
<div class="line"><a name="
|
|
2231
|
-
<div class="line"><a name="
|
|
2232
|
-
<div class="line"><a name="
|
|
2233
|
-
<div class="line"><a name="
|
|
2234
|
-
<div class="line"><a name="
|
|
2235
|
-
<div class="line"><a name="
|
|
2236
|
-
<div class="line"><a name="
|
|
2237
|
-
<div class="line"><a name="
|
|
2238
|
-
<div class="line"><a name="
|
|
2239
|
-
<div class="line"><a name="
|
|
2240
|
-
<div class="line"><a name="
|
|
2241
|
-
<div class="line"><a name="
|
|
2242
|
-
<div class="line"><a name="
|
|
2243
|
-
<div class="line"><a name="
|
|
2244
|
-
<div class="line"><a name="
|
|
2245
|
-
<div class="line"><a name="
|
|
2246
|
-
<div class="line"><a name="
|
|
2247
|
-
<div class="line"><a name="
|
|
2248
|
-
<div class="line"><a name="
|
|
2249
|
-
<div class="line"><a name="
|
|
2229
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00443">443</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
2230
|
+
<div class="fragment"><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> {</div>
|
|
2231
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div>
|
|
2232
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-><a class="code" href="classSVF_1_1CommonCHGraph.html#aff7363feebc20267dad7230666b583b1">csHasVtblsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>())))</div>
|
|
2233
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  {</div>
|
|
2234
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFGlobalValue*></a> vtbls;</div>
|
|
2235
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">VTableSet</a> &chaVtbls = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-><a class="code" href="classSVF_1_1CommonCHGraph.html#ae90f9a2152ab07aa0df16badd733f1fd">getCSVtblsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div>
|
|
2236
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = target.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = target.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it != eit; ++it)</div>
|
|
2237
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div>
|
|
2238
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *ptdnode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*it);</div>
|
|
2239
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">if</span> (ptdnode-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
2240
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  {</div>
|
|
2241
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a> *vtbl = SVFUtil::dyn_cast<SVFGlobalValue>(ptdnode-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()))</div>
|
|
2242
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  {</div>
|
|
2243
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">if</span> (chaVtbls.find(vtbl) != chaVtbls.end())</div>
|
|
2244
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  vtbls.insert(vtbl);</div>
|
|
2245
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div>
|
|
2246
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div>
|
|
2247
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div>
|
|
2248
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-><a class="code" href="classSVF_1_1CommonCHGraph.html#aae511b2ee7c2c7ea7be70c7884e92021">getVFnsFromVtbls</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()), vtbls, vfns);</div>
|
|
2249
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div>
|
|
2250
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> }</div>
|
|
2250
2251
|
</div><!-- fragment -->
|
|
2251
2252
|
</div>
|
|
2252
2253
|
</div>
|
|
@@ -2659,35 +2660,35 @@ Private Member Functions</h2></td></tr>
|
|
|
2659
2660
|
</div><div class="memdoc">
|
|
2660
2661
|
<p>Print all indirect callsites </p>
|
|
2661
2662
|
|
|
2662
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
2663
|
-
<div class="fragment"><div class="line"><a name="
|
|
2664
|
-
<div class="line"><a name="
|
|
2665
|
-
<div class="line"><a name="
|
|
2666
|
-
<div class="line"><a name="
|
|
2667
|
-
<div class="line"><a name="
|
|
2668
|
-
<div class="line"><a name="
|
|
2669
|
-
<div class="line"><a name="
|
|
2670
|
-
<div class="line"><a name="
|
|
2671
|
-
<div class="line"><a name="
|
|
2672
|
-
<div class="line"><a name="
|
|
2673
|
-
<div class="line"><a name="
|
|
2674
|
-
<div class="line"><a name="
|
|
2675
|
-
<div class="line"><a name="
|
|
2676
|
-
<div class="line"><a name="
|
|
2677
|
-
<div class="line"><a name="
|
|
2678
|
-
<div class="line"><a name="
|
|
2679
|
-
<div class="line"><a name="
|
|
2680
|
-
<div class="line"><a name="
|
|
2681
|
-
<div class="line"><a name="
|
|
2682
|
-
<div class="line"><a name="
|
|
2683
|
-
<div class="line"><a name="
|
|
2684
|
-
<div class="line"><a name="
|
|
2685
|
-
<div class="line"><a name="
|
|
2686
|
-
<div class="line"><a name="
|
|
2687
|
-
<div class="line"><a name="
|
|
2688
|
-
<div class="line"><a name="
|
|
2689
|
-
<div class="line"><a name="
|
|
2690
|
-
<div class="line"><a name="
|
|
2663
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00353">353</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
2664
|
+
<div class="fragment"><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> {</div>
|
|
2665
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"==================Function Pointer Targets==================\n"</span>;</div>
|
|
2666
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a>& callEdges = <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>();</div>
|
|
2667
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  CallEdgeMap::const_iterator it = callEdges.begin();</div>
|
|
2668
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  CallEdgeMap::const_iterator eit = callEdges.end();</div>
|
|
2669
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div>
|
|
2670
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div>
|
|
2671
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = it->first;</div>
|
|
2672
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a>& targets = it->second;</div>
|
|
2673
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">printIndCSTargets</a>(cs, targets);</div>
|
|
2674
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div>
|
|
2675
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  </div>
|
|
2676
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a>& indCS = <a class="code" href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">getIndirectCallsites</a>();</div>
|
|
2677
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  CallSiteToFunPtrMap::const_iterator csIt = indCS.begin();</div>
|
|
2678
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  CallSiteToFunPtrMap::const_iterator csEit = indCS.end();</div>
|
|
2679
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">for</span> (; csIt != csEit; ++csIt)</div>
|
|
2680
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div>
|
|
2681
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = csIt->first;</div>
|
|
2682
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#abdacd060691add054839aa183babe095">hasIndCSCallees</a>(cs) == <span class="keyword">false</span>)</div>
|
|
2683
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  {</div>
|
|
2684
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nNodeID: "</span> << csIt->second;</div>
|
|
2685
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nCallSite: "</span>;</div>
|
|
2686
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>();</div>
|
|
2687
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\tLocation: "</span> << cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
|
|
2688
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n\t!!!has no targets!!!\n"</span>;</div>
|
|
2689
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div>
|
|
2690
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  }</div>
|
|
2691
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> }</div>
|
|
2691
2692
|
</div><!-- fragment -->
|
|
2692
2693
|
</div>
|
|
2693
2694
|
</div>
|
|
@@ -2720,31 +2721,31 @@ Private Member Functions</h2></td></tr>
|
|
|
2720
2721
|
<p>Print targets of a function pointer. </p>
|
|
2721
2722
|
<p>Print indirect call targets at an indirect callsite </p>
|
|
2722
2723
|
|
|
2723
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
2724
|
-
<div class="fragment"><div class="line"><a name="
|
|
2725
|
-
<div class="line"><a name="
|
|
2726
|
-
<div class="line"><a name="
|
|
2727
|
-
<div class="line"><a name="
|
|
2728
|
-
<div class="line"><a name="
|
|
2729
|
-
<div class="line"><a name="
|
|
2730
|
-
<div class="line"><a name="
|
|
2731
|
-
<div class="line"><a name="
|
|
2732
|
-
<div class="line"><a name="
|
|
2733
|
-
<div class="line"><a name="
|
|
2734
|
-
<div class="line"><a name="
|
|
2735
|
-
<div class="line"><a name="
|
|
2736
|
-
<div class="line"><a name="
|
|
2737
|
-
<div class="line"><a name="
|
|
2738
|
-
<div class="line"><a name="
|
|
2739
|
-
<div class="line"><a name="
|
|
2740
|
-
<div class="line"><a name="
|
|
2741
|
-
<div class="line"><a name="
|
|
2742
|
-
<div class="line"><a name="
|
|
2743
|
-
<div class="line"><a name="
|
|
2744
|
-
<div class="line"><a name="
|
|
2745
|
-
<div class="line"><a name="
|
|
2746
|
-
<div class="line"><a name="
|
|
2747
|
-
<div class="line"><a name="
|
|
2724
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00324">324</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
2725
|
+
<div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> {</div>
|
|
2726
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nNodeID: "</span> << <a class="code" href="classSVF_1_1PointerAnalysis.html#adbceaf90526e44192c2fa4aac5468f5f">getFunPtr</a>(cs);</div>
|
|
2727
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nCallSite: "</span>;</div>
|
|
2728
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>();</div>
|
|
2729
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\tLocation: "</span> << cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
|
|
2730
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t with Targets: "</span>;</div>
|
|
2731
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
|
|
2732
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">if</span> (!targets.empty())</div>
|
|
2733
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div>
|
|
2734
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  FunctionSet::const_iterator fit = targets.begin();</div>
|
|
2735
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  FunctionSet::const_iterator feit = targets.end();</div>
|
|
2736
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">for</span> (; fit != feit; ++fit)</div>
|
|
2737
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  {</div>
|
|
2738
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *fit;</div>
|
|
2739
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n\t"</span> << callee-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
|
|
2740
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div>
|
|
2741
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div>
|
|
2742
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">else</span></div>
|
|
2743
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div>
|
|
2744
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n\tNo Targets!"</span>;</div>
|
|
2745
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div>
|
|
2746
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  </div>
|
|
2747
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div>
|
|
2748
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> }</div>
|
|
2748
2749
|
</div><!-- fragment -->
|
|
2749
2750
|
</div>
|
|
2750
2751
|
</div>
|
|
@@ -2893,17 +2894,17 @@ Private Member Functions</h2></td></tr>
|
|
|
2893
2894
|
|
|
2894
2895
|
<p>Resolve cpp indirect call edges. </p>
|
|
2895
2896
|
|
|
2896
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
2897
|
-
<div class="fragment"><div class="line"><a name="
|
|
2898
|
-
<div class="line"><a name="
|
|
2899
|
-
<div class="line"><a name="
|
|
2900
|
-
<div class="line"><a name="
|
|
2901
|
-
<div class="line"><a name="
|
|
2902
|
-
<div class="line"><a name="
|
|
2903
|
-
<div class="line"><a name="
|
|
2904
|
-
<div class="line"><a name="
|
|
2905
|
-
<div class="line"><a name="
|
|
2906
|
-
<div class="line"><a name="
|
|
2897
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00491">491</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
2898
|
+
<div class="fragment"><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> {</div>
|
|
2899
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#a427a38e580db4bf04c9d716762243c89">isVirtualCall</a>() && <span class="stringliteral">"not cpp virtual call"</span>);</div>
|
|
2900
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  </div>
|
|
2901
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> vfns;</div>
|
|
2902
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#abf71061d93d4a3b32246f19dc71e5127">Options::ConnectVCallOnCHA</a>())</div>
|
|
2903
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">getVFnsFromCHA</a>(cs, vfns);</div>
|
|
2904
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">else</span></div>
|
|
2905
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2">getVFnsFromPts</a>(cs, target, vfns);</div>
|
|
2906
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">connectVCallToVFns</a>(cs, vfns, newEdges);</div>
|
|
2907
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> }</div>
|
|
2907
2908
|
</div><!-- fragment -->
|
|
2908
2909
|
</div>
|
|
2909
2910
|
</div>
|
|
@@ -2951,47 +2952,47 @@ Private Member Functions</h2></td></tr>
|
|
|
2951
2952
|
<p>Resolve indirect calls </p>
|
|
2952
2953
|
<p>discover indirect pointer target</p>
|
|
2953
2954
|
|
|
2954
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
2955
|
-
<div class="fragment"><div class="line"><a name="
|
|
2956
|
-
<div class="line"><a name="
|
|
2957
|
-
<div class="line"><a name="
|
|
2958
|
-
<div class="line"><a name="
|
|
2959
|
-
<div class="line"><a name="
|
|
2960
|
-
<div class="line"><a name="
|
|
2961
|
-
<div class="line"><a name="
|
|
2962
|
-
<div class="line"><a name="
|
|
2963
|
-
<div class="line"><a name="
|
|
2964
|
-
<div class="line"><a name="
|
|
2965
|
-
<div class="line"><a name="
|
|
2966
|
-
<div class="line"><a name="
|
|
2967
|
-
<div class="line"><a name="
|
|
2968
|
-
<div class="line"><a name="
|
|
2969
|
-
<div class="line"><a name="
|
|
2970
|
-
<div class="line"><a name="
|
|
2971
|
-
<div class="line"><a name="
|
|
2972
|
-
<div class="line"><a name="
|
|
2973
|
-
<div class="line"><a name="
|
|
2974
|
-
<div class="line"><a name="
|
|
2975
|
-
<div class="line"><a name="
|
|
2976
|
-
<div class="line"><a name="
|
|
2977
|
-
<div class="line"><a name="
|
|
2978
|
-
<div class="line"><a name="
|
|
2979
|
-
<div class="line"><a name="
|
|
2980
|
-
<div class="line"><a name="
|
|
2981
|
-
<div class="line"><a name="
|
|
2982
|
-
<div class="line"><a name="
|
|
2983
|
-
<div class="line"><a name="
|
|
2984
|
-
<div class="line"><a name="
|
|
2985
|
-
<div class="line"><a name="
|
|
2986
|
-
<div class="line"><a name="
|
|
2987
|
-
<div class="line"><a name="
|
|
2988
|
-
<div class="line"><a name="
|
|
2989
|
-
<div class="line"><a name="
|
|
2990
|
-
<div class="line"><a name="
|
|
2991
|
-
<div class="line"><a name="
|
|
2992
|
-
<div class="line"><a name="
|
|
2993
|
-
<div class="line"><a name="
|
|
2994
|
-
<div class="line"><a name="
|
|
2955
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00388">388</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
2956
|
+
<div class="fragment"><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> {</div>
|
|
2957
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  </div>
|
|
2958
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(cs) && <span class="stringliteral">"not an indirect callsite?"</span>);</div>
|
|
2959
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = target.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), ie = target.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
|
|
2960
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  ii != ie; ii++)</div>
|
|
2961
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  {</div>
|
|
2962
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  </div>
|
|
2963
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>() >= <a class="code" href="classSVF_1_1Options.html#aa5bae1db07c401517c1c0f8fd9f2deef">Options::IndirectCallLimit</a>())</div>
|
|
2964
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div>
|
|
2965
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac71522e8c55f84cfc6c13a0ddff18436">wrnMsg</a>(<span class="stringliteral">"Resolved Indirect Call Edges are Out-Of-Budget, please increase the limit"</span>);</div>
|
|
2966
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">return</span>;</div>
|
|
2967
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div>
|
|
2968
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  </div>
|
|
2969
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast<ObjVar>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div>
|
|
2970
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  {</div>
|
|
2971
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div>
|
|
2972
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  </div>
|
|
2973
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">if</span>(obj-><a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div>
|
|
2974
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  {</div>
|
|
2975
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* calleefun = SVFUtil::cast<SVFFunction>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>());</div>
|
|
2976
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = calleefun-><a class="code" href="classSVF_1_1SVFFunction.html#a804a41f4eb078586f20f7d5755ea6fdd">getDefFunForMultipleModule</a>();</div>
|
|
2977
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  </div>
|
|
2978
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#af6ccc943516cedd7d8cd1de09d8f554e">SVFUtil::matchArgs</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>(), callee) == <span class="keyword">false</span>)</div>
|
|
2979
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">continue</span>;</div>
|
|
2980
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  </div>
|
|
2981
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">if</span>(0 == <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>(callee))</div>
|
|
2982
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  {</div>
|
|
2983
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  newEdges[cs].insert(callee);</div>
|
|
2984
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div>
|
|
2985
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  </div>
|
|
2986
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(cs, cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(), callee);</div>
|
|
2987
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="comment">// FIXME: do we need to update llvm call graph here?</span></div>
|
|
2988
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="comment">// The indirect call is maintained by ourself, We may update llvm's when we need to</span></div>
|
|
2989
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="comment">//CallGraphNode* callgraphNode = callgraph->getOrInsertFunction(cs.getCaller());</span></div>
|
|
2990
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="comment">//callgraphNode->addCalledFunction(cs,callgraph->getOrInsertFunction(callee));</span></div>
|
|
2991
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div>
|
|
2992
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div>
|
|
2993
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  }</div>
|
|
2994
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div>
|
|
2995
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> }</div>
|
|
2995
2996
|
</div><!-- fragment -->
|
|
2996
2997
|
</div>
|
|
2997
2998
|
</div>
|
|
@@ -3052,58 +3053,58 @@ Private Member Functions</h2></td></tr>
|
|
|
3052
3053
|
</div><div class="memdoc">
|
|
3053
3054
|
<p>Pointer analysis validator </p>
|
|
3054
3055
|
|
|
3055
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
3056
|
-
<div class="fragment"><div class="line"><a name="
|
|
3057
|
-
<div class="line"><a name="
|
|
3058
|
-
<div class="line"><a name="
|
|
3059
|
-
<div class="line"><a name="
|
|
3060
|
-
<div class="line"><a name="
|
|
3061
|
-
<div class="line"><a name="
|
|
3062
|
-
<div class="line"><a name="
|
|
3063
|
-
<div class="line"><a name="
|
|
3064
|
-
<div class="line"><a name="
|
|
3065
|
-
<div class="line"><a name="
|
|
3066
|
-
<div class="line"><a name="
|
|
3067
|
-
<div class="line"><a name="
|
|
3068
|
-
<div class="line"><a name="
|
|
3069
|
-
<div class="line"><a name="
|
|
3070
|
-
<div class="line"><a name="
|
|
3071
|
-
<div class="line"><a name="
|
|
3072
|
-
<div class="line"><a name="
|
|
3073
|
-
<div class="line"><a name="
|
|
3074
|
-
<div class="line"><a name="
|
|
3075
|
-
<div class="line"><a name="
|
|
3076
|
-
<div class="line"><a name="
|
|
3077
|
-
<div class="line"><a name="
|
|
3078
|
-
<div class="line"><a name="
|
|
3079
|
-
<div class="line"><a name="
|
|
3080
|
-
<div class="line"><a name="
|
|
3081
|
-
<div class="line"><a name="
|
|
3082
|
-
<div class="line"><a name="
|
|
3083
|
-
<div class="line"><a name="
|
|
3084
|
-
<div class="line"><a name="
|
|
3085
|
-
<div class="line"><a name="
|
|
3086
|
-
<div class="line"><a name="
|
|
3087
|
-
<div class="line"><a name="
|
|
3088
|
-
<div class="line"><a name="
|
|
3089
|
-
<div class="line"><a name="
|
|
3090
|
-
<div class="line"><a name="
|
|
3091
|
-
<div class="line"><a name="
|
|
3092
|
-
<div class="line"><a name="
|
|
3093
|
-
<div class="line"><a name="
|
|
3094
|
-
<div class="line"><a name="
|
|
3095
|
-
<div class="line"><a name="
|
|
3096
|
-
<div class="line"><a name="
|
|
3097
|
-
<div class="line"><a name="
|
|
3098
|
-
<div class="line"><a name="
|
|
3099
|
-
<div class="line"><a name="
|
|
3100
|
-
<div class="line"><a name="
|
|
3101
|
-
<div class="line"><a name="
|
|
3102
|
-
<div class="line"><a name="
|
|
3103
|
-
<div class="line"><a name="
|
|
3104
|
-
<div class="line"><a name="
|
|
3105
|
-
<div class="line"><a name="
|
|
3106
|
-
<div class="line"><a name="
|
|
3056
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00575">575</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
3057
|
+
<div class="fragment"><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> {</div>
|
|
3058
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  </div>
|
|
3059
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* checkFun = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7e8b3f6843e5ea75fd189162d2cd60a5">svfMod</a>-><a class="code" href="classSVF_1_1SVFModule.html#afdb11f5fcbb6e7ed2689e3387bb78850">getSVFFunction</a>(fun))</div>
|
|
3060
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  {</div>
|
|
3061
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">if</span>(!checkFun->isUncalledFunction())</div>
|
|
3062
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"["</span> << this-><a class="code" href="classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0">PTAName</a>() << <span class="stringliteral">"] Checking "</span> << fun << <span class="stringliteral">"\n"</span>;</div>
|
|
3063
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  </div>
|
|
3064
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode : <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>())</div>
|
|
3065
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  {</div>
|
|
3066
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = callNode->getCallSite();</div>
|
|
3067
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(svfInst) == checkFun)</div>
|
|
3068
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  {</div>
|
|
3069
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> call = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">getSVFCallSite</a>(svfInst);</div>
|
|
3070
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  assert(call.<a class="code" href="classSVF_1_1CallSite.html#a2a1904e6f381a0f8ac30265f2dfc48c8">arg_size</a>() == 2</div>
|
|
3071
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  && <span class="stringliteral">"arguments should be two pointers!!"</span>);</div>
|
|
3072
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V1 = call.<a class="code" href="classSVF_1_1CallSite.html#a93c083aa8f3f3ef28fe80e9aaf70dfb5">getArgOperand</a>(0);</div>
|
|
3073
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V2 = call.<a class="code" href="classSVF_1_1CallSite.html#a93c083aa8f3f3ef28fe80e9aaf70dfb5">getArgOperand</a>(1);</div>
|
|
3074
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> aliasRes = <a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(V1, V2);</div>
|
|
3075
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  </div>
|
|
3076
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordtype">bool</span> expectedFailure = <span class="keyword">false</span>;</div>
|
|
3077
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a32c6f12ce8bc0554dbb6aafa36f9a235">aliasTestFailMayAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a651cc82379c2d18cc2f69f25b2ae08db">aliasTestFailMayAliasMangled</a>)</div>
|
|
3078
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  {</div>
|
|
3079
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="comment">// change to must alias when our analysis support it</span></div>
|
|
3080
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>)</div>
|
|
3081
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  expectedFailure = <span class="keyword">true</span>;</div>
|
|
3082
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  }</div>
|
|
3083
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a18347e41bc66b16e3f42c7c52811ad42">aliasTestFailNoAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#aefd4e9ea66da5ad84a45efead823eb22">aliasTestFailNoAliasMangled</a>)</div>
|
|
3084
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  {</div>
|
|
3085
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="comment">// change to partial alias when our analysis support it</span></div>
|
|
3086
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6">AliasResult::PartialAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>)</div>
|
|
3087
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  expectedFailure = <span class="keyword">true</span>;</div>
|
|
3088
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  }</div>
|
|
3089
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">else</span></div>
|
|
3090
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported alias check!!"</span>);</div>
|
|
3091
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  </div>
|
|
3092
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id1 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1);</div>
|
|
3093
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id2 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2);</div>
|
|
3094
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  </div>
|
|
3095
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">if</span> (expectedFailure)</div>
|
|
3096
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">sucMsg</a>(<span class="stringliteral">"\t EXPECTED-FAILURE :"</span>) << fun << <span class="stringliteral">" check <id:"</span> << id1 << <span class="stringliteral">", id:"</span> << id2 << <span class="stringliteral">"> at ("</span></div>
|
|
3097
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  << call.<a class="code" href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">getInstruction</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">")\n"</span>;</div>
|
|
3098
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">else</span></div>
|
|
3099
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div>
|
|
3100
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">errMsg</a>(<span class="stringliteral">"\t UNEXPECTED FAILURE :"</span>) << fun << <span class="stringliteral">" check <id:"</span> << id1 << <span class="stringliteral">", id:"</span> << id2 << <span class="stringliteral">"> at ("</span></div>
|
|
3101
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  << call.<a class="code" href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">getInstruction</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">")\n"</span>;</div>
|
|
3102
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div>
|
|
3103
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div>
|
|
3104
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div>
|
|
3105
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  }</div>
|
|
3106
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  }</div>
|
|
3107
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> }</div>
|
|
3107
3108
|
</div><!-- fragment -->
|
|
3108
3109
|
</div>
|
|
3109
3110
|
</div>
|
|
@@ -3132,70 +3133,70 @@ Private Member Functions</h2></td></tr>
|
|
|
3132
3133
|
</div><div class="memdoc">
|
|
3133
3134
|
<p>Find the alias check functions annotated in the C files check whether the alias analysis results consistent with the alias check function itself </p>
|
|
3134
3135
|
|
|
3135
|
-
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#
|
|
3136
|
-
<div class="fragment"><div class="line"><a name="
|
|
3137
|
-
<div class="line"><a name="
|
|
3138
|
-
<div class="line"><a name="
|
|
3139
|
-
<div class="line"><a name="
|
|
3140
|
-
<div class="line"><a name="
|
|
3141
|
-
<div class="line"><a name="
|
|
3142
|
-
<div class="line"><a name="
|
|
3143
|
-
<div class="line"><a name="
|
|
3144
|
-
<div class="line"><a name="
|
|
3145
|
-
<div class="line"><a name="
|
|
3146
|
-
<div class="line"><a name="
|
|
3147
|
-
<div class="line"><a name="
|
|
3148
|
-
<div class="line"><a name="
|
|
3149
|
-
<div class="line"><a name="
|
|
3150
|
-
<div class="line"><a name="
|
|
3151
|
-
<div class="line"><a name="
|
|
3152
|
-
<div class="line"><a name="
|
|
3153
|
-
<div class="line"><a name="
|
|
3154
|
-
<div class="line"><a name="
|
|
3155
|
-
<div class="line"><a name="
|
|
3156
|
-
<div class="line"><a name="
|
|
3157
|
-
<div class="line"><a name="
|
|
3158
|
-
<div class="line"><a name="
|
|
3159
|
-
<div class="line"><a name="
|
|
3160
|
-
<div class="line"><a name="
|
|
3161
|
-
<div class="line"><a name="
|
|
3162
|
-
<div class="line"><a name="
|
|
3163
|
-
<div class="line"><a name="
|
|
3164
|
-
<div class="line"><a name="
|
|
3165
|
-
<div class="line"><a name="
|
|
3166
|
-
<div class="line"><a name="
|
|
3167
|
-
<div class="line"><a name="
|
|
3168
|
-
<div class="line"><a name="
|
|
3169
|
-
<div class="line"><a name="
|
|
3170
|
-
<div class="line"><a name="
|
|
3171
|
-
<div class="line"><a name="
|
|
3172
|
-
<div class="line"><a name="
|
|
3173
|
-
<div class="line"><a name="
|
|
3174
|
-
<div class="line"><a name="
|
|
3175
|
-
<div class="line"><a name="
|
|
3176
|
-
<div class="line"><a name="
|
|
3177
|
-
<div class="line"><a name="
|
|
3178
|
-
<div class="line"><a name="
|
|
3179
|
-
<div class="line"><a name="
|
|
3180
|
-
<div class="line"><a name="
|
|
3181
|
-
<div class="line"><a name="
|
|
3182
|
-
<div class="line"><a name="
|
|
3183
|
-
<div class="line"><a name="
|
|
3184
|
-
<div class="line"><a name="
|
|
3185
|
-
<div class="line"><a name="
|
|
3186
|
-
<div class="line"><a name="
|
|
3187
|
-
<div class="line"><a name="
|
|
3188
|
-
<div class="line"><a name="
|
|
3189
|
-
<div class="line"><a name="
|
|
3190
|
-
<div class="line"><a name="
|
|
3191
|
-
<div class="line"><a name="
|
|
3192
|
-
<div class="line"><a name="
|
|
3193
|
-
<div class="line"><a name="
|
|
3194
|
-
<div class="line"><a name="
|
|
3195
|
-
<div class="line"><a name="
|
|
3196
|
-
<div class="line"><a name="
|
|
3197
|
-
<div class="line"><a name="
|
|
3198
|
-
<div class="line"><a name="
|
|
3136
|
+
<p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00507">507</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
|
|
3137
|
+
<div class="fragment"><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> {</div>
|
|
3138
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="comment">// check for must alias cases, whether our alias analysis produce the correct results</span></div>
|
|
3139
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* checkFun = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7e8b3f6843e5ea75fd189162d2cd60a5">svfMod</a>-><a class="code" href="classSVF_1_1SVFModule.html#afdb11f5fcbb6e7ed2689e3387bb78850">getSVFFunction</a>(fun))</div>
|
|
3140
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  {</div>
|
|
3141
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">if</span>(!checkFun->isUncalledFunction())</div>
|
|
3142
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"["</span> << this-><a class="code" href="classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0">PTAName</a>() << <span class="stringliteral">"] Checking "</span> << fun << <span class="stringliteral">"\n"</span>;</div>
|
|
3143
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  </div>
|
|
3144
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode : <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>())</div>
|
|
3145
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  {</div>
|
|
3146
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = callNode->getCallSite();</div>
|
|
3147
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(svfInst) == checkFun)</div>
|
|
3148
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  {</div>
|
|
3149
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  </div>
|
|
3150
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(svfInst);</div>
|
|
3151
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  assert(cs.getNumArgOperands() == 2</div>
|
|
3152
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  && <span class="stringliteral">"arguments should be two pointers!!"</span>);</div>
|
|
3153
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V1 = cs.getArgOperand(0);</div>
|
|
3154
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V2 = cs.getArgOperand(1);</div>
|
|
3155
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> aliasRes = <a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(V1, V2);</div>
|
|
3156
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  </div>
|
|
3157
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordtype">bool</span> checkSuccessful = <span class="keyword">false</span>;</div>
|
|
3158
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a7648a0358e2c0798db1c547ec7aa7c64">aliasTestMayAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a13ce6b930a35877f17bffd4b89e22654">aliasTestMayAliasMangled</a>)</div>
|
|
3159
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  {</div>
|
|
3160
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>)</div>
|
|
3161
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
3162
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  }</div>
|
|
3163
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#ac353221cc7aced590dcf3550a24b1570">aliasTestNoAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0e68883e2ee328315af29e59bb2008cd">aliasTestNoAliasMangled</a>)</div>
|
|
3164
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  {</div>
|
|
3165
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>)</div>
|
|
3166
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
3167
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div>
|
|
3168
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a7477a4301d548b93958e57df389cbba0">aliasTestMustAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#aec884481726cfaf19c4ab8ec8d9195b7">aliasTestMustAliasMangled</a>)</div>
|
|
3169
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  {</div>
|
|
3170
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="comment">// change to must alias when our analysis support it</span></div>
|
|
3171
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>)</div>
|
|
3172
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
3173
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  }</div>
|
|
3174
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a83b0a51d88fa7aadff6e9267765d07a5">aliasTestPartialAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#acbb517523fd30708ed1a93f306cd3545">aliasTestPartialAliasMangled</a>)</div>
|
|
3175
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  {</div>
|
|
3176
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="comment">// change to partial alias when our analysis support it</span></div>
|
|
3177
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>)</div>
|
|
3178
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
3179
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  }</div>
|
|
3180
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">else</span></div>
|
|
3181
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported alias check!!"</span>);</div>
|
|
3182
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  </div>
|
|
3183
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id1 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1);</div>
|
|
3184
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id2 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2);</div>
|
|
3185
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  </div>
|
|
3186
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">if</span> (checkSuccessful)</div>
|
|
3187
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">sucMsg</a>(<span class="stringliteral">"\t SUCCESS :"</span>) << fun << <span class="stringliteral">" check <id:"</span> << id1 << <span class="stringliteral">", id:"</span> << id2 << <span class="stringliteral">"> at ("</span></div>
|
|
3188
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  << svfInst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">")\n"</span>;</div>
|
|
3189
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">else</span></div>
|
|
3190
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  {</div>
|
|
3191
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">errMsg</a>(<span class="stringliteral">"\t FAILURE :"</span>) << fun</div>
|
|
3192
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  << <span class="stringliteral">" check <id:"</span> << id1 << <span class="stringliteral">", id:"</span> << id2</div>
|
|
3193
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  << <span class="stringliteral">"> at ("</span> << svfInst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">")\n"</span>;</div>
|
|
3194
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div>
|
|
3195
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  }</div>
|
|
3196
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div>
|
|
3197
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div>
|
|
3198
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div>
|
|
3199
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> }</div>
|
|
3199
3200
|
</div><!-- fragment -->
|
|
3200
3201
|
</div>
|
|
3201
3202
|
</div>
|
|
@@ -3885,7 +3886,7 @@ Private Member Functions</h2></td></tr>
|
|
|
3885
3886
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a7655b13bbfe720ca2b8a25e0a72528e6"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(const std::string &msg)</div><div class="ttdoc">Print error message by converting a string into red string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
|
|
3886
3887
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html_a46416c668e2f0099394e79f685ede758"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">SVF::PTACallGraph::addIndirectCallGraphEdge</a></div><div class="ttdeci">void addIndirectCallGraphEdge(const CallICFGNode *cs, const SVFFunction *callerFun, const SVFFunction *calleeFun)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00188">PTACallGraph.cpp:188</a></div></div>
|
|
3887
3888
|
<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>
|
|
3888
|
-
<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#
|
|
3889
|
+
<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#l00473">SymbolTableInfo.cpp:473</a></div></div>
|
|
3889
3890
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap & getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00337">SVFIR.h:337</a></div></div>
|
|
3890
3891
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ad2c8654a6672472f9bf17681aa9b60bb"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">SVF::PointerAnalysis::getNumOfResolvedIndCallEdge</a></div><div class="ttdeci">u32_t getNumOfResolvedIndCallEdge() const</div><div class="ttdoc">Return number of resolved indirect call edges.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00169">PointerAnalysis.h:169</a></div></div>
|
|
3891
3892
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_acbb517523fd30708ed1a93f306cd3545"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#acbb517523fd30708ed1a93f306cd3545">SVF::PointerAnalysis::aliasTestPartialAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestPartialAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00117">PointerAnalysis.h:117</a></div></div>
|
|
@@ -3901,7 +3902,7 @@ Private Member Functions</h2></td></tr>
|
|
|
3901
3902
|
<div class="ttc" id="aclassSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00315">SVFVariables.h:315</a></div></div>
|
|
3902
3903
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00676">SVFIR.cpp:676</a></div></div>
|
|
3903
3904
|
<div class="ttc" id="aclassSVF_1_1SCCDetection_html_a3a5fdc9330a657240f77199f5aee602d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">SVF::SCCDetection::repNode</a></div><div class="ttdeci">NodeID repNode(NodeID n) const</div><div class="ttdoc">get the rep node if not found return itself</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00139">SCC.h:139</a></div></div>
|
|
3904
|
-
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a062f1f2d6d47694caa9ac64a9e68c7b3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">SVF::PointerAnalysis::printIndCSTargets</a></div><div class="ttdeci">void printIndCSTargets()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
3905
|
+
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a062f1f2d6d47694caa9ac64a9e68c7b3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">SVF::PointerAnalysis::printIndCSTargets</a></div><div class="ttdeci">void printIndCSTargets()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00353">PointerAnalysis.cpp:353</a></div></div>
|
|
3905
3906
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">SVF::PointerAnalysis::FSSPARSE_WPA</a></div><div class="ttdeci">@ FSSPARSE_WPA</div><div class="ttdoc">Sparse flow sensitive WPA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00075">PointerAnalysis.h:75</a></div></div>
|
|
3906
3907
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
|
|
3907
3908
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a804a41f4eb078586f20f7d5755ea6fdd"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a804a41f4eb078586f20f7d5755ea6fdd">SVF::SVFFunction::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00394">SVFValue.h:394</a></div></div>
|
|
@@ -3943,7 +3944,7 @@ Private Member Functions</h2></td></tr>
|
|
|
3943
3944
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a3dbe0b17694daa74f648a70e77efaf23"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">SVF::SVFIR::isIndirectCallSites</a></div><div class="ttdeci">bool isIndirectCallSites(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00353">SVFIR.h:353</a></div></div>
|
|
3944
3945
|
<div class="ttc" id="aclassSVF_1_1Options_html_ad2f3ffd1b8d579ebe4c19a015cd599e2"><div class="ttname"><a href="classSVF_1_1Options.html#ad2f3ffd1b8d579ebe4c19a015cd599e2">SVF::Options::StatBudget</a></div><div class="ttdeci">static const Option< u32_t > StatBudget</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00133">Options.h:133</a></div></div>
|
|
3945
3946
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a1e24131ab0a212df00889e32e6ee04f9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">SVF::SymbolTableInfo::printFlattenFields</a></div><div class="ttdeci">void printFlattenFields(const SVFType *type)</div><div class="ttdoc">Debug method.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00237">SymbolTableInfo.cpp:237</a></div></div>
|
|
3946
|
-
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a6a5dec067fa2a1babc83f36daa8afcc3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">SVF::PointerAnalysis::connectVCallToVFns</a></div><div class="ttdeci">void connectVCallToVFns(const CallICFGNode *cs, const VFunSet &vfns, CallEdgeMap &newEdges)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
3947
|
+
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a6a5dec067fa2a1babc83f36daa8afcc3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">SVF::PointerAnalysis::connectVCallToVFns</a></div><div class="ttdeci">void connectVCallToVFns(const CallICFGNode *cs, const VFunSet &vfns, CallEdgeMap &newEdges)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00469">PointerAnalysis.cpp:469</a></div></div>
|
|
3947
3948
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7648a0358e2c0798db1c547ec7aa7c64"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7648a0358e2c0798db1c547ec7aa7c64">SVF::PointerAnalysis::aliasTestMayAlias</a></div><div class="ttdeci">static const std::string aliasTestMayAlias</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00112">PointerAnalysis.h:112</a></div></div>
|
|
3948
3949
|
<div class="ttc" id="aclassSVF_1_1Options_html_aa5bae1db07c401517c1c0f8fd9f2deef"><div class="ttname"><a href="classSVF_1_1Options.html#aa5bae1db07c401517c1c0f8fd9f2deef">SVF::Options::IndirectCallLimit</a></div><div class="ttdeci">static const Option< u32_t > IndirectCallLimit</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00141">Options.h:141</a></div></div>
|
|
3949
3950
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac0c0855918cb2cdc3d8ebc175acfbd4da84705167ea3a7162ecb9470a8a77b5d8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4da84705167ea3a7162ecb9470a8a77b5d8">SVF::PointerAnalysis::BVDataImpl</a></div><div class="ttdeci">@ BVDataImpl</div><div class="ttdoc">Represents BVDataPTAImpl.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00097">PointerAnalysis.h:97</a></div></div>
|
|
@@ -4010,7 +4011,7 @@ Private Member Functions</h2></td></tr>
|
|
|
4010
4011
|
<div class="ttc" id="aclassSVF_1_1Options_html_abf71061d93d4a3b32246f19dc71e5127"><div class="ttname"><a href="classSVF_1_1Options.html#abf71061d93d4a3b32246f19dc71e5127">SVF::Options::ConnectVCallOnCHA</a></div><div class="ttdeci">static const Option< bool > ConnectVCallOnCHA</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00145">Options.h:145</a></div></div>
|
|
4011
4012
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00160">SVFIR.h:160</a></div></div>
|
|
4012
4013
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ac9e931f254fa3471f5f5337cbca1de09"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ac9e931f254fa3471f5f5337cbca1de09">SVF::PointerAnalysis::CSCallString_WPA</a></div><div class="ttdeci">@ CSCallString_WPA</div><div class="ttdoc">Call string based context sensitive WPA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00072">PointerAnalysis.h:72</a></div></div>
|
|
4013
|
-
<div class="ttc" id="aclassSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
4014
|
+
<div class="ttc" id="aclassSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00499">SymbolTableInfo.cpp:499</a></div></div>
|
|
4014
4015
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ad47b39252e02c68dfb466d4f42dc7ebe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">SVF::PointerAnalysis::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdoc">Call graph used for pointer analysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00152">PointerAnalysis.h:152</a></div></div>
|
|
4015
4016
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6">SVF::PointerAnalysis::Andersen_WPA</a></div><div class="ttdeci">@ Andersen_WPA</div><div class="ttdoc">Andersen PTA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00067">PointerAnalysis.h:67</a></div></div>
|
|
4016
4017
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html_ac695d78f0a78e2e5f1fb4f93264e52b8"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ac695d78f0a78e2e5f1fb4f93264e52b8">SVF::PTACallGraph::verifyCallGraph</a></div><div class="ttdeci">void verifyCallGraph()</div><div class="ttdoc">Issue a warning if the function which has indirect call sites can not be reached from program entry.</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00266">PTACallGraph.cpp:266</a></div></div>
|
|
@@ -4023,10 +4024,10 @@ Private Member Functions</h2></td></tr>
|
|
|
4023
4024
|
<div class="ttc" id="aclassSVF_1_1Options_html_ac9d18f2d6853f45548f4f85fa2f661c4"><div class="ttname"><a href="classSVF_1_1Options.html#ac9d18f2d6853f45548f4f85fa2f661c4">SVF::Options::PStat</a></div><div class="ttdeci">static const Option< bool > PStat</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00132">Options.h:132</a></div></div>
|
|
4024
4025
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a08399de593c073b6dd848a8d849dad27"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a08399de593c073b6dd848a8d849dad27">SVF::PointerAnalysis::dumpAllTypes</a></div><div class="ttdeci">void dumpAllTypes()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00236">PointerAnalysis.cpp:236</a></div></div>
|
|
4025
4026
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac1422cd8b449fdb4a1f7c539364e4c41"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">SVF::PointerAnalysis::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00105">PointerAnalysis.h:105</a></div></div>
|
|
4026
|
-
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a011b8401f5ed5fdb6cd507053465a7a2"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2">SVF::PointerAnalysis::getVFnsFromPts</a></div><div class="ttdeci">void getVFnsFromPts(const CallICFGNode *cs, const PointsTo &target, VFunSet &vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
4027
|
+
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a011b8401f5ed5fdb6cd507053465a7a2"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2">SVF::PointerAnalysis::getVFnsFromPts</a></div><div class="ttdeci">void getVFnsFromPts(const CallICFGNode *cs, const PointsTo &target, VFunSet &vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00443">PointerAnalysis.cpp:443</a></div></div>
|
|
4027
4028
|
<div class="ttc" id="aclassSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01108">SVFValue.h:1108</a></div></div>
|
|
4028
4029
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a5d3c3094e263bf16a4f312a118c1bd36"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36">SVF::PointerAnalysis::ptaImplTy</a></div><div class="ttdeci">PTAImplTy ptaImplTy</div><div class="ttdoc">PTA implementation type.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00148">PointerAnalysis.h:148</a></div></div>
|
|
4029
|
-
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
4030
|
+
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01385">LLVMUtil.cpp:1385</a></div></div>
|
|
4030
4031
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_a13746982a11d0cab57e5919d53bfbec8"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">SVF::PointsTo::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Returns true if set is empty.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00098">PointsTo.cpp:98</a></div></div>
|
|
4031
4032
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ae18425df0631aefca7dd4b799f6f524a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const APOffset &ap)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00422">SVFIR.cpp:422</a></div></div>
|
|
4032
4033
|
<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>
|
|
@@ -4036,12 +4037,12 @@ Private Member Functions</h2></td></tr>
|
|
|
4036
4037
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a13ce6b930a35877f17bffd4b89e22654"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a13ce6b930a35877f17bffd4b89e22654">SVF::PointerAnalysis::aliasTestMayAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestMayAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00113">PointerAnalysis.h:113</a></div></div>
|
|
4037
4038
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_ad5b582d2672617806c61e6170d0b5a7e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
|
|
4038
4039
|
<div class="ttc" id="aclassSVF_1_1ThreadCallGraph_html"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html">SVF::ThreadCallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00160">ThreadCallGraph.h:160</a></div></div>
|
|
4039
|
-
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ade41f3562704d56c7490dcfc941b3437"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">SVF::PointerAnalysis::getVFnsFromCHA</a></div><div class="ttdeci">void getVFnsFromCHA(const CallICFGNode *cs, VFunSet &vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
4040
|
+
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ade41f3562704d56c7490dcfc941b3437"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">SVF::PointerAnalysis::getVFnsFromCHA</a></div><div class="ttdeci">void getVFnsFromCHA(const CallICFGNode *cs, VFunSet &vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00434">PointerAnalysis.cpp:434</a></div></div>
|
|
4040
4041
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_a6e2ff63437d07a30cc6db35de032728a"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
|
|
4041
4042
|
<div class="ttc" id="aclassSVF_1_1CommonCHGraph_html_abe9232b9cada361e0434f7c4390a7864"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html#abe9232b9cada361e0434f7c4390a7864">SVF::CommonCHGraph::getCSVFsBasedonCHA</a></div><div class="ttdeci">virtual const VFunSet & getCSVFsBasedonCHA(CallSite cs)=0</div></div>
|
|
4042
4043
|
<div class="ttc" id="aclassSVF_1_1CallSite_html_ac2a0091dab3543a398da890b947e42ef"><div class="ttname"><a href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">SVF::CallSite::getInstruction</a></div><div class="ttdeci">const SVFInstruction * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01123">SVFValue.h:1123</a></div></div>
|
|
4043
4044
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_aec884481726cfaf19c4ab8ec8d9195b7"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aec884481726cfaf19c4ab8ec8d9195b7">SVF::PointerAnalysis::aliasTestMustAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestMustAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00119">PointerAnalysis.h:119</a></div></div>
|
|
4044
|
-
<div class="ttc" id="aclassSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
4045
|
+
<div class="ttc" id="aclassSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00484">SymbolTableInfo.cpp:484</a></div></div>
|
|
4045
4046
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb">SVF::PointerAnalysis::CFLFICI_WPA</a></div><div class="ttdeci">@ CFLFICI_WPA</div><div class="ttdoc">Flow-, context-, insensitive CFL-reachability-based analysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00078">PointerAnalysis.h:78</a></div></div>
|
|
4046
4047
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS & getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00477">SVFIR.cpp:477</a></div></div>
|
|
4047
4048
|
<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>
|
|
@@ -4061,7 +4062,7 @@ Private Member Functions</h2></td></tr>
|
|
|
4061
4062
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a9a25374fb6d2218c6c59de0482548f49"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a9a25374fb6d2218c6c59de0482548f49">SVF::PointerAnalysis::Andersen_BASE</a></div><div class="ttdeci">@ Andersen_BASE</div><div class="ttdoc">Base Andersen PTA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00066">PointerAnalysis.h:66</a></div></div>
|
|
4062
4063
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85afbe666887476ce8620aca97a159921bc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85afbe666887476ce8620aca97a159921bc">SVF::PointerAnalysis::CFLFSCI_WPA</a></div><div class="ttdeci">@ CFLFSCI_WPA</div><div class="ttdoc">Flow-insensitive, context-sensitive CFL-reachability-based analysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00079">PointerAnalysis.h:79</a></div></div>
|
|
4063
4064
|
<div class="ttc" id="aclassSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00380">SymbolTableInfo.h:380</a></div></div>
|
|
4064
|
-
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ab982e6bbd99a2f9a0a3abbebeeb00dcc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ab982e6bbd99a2f9a0a3abbebeeb00dcc">SVF::PointerAnalysis::validateExpectedFailureTests</a></div><div class="ttdeci">virtual void validateExpectedFailureTests(std::string fun)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
4065
|
+
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ab982e6bbd99a2f9a0a3abbebeeb00dcc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ab982e6bbd99a2f9a0a3abbebeeb00dcc">SVF::PointerAnalysis::validateExpectedFailureTests</a></div><div class="ttdeci">virtual void validateExpectedFailureTests(std::string fun)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00575">PointerAnalysis.cpp:575</a></div></div>
|
|
4065
4066
|
<div class="ttc" id="acJSON_8h_html_ad43c3812e6d13e0518d9f8b8f463ffcf"><div class="ttname"><a href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a></div><div class="ttdeci">int count</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00216">cJSON.h:216</a></div></div>
|
|
4066
4067
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00280">SVFValue.h:280</a></div></div>
|
|
4067
4068
|
<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>
|
|
@@ -4069,7 +4070,7 @@ Private Member Functions</h2></td></tr>
|
|
|
4069
4070
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a651cc82379c2d18cc2f69f25b2ae08db"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a651cc82379c2d18cc2f69f25b2ae08db">SVF::PointerAnalysis::aliasTestFailMayAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestFailMayAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00121">PointerAnalysis.h:121</a></div></div>
|
|
4070
4071
|
<div class="ttc" id="aclassSVF_1_1Options_html_a428e892b31dcb783be36a35e878a0337"><div class="ttname"><a href="classSVF_1_1Options.html#a428e892b31dcb783be36a35e878a0337">SVF::Options::PTSPrint</a></div><div class="ttdeci">static const Option< bool > PTSPrint</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00130">Options.h:130</a></div></div>
|
|
4071
4072
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
4072
|
-
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7accf4e4db4001716e53d98ce5217ac8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7accf4e4db4001716e53d98ce5217ac8">SVF::PointerAnalysis::validateSuccessTests</a></div><div class="ttdeci">virtual void validateSuccessTests(std::string fun)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
4073
|
+
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7accf4e4db4001716e53d98ce5217ac8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7accf4e4db4001716e53d98ce5217ac8">SVF::PointerAnalysis::validateSuccessTests</a></div><div class="ttdeci">virtual void validateSuccessTests(std::string fun)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00507">PointerAnalysis.cpp:507</a></div></div>
|
|
4073
4074
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
|
|
4074
4075
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_aefd4e9ea66da5ad84a45efead823eb22"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aefd4e9ea66da5ad84a45efead823eb22">SVF::PointerAnalysis::aliasTestFailNoAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestFailNoAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00123">PointerAnalysis.h:123</a></div></div>
|
|
4075
4076
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_abdacd060691add054839aa183babe095"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#abdacd060691add054839aa183babe095">SVF::PointerAnalysis::hasIndCSCallees</a></div><div class="ttdeci">bool hasIndCSCallees(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00379">PointerAnalysis.h:379</a></div></div>
|