svf-tools 1.0.828 → 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 +1135 -1037
- package/SVF-doxygen/html/LLVMUtil_8h.html +8 -5
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +418 -415
- 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 +651 -640
- package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +18 -18
- 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 -30
- 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-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +642 -629
- 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_a.html +1 -1
- package/SVF-doxygen/html/functions_func.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/menudata.js +0 -1
- package/SVF-doxygen/html/namespaceSVF.html +43 -25
- package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +1280 -1152
- package/SVF-doxygen/html/namespacemembers_d.html +7 -1
- package/SVF-doxygen/html/namespacemembers_func_d.html +7 -1
- package/SVF-doxygen/html/namespacemembers_func_g.html +7 -4
- package/SVF-doxygen/html/namespacemembers_g.html +11 -5
- package/SVF-doxygen/html/namespacemembers_l.html +0 -3
- package/SVF-doxygen/html/namespacemembers_type_g.html +3 -0
- package/SVF-doxygen/html/search/all_1.js +1 -1
- 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_4.js +8 -6
- package/SVF-doxygen/html/search/all_5.js +119 -119
- package/SVF-doxygen/html/search/all_6.js +226 -226
- package/SVF-doxygen/html/search/all_7.js +1048 -1046
- 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 -116
- 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 -76
- 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 -26
- 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 +2 -1
- package/svf-llvm/include/SVF-LLVM/BasicTypes.h +1 -0
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +11 -8
- package/svf-llvm/include/SVF-LLVM/SymbolTableBuilder.h +1 -1
- package/svf-llvm/lib/LLVMModule.cpp +1 -0
- package/svf-llvm/lib/LLVMUtil.cpp +112 -18
- package/svf-llvm/lib/SVFIRBuilder.cpp +3 -1
- package/svf-llvm/lib/SymbolTableBuilder.cpp +21 -9
|
@@ -294,358 +294,359 @@ $(function() {
|
|
|
294
294
|
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  </div>
|
|
295
295
|
<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>
|
|
296
296
|
<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>
|
|
297
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="
|
|
298
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> 
|
|
299
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> 
|
|
300
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> }</div>
|
|
301
|
-
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> 
|
|
302
|
-
<div class="line"><a name="
|
|
303
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> 
|
|
304
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> 
|
|
305
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> 
|
|
306
|
-
<div class="line"><a name="
|
|
307
|
-
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> 
|
|
308
|
-
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> 
|
|
309
|
-
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> 
|
|
310
|
-
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> 
|
|
311
|
-
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> 
|
|
312
|
-
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> 
|
|
313
|
-
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> 
|
|
314
|
-
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> 
|
|
315
|
-
<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">"
|
|
316
|
-
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> 
|
|
317
|
-
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> 
|
|
318
|
-
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> 
|
|
319
|
-
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  </div>
|
|
320
|
-
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> 
|
|
321
|
-
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> 
|
|
322
|
-
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> 
|
|
323
|
-
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> 
|
|
324
|
-
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> 
|
|
325
|
-
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> 
|
|
326
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> 
|
|
327
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <
|
|
328
|
-
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> 
|
|
329
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> 
|
|
330
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> 
|
|
331
|
-
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> 
|
|
332
|
-
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> 
|
|
333
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> 
|
|
334
|
-
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  </div>
|
|
335
|
-
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> 
|
|
336
|
-
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> 
|
|
337
|
-
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> 
|
|
338
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="
|
|
339
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> 
|
|
340
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> 
|
|
341
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="
|
|
342
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <
|
|
343
|
-
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="
|
|
344
|
-
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> 
|
|
345
|
-
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> 
|
|
346
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> 
|
|
347
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> 
|
|
348
|
-
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> 
|
|
349
|
-
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> 
|
|
350
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> 
|
|
351
|
-
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> 
|
|
352
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> 
|
|
353
|
-
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> 
|
|
354
|
-
<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">"
|
|
355
|
-
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> 
|
|
356
|
-
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> 
|
|
357
|
-
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> 
|
|
358
|
-
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> 
|
|
359
|
-
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> 
|
|
360
|
-
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> }</div>
|
|
361
|
-
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> 
|
|
362
|
-
<div class="line"><a name="
|
|
363
|
-
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> 
|
|
364
|
-
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> 
|
|
365
|
-
<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">"\
|
|
366
|
-
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() <<
|
|
367
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() <<
|
|
368
|
-
<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">"\
|
|
369
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  </div>
|
|
370
|
-
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> 
|
|
371
|
-
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> 
|
|
372
|
-
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> 
|
|
373
|
-
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  FunctionSet::const_iterator
|
|
374
|
-
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> 
|
|
375
|
-
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> 
|
|
376
|
-
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> 
|
|
377
|
-
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <
|
|
378
|
-
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> 
|
|
379
|
-
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> 
|
|
380
|
-
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> 
|
|
381
|
-
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> 
|
|
382
|
-
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> 
|
|
383
|
-
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> 
|
|
384
|
-
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> 
|
|
385
|
-
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> 
|
|
386
|
-
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> 
|
|
387
|
-
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> 
|
|
388
|
-
<div class="line"><a name="
|
|
389
|
-
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> 
|
|
390
|
-
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> 
|
|
391
|
-
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <
|
|
392
|
-
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  CallEdgeMap
|
|
393
|
-
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  CallEdgeMap::const_iterator
|
|
394
|
-
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> 
|
|
395
|
-
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> 
|
|
396
|
-
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> 
|
|
397
|
-
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keyword">const</span> <a class="code" href="
|
|
398
|
-
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#
|
|
399
|
-
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> 
|
|
400
|
-
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> 
|
|
401
|
-
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> 
|
|
402
|
-
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  CallSiteToFunPtrMap
|
|
403
|
-
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  CallSiteToFunPtrMap::const_iterator
|
|
404
|
-
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> 
|
|
405
|
-
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> 
|
|
406
|
-
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> 
|
|
407
|
-
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="
|
|
408
|
-
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> 
|
|
409
|
-
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> 
|
|
410
|
-
<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">"\
|
|
411
|
-
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() <<
|
|
412
|
-
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() <<
|
|
413
|
-
<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">"\
|
|
414
|
-
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> 
|
|
415
|
-
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> 
|
|
416
|
-
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> }</div>
|
|
417
|
-
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> 
|
|
297
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="comment">// TODO: getPtrElementType to be removed</span></div>
|
|
298
|
+
<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>
|
|
299
|
+
<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>
|
|
300
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  }</div>
|
|
301
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> }</div>
|
|
302
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  </div>
|
|
303
|
+
<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d"> 260</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">PointerAnalysis::dumpPts</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts)</div>
|
|
304
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> {</div>
|
|
305
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
|
|
306
|
+
<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>
|
|
307
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DummyObjVar> (node))</div>
|
|
308
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div>
|
|
309
|
+
<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>
|
|
310
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div>
|
|
311
|
+
<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>
|
|
312
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div>
|
|
313
|
+
<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>
|
|
314
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  {</div>
|
|
315
|
+
<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>
|
|
316
|
+
<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>
|
|
317
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div>
|
|
318
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div>
|
|
319
|
+
<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>
|
|
320
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
|
|
321
|
+
<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>
|
|
322
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div>
|
|
323
|
+
<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>
|
|
324
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div>
|
|
325
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">else</span></div>
|
|
326
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div>
|
|
327
|
+
<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>
|
|
328
|
+
<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>
|
|
329
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  ++it)</div>
|
|
330
|
+
<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>
|
|
331
|
+
<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>
|
|
332
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div>
|
|
333
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  </div>
|
|
334
|
+
<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>
|
|
335
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
|
|
336
|
+
<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>
|
|
337
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div>
|
|
338
|
+
<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>
|
|
339
|
+
<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>
|
|
340
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">continue</span>;</div>
|
|
341
|
+
<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>
|
|
342
|
+
<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>
|
|
343
|
+
<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>
|
|
344
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DummyValVar>(node))</div>
|
|
345
|
+
<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>
|
|
346
|
+
<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>
|
|
347
|
+
<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>
|
|
348
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">else</span></div>
|
|
349
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  {</div>
|
|
350
|
+
<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>
|
|
351
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div>
|
|
352
|
+
<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>
|
|
353
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div>
|
|
354
|
+
<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>
|
|
355
|
+
<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>
|
|
356
|
+
<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>
|
|
357
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div>
|
|
358
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div>
|
|
359
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div>
|
|
360
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div>
|
|
361
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> }</div>
|
|
362
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  </div>
|
|
363
|
+
<div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a84edebc59e29f2cc1b89a699b8641f30"> 324</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">PointerAnalysis::printIndCSTargets</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a>& targets)</div>
|
|
364
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> {</div>
|
|
365
|
+
<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>
|
|
366
|
+
<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>
|
|
367
|
+
<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>
|
|
368
|
+
<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>
|
|
369
|
+
<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>
|
|
370
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
|
|
371
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">if</span> (!targets.empty())</div>
|
|
372
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div>
|
|
373
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  FunctionSet::const_iterator fit = targets.begin();</div>
|
|
374
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  FunctionSet::const_iterator feit = targets.end();</div>
|
|
375
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">for</span> (; fit != feit; ++fit)</div>
|
|
376
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  {</div>
|
|
377
|
+
<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>
|
|
378
|
+
<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>
|
|
379
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div>
|
|
380
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div>
|
|
381
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">else</span></div>
|
|
382
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div>
|
|
383
|
+
<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>
|
|
384
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div>
|
|
385
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  </div>
|
|
386
|
+
<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>
|
|
387
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> }</div>
|
|
388
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  </div>
|
|
389
|
+
<div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3"> 353</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">PointerAnalysis::printIndCSTargets</a>()</div>
|
|
390
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> {</div>
|
|
391
|
+
<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>
|
|
392
|
+
<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>
|
|
393
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  CallEdgeMap::const_iterator it = callEdges.begin();</div>
|
|
394
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  CallEdgeMap::const_iterator eit = callEdges.end();</div>
|
|
395
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div>
|
|
396
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div>
|
|
397
|
+
<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>
|
|
398
|
+
<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>
|
|
399
|
+
<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>
|
|
400
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div>
|
|
401
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  </div>
|
|
402
|
+
<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>
|
|
403
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  CallSiteToFunPtrMap::const_iterator csIt = indCS.begin();</div>
|
|
404
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  CallSiteToFunPtrMap::const_iterator csEit = indCS.end();</div>
|
|
405
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">for</span> (; csIt != csEit; ++csIt)</div>
|
|
406
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div>
|
|
407
|
+
<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>
|
|
408
|
+
<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>
|
|
409
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  {</div>
|
|
410
|
+
<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>
|
|
411
|
+
<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>
|
|
412
|
+
<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>
|
|
413
|
+
<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>
|
|
414
|
+
<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>
|
|
415
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div>
|
|
416
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  }</div>
|
|
417
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> }</div>
|
|
418
418
|
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  </div>
|
|
419
419
|
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  </div>
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> 
|
|
422
|
-
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> 
|
|
423
|
-
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> 
|
|
424
|
-
<div class="line"><a name="
|
|
425
|
-
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> 
|
|
426
|
-
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> 
|
|
427
|
-
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> 
|
|
428
|
-
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> 
|
|
429
|
-
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> 
|
|
430
|
-
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> 
|
|
431
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <
|
|
432
|
-
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> 
|
|
433
|
-
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> 
|
|
434
|
-
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> 
|
|
435
|
-
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> 
|
|
436
|
-
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> 
|
|
437
|
-
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  </div>
|
|
438
|
-
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> 
|
|
439
|
-
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> 
|
|
440
|
-
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> 
|
|
441
|
-
<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>*
|
|
442
|
-
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  </div>
|
|
443
|
-
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> 
|
|
444
|
-
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> 
|
|
445
|
-
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
|
|
446
|
-
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> 
|
|
447
|
-
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> 
|
|
448
|
-
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> 
|
|
449
|
-
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> 
|
|
450
|
-
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  </div>
|
|
451
|
-
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> 
|
|
452
|
-
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <
|
|
453
|
-
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="comment">//
|
|
454
|
-
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="comment">//
|
|
455
|
-
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="comment">//callgraphNode
|
|
456
|
-
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> 
|
|
457
|
-
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> 
|
|
458
|
-
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> 
|
|
459
|
-
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> 
|
|
460
|
-
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> }</div>
|
|
461
|
-
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> 
|
|
462
|
-
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> 
|
|
463
|
-
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="comment"
|
|
464
|
-
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="comment">
|
|
465
|
-
<div class="line"><a name="l00433"></a><span class="lineno"
|
|
466
|
-
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> 
|
|
467
|
-
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> 
|
|
468
|
-
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> 
|
|
469
|
-
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> 
|
|
470
|
-
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> 
|
|
471
|
-
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> 
|
|
472
|
-
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="comment"
|
|
473
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="comment">
|
|
474
|
-
<div class="line"><a name="l00442"></a><span class="lineno"
|
|
475
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> 
|
|
476
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> 
|
|
477
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> 
|
|
478
|
-
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> 
|
|
479
|
-
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> 
|
|
480
|
-
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <
|
|
481
|
-
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="
|
|
482
|
-
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> 
|
|
483
|
-
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> 
|
|
484
|
-
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="
|
|
485
|
-
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> 
|
|
486
|
-
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> 
|
|
487
|
-
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> 
|
|
488
|
-
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> 
|
|
489
|
-
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> 
|
|
490
|
-
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> 
|
|
491
|
-
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> 
|
|
492
|
-
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> 
|
|
493
|
-
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> 
|
|
494
|
-
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> 
|
|
495
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> }</div>
|
|
496
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> 
|
|
497
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> 
|
|
498
|
-
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="comment"
|
|
499
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="comment">
|
|
500
|
-
<div class="line"><a name="l00468"></a><span class="lineno"
|
|
501
|
-
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> 
|
|
502
|
-
<div class="line"><a name="
|
|
503
|
-
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> 
|
|
504
|
-
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> 
|
|
505
|
-
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> 
|
|
506
|
-
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> 
|
|
507
|
-
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> 
|
|
508
|
-
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> 
|
|
509
|
-
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> 
|
|
510
|
-
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> 
|
|
511
|
-
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> 
|
|
512
|
-
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> 
|
|
513
|
-
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> 
|
|
514
|
-
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <
|
|
515
|
-
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#
|
|
516
|
-
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> 
|
|
517
|
-
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> 
|
|
518
|
-
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> }</div>
|
|
519
|
-
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> 
|
|
520
|
-
<div class="line"><a name="
|
|
521
|
-
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> 
|
|
522
|
-
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> 
|
|
523
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div>
|
|
524
|
-
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> 
|
|
525
|
-
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <
|
|
526
|
-
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> 
|
|
527
|
-
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> 
|
|
528
|
-
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> 
|
|
529
|
-
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> 
|
|
530
|
-
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> 
|
|
531
|
-
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> 
|
|
532
|
-
<div class="line"><a name="
|
|
533
|
-
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> 
|
|
534
|
-
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> 
|
|
535
|
-
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="
|
|
536
|
-
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> 
|
|
537
|
-
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> 
|
|
538
|
-
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> 
|
|
539
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  </div>
|
|
540
|
-
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> 
|
|
541
|
-
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> 
|
|
542
|
-
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> 
|
|
543
|
-
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="
|
|
544
|
-
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> 
|
|
545
|
-
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> 
|
|
546
|
-
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> 
|
|
547
|
-
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> 
|
|
548
|
-
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> 
|
|
549
|
-
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> 
|
|
550
|
-
<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>*
|
|
551
|
-
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <a class="code" href="
|
|
552
|
-
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  </div>
|
|
553
|
-
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> 
|
|
554
|
-
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="
|
|
555
|
-
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> 
|
|
556
|
-
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> 
|
|
557
|
-
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> 
|
|
558
|
-
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> 
|
|
559
|
-
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> 
|
|
560
|
-
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> 
|
|
561
|
-
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> 
|
|
562
|
-
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> 
|
|
563
|
-
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> 
|
|
564
|
-
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> 
|
|
565
|
-
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> 
|
|
566
|
-
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> 
|
|
567
|
-
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="
|
|
568
|
-
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> 
|
|
569
|
-
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> 
|
|
570
|
-
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> 
|
|
571
|
-
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> 
|
|
572
|
-
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> 
|
|
573
|
-
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="
|
|
574
|
-
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> 
|
|
575
|
-
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> 
|
|
576
|
-
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> 
|
|
577
|
-
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> 
|
|
578
|
-
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  </div>
|
|
579
|
-
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> 
|
|
580
|
-
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>
|
|
581
|
-
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  </div>
|
|
582
|
-
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> 
|
|
583
|
-
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> 
|
|
584
|
-
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> 
|
|
585
|
-
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> 
|
|
586
|
-
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> 
|
|
587
|
-
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> 
|
|
588
|
-
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> 
|
|
589
|
-
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  << <span class="stringliteral">"
|
|
590
|
-
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> 
|
|
591
|
-
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> 
|
|
592
|
-
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> 
|
|
593
|
-
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> 
|
|
594
|
-
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> 
|
|
595
|
-
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> }</div>
|
|
596
|
-
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> 
|
|
597
|
-
<div class="line"><a name="
|
|
598
|
-
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> 
|
|
599
|
-
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> 
|
|
600
|
-
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> 
|
|
601
|
-
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> 
|
|
602
|
-
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> 
|
|
603
|
-
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> 
|
|
604
|
-
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  </div>
|
|
605
|
-
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> 
|
|
606
|
-
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> 
|
|
607
|
-
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> 
|
|
608
|
-
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="
|
|
609
|
-
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> 
|
|
610
|
-
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> 
|
|
611
|
-
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> 
|
|
612
|
-
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> 
|
|
613
|
-
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> 
|
|
614
|
-
<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>*
|
|
615
|
-
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <a class="code" href="
|
|
616
|
-
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  </div>
|
|
617
|
-
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> 
|
|
618
|
-
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="
|
|
619
|
-
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> 
|
|
620
|
-
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> 
|
|
621
|
-
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="
|
|
622
|
-
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> 
|
|
623
|
-
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> 
|
|
624
|
-
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> 
|
|
625
|
-
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> 
|
|
626
|
-
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> 
|
|
627
|
-
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="
|
|
628
|
-
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> 
|
|
629
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> 
|
|
630
|
-
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> 
|
|
631
|
-
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> 
|
|
632
|
-
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  </div>
|
|
633
|
-
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> 
|
|
634
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>
|
|
635
|
-
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  </div>
|
|
636
|
-
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> 
|
|
637
|
-
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> 
|
|
638
|
-
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> 
|
|
639
|
-
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> 
|
|
640
|
-
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> 
|
|
641
|
-
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> 
|
|
642
|
-
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> 
|
|
643
|
-
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> 
|
|
644
|
-
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> 
|
|
645
|
-
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> 
|
|
646
|
-
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> 
|
|
647
|
-
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> 
|
|
648
|
-
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> }</div>
|
|
420
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  </div>
|
|
421
|
+
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440"> 388</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">PointerAnalysis::resolveIndCalls</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& target, <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a>& newEdges)</div>
|
|
422
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> {</div>
|
|
423
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  </div>
|
|
424
|
+
<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>
|
|
425
|
+
<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>
|
|
426
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  ii != ie; ii++)</div>
|
|
427
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  {</div>
|
|
428
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  </div>
|
|
429
|
+
<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>
|
|
430
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div>
|
|
431
|
+
<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>
|
|
432
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">return</span>;</div>
|
|
433
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div>
|
|
434
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  </div>
|
|
435
|
+
<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>
|
|
436
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  {</div>
|
|
437
|
+
<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>
|
|
438
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  </div>
|
|
439
|
+
<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>
|
|
440
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  {</div>
|
|
441
|
+
<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>
|
|
442
|
+
<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>
|
|
443
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  </div>
|
|
444
|
+
<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>
|
|
445
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">continue</span>;</div>
|
|
446
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  </div>
|
|
447
|
+
<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>
|
|
448
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  {</div>
|
|
449
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  newEdges[cs].insert(callee);</div>
|
|
450
|
+
<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>
|
|
451
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  </div>
|
|
452
|
+
<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>
|
|
453
|
+
<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>
|
|
454
|
+
<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>
|
|
455
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="comment">//CallGraphNode* callgraphNode = callgraph->getOrInsertFunction(cs.getCaller());</span></div>
|
|
456
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="comment">//callgraphNode->addCalledFunction(cs,callgraph->getOrInsertFunction(callee));</span></div>
|
|
457
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div>
|
|
458
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div>
|
|
459
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  }</div>
|
|
460
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div>
|
|
461
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> }</div>
|
|
462
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  </div>
|
|
463
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="comment">/*</span></div>
|
|
464
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="comment"> * Get virtual functions "vfns" based on CHA</span></div>
|
|
465
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="comment"> */</span></div>
|
|
466
|
+
<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437"> 434</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">PointerAnalysis::getVFnsFromCHA</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <a class="code" href="classSVF_1_1PointerAnalysis.html#aa7f15c74eb438be78fcc028534477478">VFunSet</a> &vfns)</div>
|
|
467
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> {</div>
|
|
468
|
+
<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>
|
|
469
|
+
<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>
|
|
470
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> }</div>
|
|
471
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  </div>
|
|
472
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="comment">/*</span></div>
|
|
473
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="comment"> * Get virtual functions "vfns" from PoninsTo set "target" for callsite "cs"</span></div>
|
|
474
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="comment"> */</span></div>
|
|
475
|
+
<div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2"> 443</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2">PointerAnalysis::getVFnsFromPts</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &target, <a class="code" href="classSVF_1_1PointerAnalysis.html#aa7f15c74eb438be78fcc028534477478">VFunSet</a> &vfns)</div>
|
|
476
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> {</div>
|
|
477
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div>
|
|
478
|
+
<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>
|
|
479
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  {</div>
|
|
480
|
+
<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>
|
|
481
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a57fabf1408ada10028282deef0b23ec6">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>
|
|
482
|
+
<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>
|
|
483
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div>
|
|
484
|
+
<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>
|
|
485
|
+
<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>
|
|
486
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  {</div>
|
|
487
|
+
<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>
|
|
488
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  {</div>
|
|
489
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">if</span> (chaVtbls.find(vtbl) != chaVtbls.end())</div>
|
|
490
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  vtbls.insert(vtbl);</div>
|
|
491
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div>
|
|
492
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div>
|
|
493
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div>
|
|
494
|
+
<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>
|
|
495
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div>
|
|
496
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> }</div>
|
|
497
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  </div>
|
|
498
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="comment">/*</span></div>
|
|
499
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="comment"> * Connect callsite "cs" to virtual functions in "vfns"</span></div>
|
|
500
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="comment"> */</span></div>
|
|
501
|
+
<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3"> 469</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">PointerAnalysis::connectVCallToVFns</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#aa7f15c74eb438be78fcc028534477478">VFunSet</a> &vfns, <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a>& newEdges)</div>
|
|
502
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> {</div>
|
|
503
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordflow">for</span> (VFunSet::const_iterator fit = vfns.begin(),</div>
|
|
504
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  feit = vfns.end(); fit != feit; ++fit)</div>
|
|
505
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div>
|
|
506
|
+
<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>
|
|
507
|
+
<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>
|
|
508
|
+
<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>
|
|
509
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">continue</span>;</div>
|
|
510
|
+
<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>
|
|
511
|
+
<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>
|
|
512
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  {</div>
|
|
513
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  newEdges[cs].insert(callee);</div>
|
|
514
|
+
<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>
|
|
515
|
+
<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>
|
|
516
|
+
<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>
|
|
517
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  }</div>
|
|
518
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  }</div>
|
|
519
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> }</div>
|
|
520
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  </div>
|
|
521
|
+
<div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba"> 491</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba">PointerAnalysis::resolveCPPIndCalls</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& target, <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a>& newEdges)</div>
|
|
522
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> {</div>
|
|
523
|
+
<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>
|
|
524
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  </div>
|
|
525
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#aa7f15c74eb438be78fcc028534477478">VFunSet</a> vfns;</div>
|
|
526
|
+
<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>
|
|
527
|
+
<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>
|
|
528
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">else</span></div>
|
|
529
|
+
<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>
|
|
530
|
+
<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>
|
|
531
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> }</div>
|
|
532
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  </div>
|
|
533
|
+
<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a7accf4e4db4001716e53d98ce5217ac8"> 507</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a7accf4e4db4001716e53d98ce5217ac8">PointerAnalysis::validateSuccessTests</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> fun)</div>
|
|
534
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> {</div>
|
|
535
|
+
<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>
|
|
536
|
+
<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>
|
|
537
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  {</div>
|
|
538
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">if</span>(!checkFun->isUncalledFunction())</div>
|
|
539
|
+
<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>
|
|
540
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  </div>
|
|
541
|
+
<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>
|
|
542
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  {</div>
|
|
543
|
+
<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>
|
|
544
|
+
<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>
|
|
545
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  {</div>
|
|
546
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  </div>
|
|
547
|
+
<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>
|
|
548
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  assert(cs.<a class="code" href="classSVF_1_1CallSite.html#a6b7a7e6da24425a3b15aa1803c673288">getNumArgOperands</a>() == 2</div>
|
|
549
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  && <span class="stringliteral">"arguments should be two pointers!!"</span>);</div>
|
|
550
|
+
<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.<a class="code" href="classSVF_1_1CallSite.html#a93c083aa8f3f3ef28fe80e9aaf70dfb5">getArgOperand</a>(0);</div>
|
|
551
|
+
<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.<a class="code" href="classSVF_1_1CallSite.html#a93c083aa8f3f3ef28fe80e9aaf70dfb5">getArgOperand</a>(1);</div>
|
|
552
|
+
<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>
|
|
553
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  </div>
|
|
554
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordtype">bool</span> checkSuccessful = <span class="keyword">false</span>;</div>
|
|
555
|
+
<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>
|
|
556
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  {</div>
|
|
557
|
+
<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>
|
|
558
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
559
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  }</div>
|
|
560
|
+
<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>
|
|
561
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  {</div>
|
|
562
|
+
<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>
|
|
563
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
564
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div>
|
|
565
|
+
<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>
|
|
566
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  {</div>
|
|
567
|
+
<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>
|
|
568
|
+
<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>
|
|
569
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
570
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  }</div>
|
|
571
|
+
<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>
|
|
572
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  {</div>
|
|
573
|
+
<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>
|
|
574
|
+
<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>
|
|
575
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
576
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  }</div>
|
|
577
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">else</span></div>
|
|
578
|
+
<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>
|
|
579
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  </div>
|
|
580
|
+
<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>
|
|
581
|
+
<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>
|
|
582
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  </div>
|
|
583
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">if</span> (checkSuccessful)</div>
|
|
584
|
+
<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>
|
|
585
|
+
<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>
|
|
586
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">else</span></div>
|
|
587
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  {</div>
|
|
588
|
+
<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>
|
|
589
|
+
<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>
|
|
590
|
+
<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>
|
|
591
|
+
<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>
|
|
592
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  }</div>
|
|
593
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div>
|
|
594
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div>
|
|
595
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div>
|
|
596
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> }</div>
|
|
597
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  </div>
|
|
598
|
+
<div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#ab982e6bbd99a2f9a0a3abbebeeb00dcc"> 575</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ab982e6bbd99a2f9a0a3abbebeeb00dcc">PointerAnalysis::validateExpectedFailureTests</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> fun)</div>
|
|
599
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> {</div>
|
|
600
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  </div>
|
|
601
|
+
<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>
|
|
602
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  {</div>
|
|
603
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">if</span>(!checkFun->isUncalledFunction())</div>
|
|
604
|
+
<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>
|
|
605
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  </div>
|
|
606
|
+
<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>
|
|
607
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  {</div>
|
|
608
|
+
<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>
|
|
609
|
+
<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>
|
|
610
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  {</div>
|
|
611
|
+
<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>
|
|
612
|
+
<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>
|
|
613
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  && <span class="stringliteral">"arguments should be two pointers!!"</span>);</div>
|
|
614
|
+
<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>
|
|
615
|
+
<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>
|
|
616
|
+
<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>
|
|
617
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  </div>
|
|
618
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordtype">bool</span> expectedFailure = <span class="keyword">false</span>;</div>
|
|
619
|
+
<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>
|
|
620
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  {</div>
|
|
621
|
+
<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>
|
|
622
|
+
<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>
|
|
623
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  expectedFailure = <span class="keyword">true</span>;</div>
|
|
624
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  }</div>
|
|
625
|
+
<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>
|
|
626
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  {</div>
|
|
627
|
+
<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>
|
|
628
|
+
<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>
|
|
629
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  expectedFailure = <span class="keyword">true</span>;</div>
|
|
630
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  }</div>
|
|
631
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">else</span></div>
|
|
632
|
+
<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>
|
|
633
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  </div>
|
|
634
|
+
<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>
|
|
635
|
+
<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>
|
|
636
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  </div>
|
|
637
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">if</span> (expectedFailure)</div>
|
|
638
|
+
<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>
|
|
639
|
+
<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>
|
|
640
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">else</span></div>
|
|
641
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div>
|
|
642
|
+
<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>
|
|
643
|
+
<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>
|
|
644
|
+
<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>
|
|
645
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div>
|
|
646
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div>
|
|
647
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  }</div>
|
|
648
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  }</div>
|
|
649
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> }</div>
|
|
649
650
|
</div><!-- fragment --></div><!-- contents -->
|
|
650
651
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a2401b022638769f59f86ab424a189b6e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string & getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00243">SVFValue.h:243</a></div></div>
|
|
651
652
|
<div class="ttc" id="aclassSVF_1_1CommonCHGraph_html_ae90f9a2152ab07aa0df16badd733f1fd"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html#ae90f9a2152ab07aa0df16badd733f1fd">SVF::CommonCHGraph::getCSVtblsBasedonCHA</a></div><div class="ttdeci">virtual const VTableSet & getCSVtblsBasedonCHA(CallSite cs)=0</div></div>
|
|
@@ -669,8 +670,8 @@ $(function() {
|
|
|
669
670
|
<div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
|
|
670
671
|
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html_a90fd0b8e44fba1a7eb76d15bce085d66"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const SVFInstruction * getCallSite() const</div><div class="ttdoc">Return callsite.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00409">ICFGNode.h:409</a></div></div>
|
|
671
672
|
<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>
|
|
672
|
-
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a1a6cee7e690ccb3e53cdc4c3e67b386d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">SVF::PointerAnalysis::dumpPts</a></div><div class="ttdeci">virtual void dumpPts(NodeID ptr, const PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
673
|
-
<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#
|
|
673
|
+
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a1a6cee7e690ccb3e53cdc4c3e67b386d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">SVF::PointerAnalysis::dumpPts</a></div><div class="ttdeci">virtual void dumpPts(NodeID ptr, const PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00260">PointerAnalysis.cpp:260</a></div></div>
|
|
674
|
+
<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>
|
|
674
675
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
675
676
|
<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>
|
|
676
677
|
<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>
|
|
@@ -708,7 +709,7 @@ $(function() {
|
|
|
708
709
|
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
709
710
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
710
711
|
<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>
|
|
711
|
-
<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#
|
|
712
|
+
<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>
|
|
712
713
|
<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>
|
|
713
714
|
<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>
|
|
714
715
|
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00428">ICFGNode.h:428</a></div></div>
|
|
@@ -733,12 +734,12 @@ $(function() {
|
|
|
733
734
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_adbceaf90526e44192c2fa4aac5468f5f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adbceaf90526e44192c2fa4aac5468f5f">SVF::PointerAnalysis::getFunPtr</a></div><div class="ttdeci">NodeID getFunPtr(const CallICFGNode *cs) const</div><div class="ttdoc">Return function pointer PAGNode at a callsite cs.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00272">PointerAnalysis.h:272</a></div></div>
|
|
734
735
|
<div class="ttc" id="aCallGraphBuilder_8h_html"><div class="ttname"><a href="CallGraphBuilder_8h.html">CallGraphBuilder.h</a></div></div>
|
|
735
736
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a03dadb5429e2b84f88713a83153979a8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a03dadb5429e2b84f88713a83153979a8">SVF::PointerAnalysis::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release the memory.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00091">PointerAnalysis.cpp:91</a></div></div>
|
|
736
|
-
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a8d128246f86f28fdf4981d91169ab440"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">SVF::PointerAnalysis::resolveIndCalls</a></div><div class="ttdeci">virtual void resolveIndCalls(const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges)</div><div class="ttdoc">Resolve indirect call edges.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
737
|
+
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a8d128246f86f28fdf4981d91169ab440"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">SVF::PointerAnalysis::resolveIndCalls</a></div><div class="ttdeci">virtual void resolveIndCalls(const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges)</div><div class="ttdoc">Resolve indirect call edges.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00388">PointerAnalysis.cpp:388</a></div></div>
|
|
737
738
|
<div class="ttc" id="aclassSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00851">SVFValue.h:851</a></div></div>
|
|
738
739
|
<div class="ttc" id="aclassSVF_1_1Options_html_abb91435e1e06b07548c539e7f7761563"><div class="ttname"><a href="classSVF_1_1Options.html#abb91435e1e06b07548c539e7f7761563">SVF::Options::FuncPointerPrint</a></div><div class="ttdeci">static const Option< bool > FuncPointerPrint</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00129">Options.h:129</a></div></div>
|
|
739
740
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_a1357c876eccedd58b3abe68875b3a570"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVF::SVFModule::pagReadFromTXT</a></div><div class="ttdeci">static bool pagReadFromTXT()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00098">SVFModule.h:98</a></div></div>
|
|
740
741
|
<div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a></div><div class="ttdeci">AliasResult</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00618">SVFType.h:618</a></div></div>
|
|
741
|
-
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac04b64a5884710508b304f93da88c7ba"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba">SVF::PointerAnalysis::resolveCPPIndCalls</a></div><div class="ttdeci">virtual void resolveCPPIndCalls(const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges)</div><div class="ttdoc">Resolve cpp indirect call edges.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
742
|
+
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac04b64a5884710508b304f93da88c7ba"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba">SVF::PointerAnalysis::resolveCPPIndCalls</a></div><div class="ttdeci">virtual void resolveCPPIndCalls(const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges)</div><div class="ttdoc">Resolve cpp indirect call edges.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00491">PointerAnalysis.cpp:491</a></div></div>
|
|
742
743
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_afc320fbf269404fe128e69c98e6f9cac"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac">SVF::PointerAnalysis::OnTheFlyIterBudgetForStat</a></div><div class="ttdeci">u32_t OnTheFlyIterBudgetForStat</div><div class="ttdoc">Flag for iteration budget for on-the-fly statistics.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00138">PointerAnalysis.h:138</a></div></div>
|
|
743
744
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a9f7c24325d897b598d6b989fdc4aae1e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">SVF::IRGraph::getSymbolInfo</a></div><div class="ttdeci">SymbolTableInfo * getSymbolInfo() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00115">IRGraph.h:115</a></div></div>
|
|
744
745
|
<div class="ttc" id="aclassSVF_1_1CommonCHGraph_html_a0ce9117288d9e0b498f128217fda0cca"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html#a0ce9117288d9e0b498f128217fda0cca">SVF::CommonCHGraph::csHasVFnsBasedonCHA</a></div><div class="ttdeci">virtual bool csHasVFnsBasedonCHA(CallSite cs)=0</div></div>
|
|
@@ -764,7 +765,7 @@ $(function() {
|
|
|
764
765
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
|
|
765
766
|
<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>
|
|
766
767
|
<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>
|
|
767
|
-
<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#
|
|
768
|
+
<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>
|
|
768
769
|
<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>
|
|
769
770
|
<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>
|
|
770
771
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00380">GenericGraph.h:380</a></div></div>
|
|
@@ -775,11 +776,11 @@ $(function() {
|
|
|
775
776
|
<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>
|
|
776
777
|
<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>
|
|
777
778
|
<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>
|
|
778
|
-
<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#
|
|
779
|
+
<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>
|
|
779
780
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a57fabf1408ada10028282deef0b23ec6"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a57fabf1408ada10028282deef0b23ec6">SVF::PointerAnalysis::VTableSet</a></div><div class="ttdeci">Set< const SVFGlobalValue * > VTableSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00108">PointerAnalysis.h:108</a></div></div>
|
|
780
781
|
<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>
|
|
781
782
|
<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>
|
|
782
|
-
<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#
|
|
783
|
+
<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>
|
|
783
784
|
<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>
|
|
784
785
|
<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>
|
|
785
786
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a861554c2fdeaa406131c2c920b4c7908"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a861554c2fdeaa406131c2c920b4c7908">SVF::PointerAnalysis::dumpAllPts</a></div><div class="ttdeci">virtual void dumpAllPts()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00258">PointerAnalysis.h:258</a></div></div>
|
|
@@ -788,13 +789,13 @@ $(function() {
|
|
|
788
789
|
<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>
|
|
789
790
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">SVF::PointerAnalysis::PTATY</a></div><div class="ttdeci">PTATY</div><div class="ttdoc">Pointer analysis type list.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00063">PointerAnalysis.h:63</a></div></div>
|
|
790
791
|
<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>
|
|
791
|
-
<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#
|
|
792
|
+
<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>
|
|
792
793
|
<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>
|
|
793
794
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
794
795
|
<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>
|
|
795
796
|
<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>
|
|
796
797
|
<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>
|
|
797
|
-
<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#
|
|
798
|
+
<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>
|
|
798
799
|
<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>
|
|
799
800
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a4aeca84393c5586eea7a480737daf17c"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4aeca84393c5586eea7a480737daf17c">SVF::PointerAnalysis::~PointerAnalysis</a></div><div class="ttdeci">virtual ~PointerAnalysis()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00083">PointerAnalysis.cpp:83</a></div></div>
|
|
800
801
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html_a841be22581a7896d8924564e7199f62b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a841be22581a7896d8924564e7199f62b">SVF::PTACallGraph::dump</a></div><div class="ttdeci">void dump(const std::string &filename)</div><div class="ttdoc">Dump the graph.</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00317">PTACallGraph.cpp:317</a></div></div>
|
|
@@ -809,7 +810,7 @@ $(function() {
|
|
|
809
810
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_aed4e5066f6ddef83afaf60adbcc11de0"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0">SVF::PointerAnalysis::PTAName</a></div><div class="ttdeci">virtual const std::string PTAName() const</div><div class="ttdoc">Return PTA name.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00423">PointerAnalysis.h:423</a></div></div>
|
|
810
811
|
<div class="ttc" id="aclassSVF_1_1Options_html_a5f07ff361307017b35fb6b9a97919a73"><div class="ttname"><a href="classSVF_1_1Options.html#a5f07ff361307017b35fb6b9a97919a73">SVF::Options::EnableAliasCheck</a></div><div class="ttdeci">static const Option< bool > EnableAliasCheck</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00143">Options.h:143</a></div></div>
|
|
811
812
|
<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>
|
|
812
|
-
<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#
|
|
813
|
+
<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>
|
|
813
814
|
<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>
|
|
814
815
|
<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>
|
|
815
816
|
<div class="ttc" id="aclassSVF_1_1CallSite_html_a6b7a7e6da24425a3b15aa1803c673288"><div class="ttname"><a href="classSVF_1_1CallSite.html#a6b7a7e6da24425a3b15aa1803c673288">SVF::CallSite::getNumArgOperands</a></div><div class="ttdeci">u32_t getNumArgOperands() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01147">SVFValue.h:1147</a></div></div>
|
|
@@ -818,7 +819,7 @@ $(function() {
|
|
|
818
819
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
819
820
|
<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>
|
|
820
821
|
<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>
|
|
821
|
-
<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#
|
|
822
|
+
<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>
|
|
822
823
|
<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>
|
|
823
824
|
<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>
|
|
824
825
|
<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>
|