svf-tools 1.0.830 → 1.0.831
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 +220 -228
- package/SVF-doxygen/html/AccessPath_8h_source.html +9 -9
- package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
- 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 +7 -7
- 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/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/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +4 -4
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +364 -397
- package/SVF-doxygen/html/LLVMUtil_8h.html +0 -2
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +78 -81
- package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MHP_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 +358 -362
- package/SVF-doxygen/html/PointerAnalysis_8h_source.html +13 -13
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +5 -5
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +6 -6
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +3 -3
- 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 -39
- 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 +1 -1
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +318 -322
- 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.html +200 -209
- 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 +7 -7
- 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_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_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 +4 -4
- 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_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 +28 -28
- 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 +336 -340
- 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 +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +5 -5
- 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 +2 -4
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +103 -107
- 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/namespaceSVF_1_1LLVMUtil.html +316 -368
- package/SVF-doxygen/html/namespacemembers_func_i.html +4 -7
- package/SVF-doxygen/html/namespacemembers_i.html +3 -6
- 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_9.js +168 -169
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +198 -198
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +80 -80
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +34 -34
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +21 -21
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +55 -55
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +360 -360
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +139 -139
- package/SVF-doxygen/html/search/functions_12.js +288 -288
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +172 -172
- package/SVF-doxygen/html/search/functions_2.js +89 -89
- package/SVF-doxygen/html/search/functions_3.js +258 -258
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +60 -60
- package/SVF-doxygen/html/search/functions_7.js +857 -857
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +422 -423
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +61 -61
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +56 -56
- 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/lib/MemoryModel/AccessPath.cpp +3 -12
- package/svf/lib/MemoryModel/PointerAnalysis.cpp +0 -3
- package/svf/lib/SVFIR/SVFType.cpp +1 -2
- package/svf/lib/SVFIR/SymbolTableInfo.cpp +1 -5
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +0 -1
- package/svf-llvm/lib/LLVMUtil.cpp +0 -31
|
@@ -294,359 +294,356 @@ $(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> 
|
|
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="
|
|
301
|
-
<div class="line"><a name="
|
|
302
|
-
<div class="line"><a name="
|
|
303
|
-
<div class="line"><a name="l00260"></a><span class="lineno"
|
|
304
|
-
<div class="line"><a name="
|
|
305
|
-
<div class="line"><a name="
|
|
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> 
|
|
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> 
|
|
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> 
|
|
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>  </div>
|
|
334
|
-
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> 
|
|
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> 
|
|
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>  <
|
|
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>  <
|
|
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> 
|
|
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="
|
|
361
|
-
<div class="line"><a name="
|
|
362
|
-
<div class="line"><a name="
|
|
363
|
-
<div class="line"><a name="l00324"></a><span class="lineno"
|
|
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>() << <span class="stringliteral">"\
|
|
367
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> 
|
|
368
|
-
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <
|
|
369
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> 
|
|
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> 
|
|
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> 
|
|
297
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div>
|
|
298
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> }</div>
|
|
299
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
|
|
300
|
+
<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d"> 257</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>
|
|
301
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> {</div>
|
|
302
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div>
|
|
303
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</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>
|
|
304
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DummyObjVar> (node))</div>
|
|
305
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  {</div>
|
|
306
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</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>
|
|
307
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div>
|
|
308
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</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>
|
|
309
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  {</div>
|
|
310
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
311
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  {</div>
|
|
312
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</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>
|
|
313
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</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>
|
|
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>  }</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">"\nPtr "</span> << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" "</span>;</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>  <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
|
|
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>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\tPointsTo: {empty}\n\n"</span>;</div>
|
|
321
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div>
|
|
322
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">else</span></div>
|
|
323
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div>
|
|
324
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\tPointsTo: { "</span>;</div>
|
|
325
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</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>
|
|
326
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  ++it)</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>() << *it << <span class="stringliteral">" "</span>;</div>
|
|
328
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"}\n\n"</span>;</div>
|
|
329
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div>
|
|
330
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</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">""</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>  <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>
|
|
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>  <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>
|
|
336
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ObjVar>(node) == <span class="keyword">false</span>)</div>
|
|
337
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">continue</span>;</div>
|
|
338
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
339
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</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>
|
|
340
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</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>
|
|
341
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DummyValVar>(node))</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">"DummyVal\n"</span>;</div>
|
|
343
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<DummyObjVar>(node))</div>
|
|
344
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</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>
|
|
345
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">else</span></div>
|
|
346
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div>
|
|
347
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVFModule::pagReadFromTXT</a>())</div>
|
|
348
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div>
|
|
349
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
350
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  {</div>
|
|
351
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</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>
|
|
352
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Source Loc: "</span></div>
|
|
353
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</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>
|
|
354
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div>
|
|
355
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div>
|
|
356
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</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="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a84edebc59e29f2cc1b89a699b8641f30"> 321</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>
|
|
361
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> {</div>
|
|
362
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</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>
|
|
363
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nCallSite: "</span>;</div>
|
|
364
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</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>
|
|
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">"\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>
|
|
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">"\t with Targets: "</span>;</div>
|
|
367
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  </div>
|
|
368
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">if</span> (!targets.empty())</div>
|
|
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>  FunctionSet::const_iterator fit = targets.begin();</div>
|
|
371
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  FunctionSet::const_iterator feit = targets.end();</div>
|
|
372
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">for</span> (; fit != feit; ++fit)</div>
|
|
373
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div>
|
|
374
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *fit;</div>
|
|
375
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</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>
|
|
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>  }</div>
|
|
378
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">else</span></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>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n\tNo Targets!"</span>;</div>
|
|
381
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</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"</span>;</div>
|
|
384
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> }</div>
|
|
385
385
|
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  </div>
|
|
386
|
-
<div class="line"><a name="
|
|
387
|
-
<div class="line"><a name="
|
|
388
|
-
<div class="line"><a name="
|
|
389
|
-
<div class="line"><a name="l00353"></a><span class="lineno"
|
|
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>  <span class="
|
|
393
|
-
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> 
|
|
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> 
|
|
398
|
-
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> 
|
|
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>  <span class="
|
|
403
|
-
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> 
|
|
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> 
|
|
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>() << <span class="stringliteral">"\
|
|
412
|
-
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> 
|
|
413
|
-
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> 
|
|
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> 
|
|
417
|
-
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> 
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="l00388"></a><span class="lineno"
|
|
422
|
-
<div class="line"><a name="
|
|
423
|
-
<div class="line"><a name="
|
|
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>  </div>
|
|
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>  </div>
|
|
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> 
|
|
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> 
|
|
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="
|
|
442
|
-
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> 
|
|
386
|
+
<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3"> 350</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">PointerAnalysis::printIndCSTargets</a>()</div>
|
|
387
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> {</div>
|
|
388
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"==================Function Pointer Targets==================\n"</span>;</div>
|
|
389
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</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>
|
|
390
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  CallEdgeMap::const_iterator it = callEdges.begin();</div>
|
|
391
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  CallEdgeMap::const_iterator eit = callEdges.end();</div>
|
|
392
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div>
|
|
393
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  {</div>
|
|
394
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = it->first;</div>
|
|
395
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a>& targets = it->second;</div>
|
|
396
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">printIndCSTargets</a>(cs, targets);</div>
|
|
397
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div>
|
|
398
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  </div>
|
|
399
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</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>
|
|
400
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  CallSiteToFunPtrMap::const_iterator csIt = indCS.begin();</div>
|
|
401
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  CallSiteToFunPtrMap::const_iterator csEit = indCS.end();</div>
|
|
402
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">for</span> (; csIt != csEit; ++csIt)</div>
|
|
403
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  {</div>
|
|
404
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = csIt->first;</div>
|
|
405
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#abdacd060691add054839aa183babe095">hasIndCSCallees</a>(cs) == <span class="keyword">false</span>)</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>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nNodeID: "</span> << csIt->second;</div>
|
|
408
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nCallSite: "</span>;</div>
|
|
409
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</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>
|
|
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">"\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>
|
|
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">"\n\t!!!has no targets!!!\n"</span>;</div>
|
|
412
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div>
|
|
413
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div>
|
|
414
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</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
|
+
<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440"> 385</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>
|
|
419
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> {</div>
|
|
420
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  </div>
|
|
421
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</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>
|
|
422
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</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>
|
|
423
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  ii != ie; ii++)</div>
|
|
424
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  {</div>
|
|
425
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  </div>
|
|
426
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</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>
|
|
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>  <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>
|
|
429
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">return</span>;</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>  </div>
|
|
432
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</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>
|
|
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>  <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>
|
|
435
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  </div>
|
|
436
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">if</span>(obj-><a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div>
|
|
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>  <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>
|
|
439
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</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>
|
|
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="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>
|
|
442
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">continue</span>;</div>
|
|
443
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="
|
|
445
|
-
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> 
|
|
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>  <
|
|
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>  <
|
|
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> 
|
|
455
|
-
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> 
|
|
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> 
|
|
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="
|
|
464
|
-
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> 
|
|
465
|
-
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> 
|
|
466
|
-
<div class="line"><a name="l00434"></a><span class="lineno"
|
|
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="
|
|
473
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> 
|
|
474
|
-
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> 
|
|
475
|
-
<div class="line"><a name="l00443"></a><span class="lineno"
|
|
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> 
|
|
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> 
|
|
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> 
|
|
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> 
|
|
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="
|
|
499
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> 
|
|
500
|
-
<div class="line"><a name="
|
|
501
|
-
<div class="line"><a name="
|
|
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> 
|
|
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="
|
|
519
|
-
<div class="line"><a name="
|
|
520
|
-
<div class="line"><a name="
|
|
521
|
-
<div class="line"><a name="l00491"></a><span class="lineno"
|
|
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> 
|
|
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>  <
|
|
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="
|
|
531
|
-
<div class="line"><a name="
|
|
532
|
-
<div class="line"><a name="
|
|
533
|
-
<div class="line"><a name="l00507"></a><span class="lineno"
|
|
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> 
|
|
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>  <span class="keywordflow">
|
|
539
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> 
|
|
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> 
|
|
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> 
|
|
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>  <a class="code" href="classSVF_1_1CallSite.html">
|
|
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> 
|
|
551
|
-
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="
|
|
552
|
-
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="
|
|
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> 
|
|
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> 
|
|
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> 
|
|
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> 
|
|
444
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</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>
|
|
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>  newEdges[cs].insert(callee);</div>
|
|
447
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(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>  <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>
|
|
450
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="comment">// FIXME: do we need to update llvm call graph here?</span></div>
|
|
451
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="comment">// The indirect call is maintained by ourself, We may update llvm's when we need to</span></div>
|
|
452
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="comment">//CallGraphNode* callgraphNode = callgraph->getOrInsertFunction(cs.getCaller());</span></div>
|
|
453
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="comment">//callgraphNode->addCalledFunction(cs,callgraph->getOrInsertFunction(callee));</span></div>
|
|
454
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div>
|
|
455
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  }</div>
|
|
456
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</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> <span class="comment">/*</span></div>
|
|
461
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="comment"> * Get virtual functions "vfns" based on CHA</span></div>
|
|
462
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="comment"> */</span></div>
|
|
463
|
+
<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437"> 431</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>
|
|
464
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> {</div>
|
|
465
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</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>
|
|
466
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</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>
|
|
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>  </div>
|
|
469
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="comment">/*</span></div>
|
|
470
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="comment"> * Get virtual functions "vfns" from PoninsTo set "target" for callsite "cs"</span></div>
|
|
471
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="comment"> */</span></div>
|
|
472
|
+
<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2"> 440</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>
|
|
473
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> {</div>
|
|
474
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  </div>
|
|
475
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</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>
|
|
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>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFGlobalValue*></a> vtbls;</div>
|
|
478
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</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>
|
|
479
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</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>
|
|
480
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</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_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>
|
|
482
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">if</span> (ptdnode-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</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="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>
|
|
485
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  {</div>
|
|
486
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">if</span> (chaVtbls.find(vtbl) != chaVtbls.end())</div>
|
|
487
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  vtbls.insert(vtbl);</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>  }</div>
|
|
490
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div>
|
|
491
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</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>
|
|
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>  </div>
|
|
495
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="comment">/*</span></div>
|
|
496
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="comment"> * Connect callsite "cs" to virtual functions in "vfns"</span></div>
|
|
497
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="comment"> */</span></div>
|
|
498
|
+
<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3"> 466</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>
|
|
499
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> {</div>
|
|
500
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">for</span> (VFunSet::const_iterator fit = vfns.begin(),</div>
|
|
501
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  feit = vfns.end(); fit != feit; ++fit)</div>
|
|
502
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div>
|
|
503
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *fit;</div>
|
|
504
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  callee = callee-><a class="code" href="classSVF_1_1SVFFunction.html#a804a41f4eb078586f20f7d5755ea6fdd">getDefFunForMultipleModule</a>();</div>
|
|
505
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</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>
|
|
506
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">continue</span>;</div>
|
|
507
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</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>
|
|
508
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</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>
|
|
509
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  {</div>
|
|
510
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  newEdges[cs].insert(callee);</div>
|
|
511
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div>
|
|
512
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</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>
|
|
513
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</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>
|
|
514
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  }</div>
|
|
515
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  }</div>
|
|
516
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> }</div>
|
|
517
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  </div>
|
|
518
|
+
<div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba"> 488</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>
|
|
519
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> {</div>
|
|
520
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</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>
|
|
521
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  </div>
|
|
522
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#aa7f15c74eb438be78fcc028534477478">VFunSet</a> vfns;</div>
|
|
523
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#abf71061d93d4a3b32246f19dc71e5127">Options::ConnectVCallOnCHA</a>())</div>
|
|
524
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">getVFnsFromCHA</a>(cs, vfns);</div>
|
|
525
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">else</span></div>
|
|
526
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2">getVFnsFromPts</a>(cs, target, vfns);</div>
|
|
527
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">connectVCallToVFns</a>(cs, vfns, newEdges);</div>
|
|
528
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> }</div>
|
|
529
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  </div>
|
|
530
|
+
<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#a7accf4e4db4001716e53d98ce5217ac8"> 504</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>
|
|
531
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> {</div>
|
|
532
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="comment">// check for must alias cases, whether our alias analysis produce the correct results</span></div>
|
|
533
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</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>
|
|
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="keywordflow">if</span>(!checkFun->isUncalledFunction())</div>
|
|
536
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</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>
|
|
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">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>
|
|
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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = callNode->getCallSite();</div>
|
|
541
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(svfInst) == checkFun)</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>  </div>
|
|
544
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(svfInst);</div>
|
|
545
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  assert(cs.<a class="code" href="classSVF_1_1CallSite.html#a6b7a7e6da24425a3b15aa1803c673288">getNumArgOperands</a>() == 2</div>
|
|
546
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  && <span class="stringliteral">"arguments should be two pointers!!"</span>);</div>
|
|
547
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</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>
|
|
548
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</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>
|
|
549
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</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>
|
|
550
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  </div>
|
|
551
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordtype">bool</span> checkSuccessful = <span class="keyword">false</span>;</div>
|
|
552
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</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>
|
|
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="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>
|
|
555
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  checkSuccessful = <span class="keyword">true</span>;</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">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>
|
|
558
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  {</div>
|
|
559
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>)</div>
|
|
560
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  checkSuccessful = <span class="keyword">true</span>;</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">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>
|
|
563
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  {</div>
|
|
564
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="comment">// change to must alias when our analysis support it</span></div>
|
|
565
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</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>
|
|
566
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
567
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  }</div>
|
|
568
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</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>
|
|
569
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  {</div>
|
|
570
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="comment">// change to partial alias when our analysis support it</span></div>
|
|
571
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>)</div>
|
|
572
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  checkSuccessful = <span class="keyword">true</span>;</div>
|
|
573
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  }</div>
|
|
574
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">else</span></div>
|
|
575
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported alias check!!"</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>  <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>
|
|
578
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</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>
|
|
579
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>  <
|
|
581
|
-
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> 
|
|
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">
|
|
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> 
|
|
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="
|
|
596
|
-
<div class="line"><a name="
|
|
597
|
-
<div class="line"><a name="
|
|
598
|
-
<div class="line"><a name="l00575"></a><span class="lineno"
|
|
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> 
|
|
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>  <span class="keywordflow">
|
|
604
|
-
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> 
|
|
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> 
|
|
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> 
|
|
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>  <a class="code" href="
|
|
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> 
|
|
615
|
-
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="
|
|
616
|
-
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="
|
|
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> 
|
|
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> 
|
|
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> 
|
|
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> 
|
|
580
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">if</span> (checkSuccessful)</div>
|
|
581
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</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>
|
|
582
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  << svfInst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">")\n"</span>;</div>
|
|
583
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">else</span></div>
|
|
584
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  {</div>
|
|
585
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</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>
|
|
586
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  << <span class="stringliteral">" check <id:"</span> << id1 << <span class="stringliteral">", id:"</span> << id2</div>
|
|
587
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  << <span class="stringliteral">"> at ("</span> << svfInst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">")\n"</span>;</div>
|
|
588
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div>
|
|
589
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  }</div>
|
|
590
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  }</div>
|
|
591
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</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="l00572"></a><span class="lineno"><a class="line" href="classSVF_1_1PointerAnalysis.html#ab982e6bbd99a2f9a0a3abbebeeb00dcc"> 572</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>
|
|
596
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> {</div>
|
|
597
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  </div>
|
|
598
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</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>
|
|
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>  <span class="keywordflow">if</span>(!checkFun->isUncalledFunction())</div>
|
|
601
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</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>
|
|
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">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>
|
|
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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = callNode->getCallSite();</div>
|
|
606
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(svfInst) == checkFun)</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>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> call = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">getSVFCallSite</a>(svfInst);</div>
|
|
609
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  assert(call.<a class="code" href="classSVF_1_1CallSite.html#a2a1904e6f381a0f8ac30265f2dfc48c8">arg_size</a>() == 2</div>
|
|
610
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  && <span class="stringliteral">"arguments should be two pointers!!"</span>);</div>
|
|
611
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</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>
|
|
612
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</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>
|
|
613
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</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>
|
|
614
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  </div>
|
|
615
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordtype">bool</span> expectedFailure = <span class="keyword">false</span>;</div>
|
|
616
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</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>
|
|
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="comment">// change to must alias when our analysis support it</span></div>
|
|
619
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>)</div>
|
|
620
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  expectedFailure = <span class="keyword">true</span>;</div>
|
|
621
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  }</div>
|
|
622
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</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>
|
|
623
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  {</div>
|
|
624
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="comment">// change to partial alias when our analysis support it</span></div>
|
|
625
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</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>
|
|
626
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  expectedFailure = <span class="keyword">true</span>;</div>
|
|
627
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div>
|
|
628
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordflow">else</span></div>
|
|
629
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported alias check!!"</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>  <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>
|
|
632
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</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>
|
|
633
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>  <
|
|
635
|
-
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> 
|
|
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">
|
|
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>  }</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>
|
|
634
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">if</span> (expectedFailure)</div>
|
|
635
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</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>
|
|
636
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</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>
|
|
637
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">else</span></div>
|
|
638
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  {</div>
|
|
639
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</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>
|
|
640
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</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>
|
|
641
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div>
|
|
642
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  }</div>
|
|
643
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  }</div>
|
|
644
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</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>
|
|
650
647
|
</div><!-- fragment --></div><!-- contents -->
|
|
651
648
|
<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>
|
|
652
649
|
<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>
|
|
@@ -663,15 +660,14 @@ $(function() {
|
|
|
663
660
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_acbb517523fd30708ed1a93f306cd3545"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#acbb517523fd30708ed1a93f306cd3545">SVF::PointerAnalysis::aliasTestPartialAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestPartialAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00117">PointerAnalysis.h:117</a></div></div>
|
|
664
661
|
<div class="ttc" id="acJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
|
|
665
662
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00384">GenericGraph.h:384</a></div></div>
|
|
666
|
-
<div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00351">SVFType.h:351</a></div></div>
|
|
667
663
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00138">IRGraph.h:138</a></div></div>
|
|
668
664
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac0c0855918cb2cdc3d8ebc175acfbd4da66b132e5ab8c8746eb22e58d199b4c2a"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4da66b132e5ab8c8746eb22e58d199b4c2a">SVF::PointerAnalysis::BaseImpl</a></div><div class="ttdeci">@ BaseImpl</div><div class="ttdoc">Represents PointerAnalaysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00096">PointerAnalysis.h:96</a></div></div>
|
|
669
665
|
<div class="ttc" id="aclassSVF_1_1CallSite_html_abe38a348db833b797f32ecc05f67100c"><div class="ttname"><a href="classSVF_1_1CallSite.html#abe38a348db833b797f32ecc05f67100c">SVF::CallSite::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01163">SVFValue.h:1163</a></div></div>
|
|
670
666
|
<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>
|
|
671
667
|
<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>
|
|
672
668
|
<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>
|
|
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#
|
|
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#
|
|
669
|
+
<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#l00257">PointerAnalysis.cpp:257</a></div></div>
|
|
670
|
+
<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#l00350">PointerAnalysis.cpp:350</a></div></div>
|
|
675
671
|
<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>
|
|
676
672
|
<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>
|
|
677
673
|
<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>
|
|
@@ -709,7 +705,7 @@ $(function() {
|
|
|
709
705
|
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
710
706
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
711
707
|
<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>
|
|
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#
|
|
708
|
+
<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#l00466">PointerAnalysis.cpp:466</a></div></div>
|
|
713
709
|
<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>
|
|
714
710
|
<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>
|
|
715
711
|
<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>
|
|
@@ -734,12 +730,12 @@ $(function() {
|
|
|
734
730
|
<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>
|
|
735
731
|
<div class="ttc" id="aCallGraphBuilder_8h_html"><div class="ttname"><a href="CallGraphBuilder_8h.html">CallGraphBuilder.h</a></div></div>
|
|
736
732
|
<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>
|
|
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#
|
|
733
|
+
<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#l00385">PointerAnalysis.cpp:385</a></div></div>
|
|
738
734
|
<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>
|
|
739
735
|
<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>
|
|
740
736
|
<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>
|
|
741
737
|
<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>
|
|
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#
|
|
738
|
+
<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#l00488">PointerAnalysis.cpp:488</a></div></div>
|
|
743
739
|
<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>
|
|
744
740
|
<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>
|
|
745
741
|
<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>
|
|
@@ -765,7 +761,7 @@ $(function() {
|
|
|
765
761
|
<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>
|
|
766
762
|
<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>
|
|
767
763
|
<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>
|
|
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#
|
|
764
|
+
<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#l00495">SymbolTableInfo.cpp:495</a></div></div>
|
|
769
765
|
<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>
|
|
770
766
|
<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>
|
|
771
767
|
<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>
|
|
@@ -776,11 +772,11 @@ $(function() {
|
|
|
776
772
|
<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>
|
|
777
773
|
<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>
|
|
778
774
|
<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>
|
|
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#
|
|
775
|
+
<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#l00440">PointerAnalysis.cpp:440</a></div></div>
|
|
780
776
|
<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>
|
|
781
777
|
<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>
|
|
782
778
|
<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>
|
|
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#
|
|
779
|
+
<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#l01354">LLVMUtil.cpp:1354</a></div></div>
|
|
784
780
|
<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>
|
|
785
781
|
<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>
|
|
786
782
|
<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>
|
|
@@ -789,13 +785,13 @@ $(function() {
|
|
|
789
785
|
<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>
|
|
790
786
|
<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>
|
|
791
787
|
<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>
|
|
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#
|
|
788
|
+
<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#l00431">PointerAnalysis.cpp:431</a></div></div>
|
|
793
789
|
<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>
|
|
794
790
|
<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>
|
|
795
791
|
<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>
|
|
796
792
|
<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>
|
|
797
793
|
<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>
|
|
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#
|
|
794
|
+
<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#l00480">SymbolTableInfo.cpp:480</a></div></div>
|
|
799
795
|
<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>
|
|
800
796
|
<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>
|
|
801
797
|
<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>
|
|
@@ -810,7 +806,7 @@ $(function() {
|
|
|
810
806
|
<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>
|
|
811
807
|
<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>
|
|
812
808
|
<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>
|
|
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#
|
|
809
|
+
<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#l00572">PointerAnalysis.cpp:572</a></div></div>
|
|
814
810
|
<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>
|
|
815
811
|
<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>
|
|
816
812
|
<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>
|
|
@@ -819,7 +815,7 @@ $(function() {
|
|
|
819
815
|
<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>
|
|
820
816
|
<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>
|
|
821
817
|
<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>
|
|
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#
|
|
818
|
+
<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#l00504">PointerAnalysis.cpp:504</a></div></div>
|
|
823
819
|
<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>
|
|
824
820
|
<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>
|
|
825
821
|
<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>
|