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
|
@@ -247,8 +247,6 @@ Functions</h2></td></tr>
|
|
|
247
247
|
<tr class="separator:a4f803756f0a73e8564d9544ce27be1c9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
248
248
|
<tr class="memitem:a08fbef6fe3e2af96a49f79ce23accb01"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">isValVtbl</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</td></tr>
|
|
249
249
|
<tr class="separator:a08fbef6fe3e2af96a49f79ce23accb01"><td class="memSeparator" colspan="2"> </td></tr>
|
|
250
|
-
<tr class="memitem:a45da980cb7c085942bb8e6010db9d84f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a45da980cb7c085942bb8e6010db9d84f">isLoadVtblInst</a> (const <a class="el" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *loadInst)</td></tr>
|
|
251
|
-
<tr class="separator:a45da980cb7c085942bb8e6010db9d84f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
252
250
|
<tr class="memitem:ab1b4c565ae6be788b934defc21a5cfaf"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">isVirtualCallSite</a> (const <a class="el" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a> *cs)</td></tr>
|
|
253
251
|
<tr class="separator:ab1b4c565ae6be788b934defc21a5cfaf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
254
252
|
<tr class="memitem:a6dd1590b82d2bd86766886bd21bc2b72"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">isConstructor</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</td></tr>
|
|
@@ -404,16 +402,16 @@ Functions</h2></td></tr>
|
|
|
404
402
|
</table>
|
|
405
403
|
</div><div class="memdoc">
|
|
406
404
|
|
|
407
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
408
|
-
<div class="fragment"><div class="line"><a name="
|
|
409
|
-
<div class="line"><a name="
|
|
410
|
-
<div class="line"><a name="
|
|
411
|
-
<div class="line"><a name="
|
|
412
|
-
<div class="line"><a name="
|
|
413
|
-
<div class="line"><a name="
|
|
414
|
-
<div class="line"><a name="
|
|
415
|
-
<div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
405
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01339">1339</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
406
|
+
<div class="fragment"><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> {</div>
|
|
407
|
+
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
408
|
+
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  llvm::raw_string_ostream rawstr(str);</div>
|
|
409
|
+
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
410
|
+
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  rawstr << <span class="stringliteral">" "</span> << *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> << <span class="stringliteral">" "</span>;</div>
|
|
411
|
+
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  <span class="keywordflow">else</span></div>
|
|
412
|
+
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  rawstr << <span class="stringliteral">" llvm type is null"</span>;</div>
|
|
413
|
+
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
414
|
+
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> }</div>
|
|
417
415
|
</div><!-- fragment -->
|
|
418
416
|
</div>
|
|
419
417
|
</div>
|
|
@@ -433,16 +431,16 @@ Functions</h2></td></tr>
|
|
|
433
431
|
</table>
|
|
434
432
|
</div><div class="memdoc">
|
|
435
433
|
|
|
436
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
437
|
-
<div class="fragment"><div class="line"><a name="
|
|
438
|
-
<div class="line"><a name="
|
|
439
|
-
<div class="line"><a name="
|
|
440
|
-
<div class="line"><a name="
|
|
441
|
-
<div class="line"><a name="
|
|
442
|
-
<div class="line"><a name="
|
|
443
|
-
<div class="line"><a name="
|
|
444
|
-
<div class="line"><a name="
|
|
445
|
-
<div class="line"><a name="
|
|
434
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01328">1328</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
435
|
+
<div class="fragment"><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> {</div>
|
|
436
|
+
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
437
|
+
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  llvm::raw_string_ostream rawstr(str);</div>
|
|
438
|
+
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <span class="keywordflow">if</span> (val)</div>
|
|
439
|
+
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  rawstr << <span class="stringliteral">" "</span> << *val << <span class="stringliteral">" "</span>;</div>
|
|
440
|
+
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  <span class="keywordflow">else</span></div>
|
|
441
|
+
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  rawstr << <span class="stringliteral">" llvm Value is null"</span>;</div>
|
|
442
|
+
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
443
|
+
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> }</div>
|
|
446
444
|
</div><!-- fragment -->
|
|
447
445
|
</div>
|
|
448
446
|
</div>
|
|
@@ -629,28 +627,28 @@ Functions</h2></td></tr>
|
|
|
629
627
|
<p>get normal case value</p>
|
|
630
628
|
<p>For larger number, we preserve case value just -1 now see more: <a href="https://github.com/SVF-tools/SVF/pull/992">https://github.com/SVF-tools/SVF/pull/992</a></p>
|
|
631
629
|
|
|
632
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
633
|
-
<div class="fragment"><div class="line"><a name="
|
|
634
|
-
<div class="line"><a name="
|
|
635
|
-
<div class="line"><a name="
|
|
636
|
-
<div class="line"><a name="
|
|
637
|
-
<div class="line"><a name="
|
|
638
|
-
<div class="line"><a name="
|
|
639
|
-
<div class="line"><a name="
|
|
640
|
-
<div class="line"><a name="
|
|
641
|
-
<div class="line"><a name="
|
|
642
|
-
<div class="line"><a name="
|
|
643
|
-
<div class="line"><a name="
|
|
644
|
-
<div class="line"><a name="
|
|
645
|
-
<div class="line"><a name="
|
|
646
|
-
<div class="line"><a name="
|
|
647
|
-
<div class="line"><a name="
|
|
648
|
-
<div class="line"><a name="
|
|
649
|
-
<div class="line"><a name="
|
|
650
|
-
<div class="line"><a name="
|
|
651
|
-
<div class="line"><a name="
|
|
652
|
-
<div class="line"><a name="
|
|
653
|
-
<div class="line"><a name="
|
|
630
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01301">1301</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
631
|
+
<div class="fragment"><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> {</div>
|
|
632
|
+
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succBB = succBB2CondVal.first;</div>
|
|
633
|
+
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* caseValue = succBB2CondVal.second;</div>
|
|
634
|
+
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> val;</div>
|
|
635
|
+
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>  <span class="keywordflow">if</span> (caseValue == <span class="keyword">nullptr</span> || succBB == switchInst.getDefaultDest())</div>
|
|
636
|
+
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  {</div>
|
|
637
|
+
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  val = -1;</div>
|
|
638
|
+
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  }</div>
|
|
639
|
+
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  <span class="keywordflow">else</span></div>
|
|
640
|
+
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  {</div>
|
|
641
|
+
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>  <span class="keywordflow">if</span> (caseValue->getBitWidth() <= 64)</div>
|
|
642
|
+
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  {</div>
|
|
643
|
+
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  val = caseValue->getSExtValue();</div>
|
|
644
|
+
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  }</div>
|
|
645
|
+
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  <span class="keywordflow">else</span></div>
|
|
646
|
+
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>  {</div>
|
|
647
|
+
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>  val = -1;</div>
|
|
648
|
+
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  }</div>
|
|
649
|
+
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  }</div>
|
|
650
|
+
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <span class="keywordflow">return</span> val;</div>
|
|
651
|
+
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> }</div>
|
|
654
652
|
</div><!-- fragment -->
|
|
655
653
|
</div>
|
|
656
654
|
</div>
|
|
@@ -670,23 +668,23 @@ Functions</h2></td></tr>
|
|
|
670
668
|
</table>
|
|
671
669
|
</div><div class="memdoc">
|
|
672
670
|
|
|
673
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
674
|
-
<div class="fragment"><div class="line"><a name="
|
|
675
|
-
<div class="line"><a name="
|
|
676
|
-
<div class="line"><a name="
|
|
677
|
-
<div class="line"><a name="
|
|
678
|
-
<div class="line"><a name="
|
|
679
|
-
<div class="line"><a name="
|
|
680
|
-
<div class="line"><a name="
|
|
681
|
-
<div class="line"><a name="
|
|
682
|
-
<div class="line"><a name="
|
|
683
|
-
<div class="line"><a name="
|
|
684
|
-
<div class="line"><a name="
|
|
685
|
-
<div class="line"><a name="
|
|
686
|
-
<div class="line"><a name="
|
|
687
|
-
<div class="line"><a name="
|
|
688
|
-
<div class="line"><a name="
|
|
689
|
-
<div class="line"><a name="
|
|
671
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01209">1209</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
672
|
+
<div class="fragment"><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> {</div>
|
|
673
|
+
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> className = <span class="stringliteral">""</span>;</div>
|
|
674
|
+
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>  <span class="keywordflow">if</span> (!((SVFUtil::cast<StructType>(ty))->isLiteral()))</div>
|
|
675
|
+
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>  {</div>
|
|
676
|
+
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> elemTypeName = ty->getStructName().str();</div>
|
|
677
|
+
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>  <span class="keywordflow">if</span> (elemTypeName.compare(0, <a class="code" href="LLVMUtil_8cpp.html#a5f8da60b0fcc28445f508f4e42513a82">clsName</a>.size(), <a class="code" href="LLVMUtil_8cpp.html#a5f8da60b0fcc28445f508f4e42513a82">clsName</a>) == 0)</div>
|
|
678
|
+
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>  {</div>
|
|
679
|
+
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>  className = elemTypeName.substr(<a class="code" href="LLVMUtil_8cpp.html#a5f8da60b0fcc28445f508f4e42513a82">clsName</a>.size());</div>
|
|
680
|
+
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>  }</div>
|
|
681
|
+
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (elemTypeName.compare(0, <a class="code" href="LLVMUtil_8cpp.html#a61c158146c07e77234eb4a2f9b940821">structName</a>.size(), <a class="code" href="LLVMUtil_8cpp.html#a61c158146c07e77234eb4a2f9b940821">structName</a>) == 0)</div>
|
|
682
|
+
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>  {</div>
|
|
683
|
+
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  className = elemTypeName.substr(<a class="code" href="LLVMUtil_8cpp.html#a61c158146c07e77234eb4a2f9b940821">structName</a>.size());</div>
|
|
684
|
+
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  }</div>
|
|
685
|
+
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  }</div>
|
|
686
|
+
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  <span class="keywordflow">return</span> className;</div>
|
|
687
|
+
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> }</div>
|
|
690
688
|
</div><!-- fragment -->
|
|
691
689
|
</div>
|
|
692
690
|
</div>
|
|
@@ -706,35 +704,35 @@ Functions</h2></td></tr>
|
|
|
706
704
|
</table>
|
|
707
705
|
</div><div class="memdoc">
|
|
708
706
|
|
|
709
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
710
|
-
<div class="fragment"><div class="line"><a name="
|
|
711
|
-
<div class="line"><a name="
|
|
712
|
-
<div class="line"><a name="
|
|
713
|
-
<div class="line"><a name="
|
|
714
|
-
<div class="line"><a name="
|
|
715
|
-
<div class="line"><a name="
|
|
716
|
-
<div class="line"><a name="
|
|
717
|
-
<div class="line"><a name="
|
|
718
|
-
<div class="line"><a name="
|
|
719
|
-
<div class="line"><a name="
|
|
720
|
-
<div class="line"><a name="
|
|
721
|
-
<div class="line"><a name="
|
|
722
|
-
<div class="line"><a name="
|
|
723
|
-
<div class="line"><a name="
|
|
724
|
-
<div class="line"><a name="
|
|
725
|
-
<div class="line"><a name="
|
|
726
|
-
<div class="line"><a name="
|
|
727
|
-
<div class="line"><a name="
|
|
728
|
-
<div class="line"><a name="
|
|
729
|
-
<div class="line"><a name="
|
|
730
|
-
<div class="line"><a name="
|
|
731
|
-
<div class="line"><a name="
|
|
732
|
-
<div class="line"><a name="
|
|
733
|
-
<div class="line"><a name="
|
|
734
|
-
<div class="line"><a name="
|
|
735
|
-
<div class="line"><a name="
|
|
736
|
-
<div class="line"><a name="
|
|
737
|
-
<div class="line"><a name="
|
|
707
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01227">1227</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
708
|
+
<div class="fragment"><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> {</div>
|
|
709
|
+
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> thisPtrClassName = <span class="stringliteral">""</span>;</div>
|
|
710
|
+
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a>* N = inst->getMetadata(<span class="stringliteral">"VCallPtrType"</span>))</div>
|
|
711
|
+
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>  {</div>
|
|
712
|
+
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">MDString</a>* mdstr = SVFUtil::cast<MDString>(N->getOperand(0).get());</div>
|
|
713
|
+
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>  thisPtrClassName = mdstr->getString().str();</div>
|
|
714
|
+
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  }</div>
|
|
715
|
+
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>  <span class="keywordflow">if</span> (thisPtrClassName.size() == 0)</div>
|
|
716
|
+
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>  {</div>
|
|
717
|
+
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* thisPtr = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">LLVMUtil::getVCallThisPtr</a>(inst);</div>
|
|
718
|
+
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* ptrTy = SVFUtil::dyn_cast<PointerType>(thisPtr->getType()))</div>
|
|
719
|
+
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>  <span class="comment">// TODO: getPtrElementType need type inference</span></div>
|
|
720
|
+
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* st = SVFUtil::dyn_cast<StructType>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(ptrTy)))</div>
|
|
721
|
+
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>  thisPtrClassName = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a207fe02ded216fd0412fc894e13bee6e">getClassNameFromType</a>(st);</div>
|
|
722
|
+
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  }</div>
|
|
723
|
+
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>  </div>
|
|
724
|
+
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>  <span class="keywordtype">size_t</span> found = thisPtrClassName.find_last_not_of(<span class="stringliteral">"0123456789"</span>);</div>
|
|
725
|
+
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  <span class="keywordflow">if</span> (found != std::string::npos)</div>
|
|
726
|
+
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  {</div>
|
|
727
|
+
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  <span class="keywordflow">if</span> (found != thisPtrClassName.size() - 1 &&</div>
|
|
728
|
+
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>  thisPtrClassName[found] == <span class="charliteral">'.'</span>)</div>
|
|
729
|
+
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>  {</div>
|
|
730
|
+
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>  <span class="keywordflow">return</span> thisPtrClassName.substr(0, found);</div>
|
|
731
|
+
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  }</div>
|
|
732
|
+
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  }</div>
|
|
733
|
+
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  </div>
|
|
734
|
+
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  <span class="keywordflow">return</span> thisPtrClassName;</div>
|
|
735
|
+
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> }</div>
|
|
738
736
|
</div><!-- fragment -->
|
|
739
737
|
</div>
|
|
740
738
|
</div>
|
|
@@ -754,14 +752,14 @@ Functions</h2></td></tr>
|
|
|
754
752
|
</table>
|
|
755
753
|
</div><div class="memdoc">
|
|
756
754
|
|
|
757
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
758
|
-
<div class="fragment"><div class="line"><a name="
|
|
759
|
-
<div class="line"><a name="
|
|
760
|
-
<div class="line"><a name="
|
|
761
|
-
<div class="line"><a name="
|
|
762
|
-
<div class="line"><a name="
|
|
763
|
-
<div class="line"><a name="
|
|
764
|
-
<div class="line"><a name="
|
|
755
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01101">1101</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
756
|
+
<div class="fragment"><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> {</div>
|
|
757
|
+
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  assert((<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">LLVMUtil::isConstructor</a>(fun) || <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">LLVMUtil::isDestructor</a>(fun)) &&</div>
|
|
758
|
+
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  <span class="stringliteral">"not a constructor?"</span>);</div>
|
|
759
|
+
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  assert(fun->arg_size() >= 1 && <span class="stringliteral">"argument size >= 1?"</span>);</div>
|
|
760
|
+
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* thisPtr = &*(fun->arg_begin());</div>
|
|
761
|
+
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <span class="keywordflow">return</span> thisPtr;</div>
|
|
762
|
+
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> }</div>
|
|
765
763
|
</div><!-- fragment -->
|
|
766
764
|
</div>
|
|
767
765
|
</div>
|
|
@@ -988,16 +986,16 @@ Functions</h2></td></tr>
|
|
|
988
986
|
</table>
|
|
989
987
|
</div><div class="memdoc">
|
|
990
988
|
|
|
991
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
992
|
-
<div class="fragment"><div class="line"><a name="
|
|
993
|
-
<div class="line"><a name="
|
|
994
|
-
<div class="line"><a name="
|
|
995
|
-
<div class="line"><a name="
|
|
996
|
-
<div class="line"><a name="
|
|
997
|
-
<div class="line"><a name="
|
|
998
|
-
<div class="line"><a name="
|
|
999
|
-
<div class="line"><a name="
|
|
1000
|
-
<div class="line"><a name="
|
|
989
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01257">1257</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
990
|
+
<div class="fragment"><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> {</div>
|
|
991
|
+
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName;</div>
|
|
992
|
+
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a>* N = inst->getMetadata(<span class="stringliteral">"VCallFunName"</span>))</div>
|
|
993
|
+
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  {</div>
|
|
994
|
+
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">MDString</a>* mdstr = SVFUtil::cast<MDString>(N->getOperand(0).get());</div>
|
|
995
|
+
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>  funName = mdstr->getString().str();</div>
|
|
996
|
+
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>  }</div>
|
|
997
|
+
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  <span class="keywordflow">return</span> funName;</div>
|
|
998
|
+
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> }</div>
|
|
1001
999
|
</div><!-- fragment -->
|
|
1002
1000
|
</div>
|
|
1003
1001
|
</div>
|
|
@@ -1824,15 +1822,15 @@ Functions</h2></td></tr>
|
|
|
1824
1822
|
<p>switch i32 %0, label sw.default [ i32 0, label sw.bb i32 1, label sw.bb1 i32 2, label sw.bb1 i32 3, label sw.bb1 i32 4, label sw.bb3 i32 6, label sw.bb3 i32 7, label sw.bb3 ]</p>
|
|
1825
1823
|
<p>We can get every case basic block and related case value: [ {sw.default, -1}, {sw.bb, 0}, {sw.bb1, 1}, {sw.bb1, 2}, {sw.bb1, 3}, {sw.bb3, 4}, {sw.bb3, 6}, {sw.bb3, 7}, ] Note: default case value is nullptr </p>
|
|
1826
1824
|
|
|
1827
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1828
|
-
<div class="fragment"><div class="line"><a name="
|
|
1829
|
-
<div class="line"><a name="
|
|
1830
|
-
<div class="line"><a name="
|
|
1831
|
-
<div class="line"><a name="
|
|
1832
|
-
<div class="line"><a name="
|
|
1833
|
-
<div class="line"><a name="
|
|
1834
|
-
<div class="line"><a name="
|
|
1835
|
-
<div class="line"><a name="
|
|
1825
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01291">1291</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1826
|
+
<div class="fragment"><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> {</div>
|
|
1827
|
+
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  <span class="comment">// get default successor basic block and default case value (nullptr)</span></div>
|
|
1828
|
+
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  vec.push_back({switchInst.getDefaultDest(), <span class="keyword">nullptr</span>});</div>
|
|
1829
|
+
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  </div>
|
|
1830
|
+
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  <span class="comment">// get normal case value and it's successor basic block</span></div>
|
|
1831
|
+
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& cs : switchInst.cases())</div>
|
|
1832
|
+
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  vec.push_back({cs.getCaseSuccessor(), cs.getCaseValue()});</div>
|
|
1833
|
+
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> }</div>
|
|
1836
1834
|
</div><!-- fragment -->
|
|
1837
1835
|
</div>
|
|
1838
1836
|
</div>
|
|
@@ -1852,27 +1850,27 @@ Functions</h2></td></tr>
|
|
|
1852
1850
|
</table>
|
|
1853
1851
|
</div><div class="memdoc">
|
|
1854
1852
|
|
|
1855
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1856
|
-
<div class="fragment"><div class="line"><a name="
|
|
1857
|
-
<div class="line"><a name="
|
|
1858
|
-
<div class="line"><a name="
|
|
1859
|
-
<div class="line"><a name="
|
|
1860
|
-
<div class="line"><a name="
|
|
1861
|
-
<div class="line"><a name="
|
|
1862
|
-
<div class="line"><a name="
|
|
1863
|
-
<div class="line"><a name="
|
|
1864
|
-
<div class="line"><a name="
|
|
1865
|
-
<div class="line"><a name="
|
|
1866
|
-
<div class="line"><a name="
|
|
1867
|
-
<div class="line"><a name="
|
|
1868
|
-
<div class="line"><a name="
|
|
1869
|
-
<div class="line"><a name="
|
|
1870
|
-
<div class="line"><a name="
|
|
1871
|
-
<div class="line"><a name="
|
|
1872
|
-
<div class="line"><a name="
|
|
1873
|
-
<div class="line"><a name="
|
|
1874
|
-
<div class="line"><a name="
|
|
1875
|
-
<div class="line"><a name="
|
|
1853
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01029">1029</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1854
|
+
<div class="fragment"><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> {</div>
|
|
1855
|
+
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* ret = <span class="keyword">nullptr</span>;</div>
|
|
1856
|
+
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  </div>
|
|
1857
|
+
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& bb : *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
1858
|
+
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  {</div>
|
|
1859
|
+
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& inst : bb)</div>
|
|
1860
|
+
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  {</div>
|
|
1861
|
+
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* callbase = SVFUtil::dyn_cast<CallBase>(&inst))</div>
|
|
1862
|
+
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  {</div>
|
|
1863
|
+
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <span class="comment">// assert(cs.getCalledFunction() &&</span></div>
|
|
1864
|
+
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  <span class="comment">// "Indirect call detected in thunk func");</span></div>
|
|
1865
|
+
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <span class="comment">// assert(ret == nullptr && "multiple callsites in thunk func");</span></div>
|
|
1866
|
+
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  </div>
|
|
1867
|
+
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  ret = callbase->getCalledFunction();</div>
|
|
1868
|
+
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  }</div>
|
|
1869
|
+
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  }</div>
|
|
1870
|
+
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  }</div>
|
|
1871
|
+
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  </div>
|
|
1872
|
+
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keywordflow">return</span> ret;</div>
|
|
1873
|
+
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> }</div>
|
|
1876
1874
|
</div><!-- fragment -->
|
|
1877
1875
|
</div>
|
|
1878
1876
|
</div>
|
|
@@ -2010,28 +2008,28 @@ Functions</h2></td></tr>
|
|
|
2010
2008
|
</table>
|
|
2011
2009
|
</div><div class="memdoc">
|
|
2012
2010
|
|
|
2013
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2014
|
-
<div class="fragment"><div class="line"><a name="
|
|
2015
|
-
<div class="line"><a name="
|
|
2016
|
-
<div class="line"><a name="
|
|
2017
|
-
<div class="line"><a name="
|
|
2018
|
-
<div class="line"><a name="
|
|
2019
|
-
<div class="line"><a name="
|
|
2020
|
-
<div class="line"><a name="
|
|
2021
|
-
<div class="line"><a name="
|
|
2022
|
-
<div class="line"><a name="
|
|
2023
|
-
<div class="line"><a name="
|
|
2024
|
-
<div class="line"><a name="
|
|
2025
|
-
<div class="line"><a name="
|
|
2026
|
-
<div class="line"><a name="
|
|
2027
|
-
<div class="line"><a name="
|
|
2028
|
-
<div class="line"><a name="
|
|
2029
|
-
<div class="line"><a name="
|
|
2030
|
-
<div class="line"><a name="
|
|
2031
|
-
<div class="line"><a name="
|
|
2032
|
-
<div class="line"><a name="
|
|
2033
|
-
<div class="line"><a name="
|
|
2034
|
-
<div class="line"><a name="
|
|
2011
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01268">1268</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2012
|
+
<div class="fragment"><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> {</div>
|
|
2013
|
+
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* vfuncloadinst =</div>
|
|
2014
|
+
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  SVFUtil::dyn_cast<LoadInst>(cs->getCalledOperand());</div>
|
|
2015
|
+
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  assert(vfuncloadinst != <span class="keyword">nullptr</span>);</div>
|
|
2016
|
+
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfuncptr = vfuncloadinst->getPointerOperand();</div>
|
|
2017
|
+
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* vfuncptrgepinst =</div>
|
|
2018
|
+
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr);</div>
|
|
2019
|
+
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  User::const_op_iterator oi = vfuncptrgepinst->idx_begin();</div>
|
|
2020
|
+
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* idx = SVFUtil::dyn_cast<ConstantInt>(oi->get());</div>
|
|
2021
|
+
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> idx_value;</div>
|
|
2022
|
+
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  <span class="keywordflow">if</span> (idx == <span class="keyword">nullptr</span>)</div>
|
|
2023
|
+
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  {</div>
|
|
2024
|
+
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"vcall gep idx not constantint\n"</span>;</div>
|
|
2025
|
+
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  idx_value = 0;</div>
|
|
2026
|
+
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  }</div>
|
|
2027
|
+
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>  <span class="keywordflow">else</span></div>
|
|
2028
|
+
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  {</div>
|
|
2029
|
+
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  idx_value = (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)idx->getSExtValue();</div>
|
|
2030
|
+
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  }</div>
|
|
2031
|
+
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  <span class="keywordflow">return</span> idx_value;</div>
|
|
2032
|
+
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> }</div>
|
|
2035
2033
|
</div><!-- fragment -->
|
|
2036
2034
|
</div>
|
|
2037
2035
|
</div>
|
|
@@ -2051,17 +2049,17 @@ Functions</h2></td></tr>
|
|
|
2051
2049
|
</table>
|
|
2052
2050
|
</div><div class="memdoc">
|
|
2053
2051
|
|
|
2054
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2055
|
-
<div class="fragment"><div class="line"><a name="
|
|
2056
|
-
<div class="line"><a name="
|
|
2057
|
-
<div class="line"><a name="
|
|
2058
|
-
<div class="line"><a name="
|
|
2059
|
-
<div class="line"><a name="
|
|
2060
|
-
<div class="line"><a name="
|
|
2061
|
-
<div class="line"><a name="
|
|
2062
|
-
<div class="line"><a name="
|
|
2063
|
-
<div class="line"><a name="
|
|
2064
|
-
<div class="line"><a name="
|
|
2052
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01051">1051</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2053
|
+
<div class="fragment"><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> {</div>
|
|
2054
|
+
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordflow">if</span> (cs->paramHasAttr(0, llvm::Attribute::StructRet))</div>
|
|
2055
|
+
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  {</div>
|
|
2056
|
+
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">return</span> cs->getArgOperand(1);</div>
|
|
2057
|
+
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  }</div>
|
|
2058
|
+
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">else</span></div>
|
|
2059
|
+
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  {</div>
|
|
2060
|
+
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keywordflow">return</span> cs->getArgOperand(0);</div>
|
|
2061
|
+
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  }</div>
|
|
2062
|
+
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> }</div>
|
|
2065
2063
|
</div><!-- fragment -->
|
|
2066
2064
|
</div>
|
|
2067
2065
|
</div>
|
|
@@ -2081,18 +2079,18 @@ Functions</h2></td></tr>
|
|
|
2081
2079
|
</table>
|
|
2082
2080
|
</div><div class="memdoc">
|
|
2083
2081
|
|
|
2084
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2085
|
-
<div class="fragment"><div class="line"><a name="
|
|
2086
|
-
<div class="line"><a name="
|
|
2087
|
-
<div class="line"><a name="
|
|
2088
|
-
<div class="line"><a name="
|
|
2089
|
-
<div class="line"><a name="
|
|
2090
|
-
<div class="line"><a name="
|
|
2091
|
-
<div class="line"><a name="
|
|
2092
|
-
<div class="line"><a name="
|
|
2093
|
-
<div class="line"><a name="
|
|
2094
|
-
<div class="line"><a name="
|
|
2095
|
-
<div class="line"><a name="
|
|
2082
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01180">1180</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2083
|
+
<div class="fragment"><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> {</div>
|
|
2084
|
+
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* loadInst =</div>
|
|
2085
|
+
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  SVFUtil::dyn_cast<LoadInst>(cs->getCalledOperand());</div>
|
|
2086
|
+
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  assert(loadInst != <span class="keyword">nullptr</span>);</div>
|
|
2087
|
+
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfuncptr = loadInst->getPointerOperand();</div>
|
|
2088
|
+
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* gepInst =</div>
|
|
2089
|
+
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr);</div>
|
|
2090
|
+
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  assert(gepInst != <span class="keyword">nullptr</span>);</div>
|
|
2091
|
+
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vtbl = gepInst->getPointerOperand();</div>
|
|
2092
|
+
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  <span class="keywordflow">return</span> vtbl;</div>
|
|
2093
|
+
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> }</div>
|
|
2096
2094
|
</div><!-- fragment -->
|
|
2097
2095
|
</div>
|
|
2098
2096
|
</div>
|
|
@@ -2495,35 +2493,35 @@ Functions</h2></td></tr>
|
|
|
2495
2493
|
</div><div class="memdoc">
|
|
2496
2494
|
<p>TODO: on mac os function name is an empty string after demangling</p>
|
|
2497
2495
|
|
|
2498
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2499
|
-
<div class="fragment"><div class="line"><a name="
|
|
2500
|
-
<div class="line"><a name="
|
|
2501
|
-
<div class="line"><a name="
|
|
2502
|
-
<div class="line"><a name="
|
|
2503
|
-
<div class="line"><a name="
|
|
2504
|
-
<div class="line"><a name="
|
|
2505
|
-
<div class="line"><a name="
|
|
2506
|
-
<div class="line"><a name="
|
|
2507
|
-
<div class="line"><a name="
|
|
2508
|
-
<div class="line"><a name="
|
|
2509
|
-
<div class="line"><a name="
|
|
2510
|
-
<div class="line"><a name="
|
|
2511
|
-
<div class="line"><a name="
|
|
2512
|
-
<div class="line"><a name="
|
|
2513
|
-
<div class="line"><a name="
|
|
2514
|
-
<div class="line"><a name="
|
|
2515
|
-
<div class="line"><a name="
|
|
2516
|
-
<div class="line"><a name="
|
|
2517
|
-
<div class="line"><a name="
|
|
2518
|
-
<div class="line"><a name="
|
|
2519
|
-
<div class="line"><a name="
|
|
2520
|
-
<div class="line"><a name="
|
|
2521
|
-
<div class="line"><a name="
|
|
2522
|
-
<div class="line"><a name="
|
|
2523
|
-
<div class="line"><a name="
|
|
2524
|
-
<div class="line"><a name="
|
|
2525
|
-
<div class="line"><a name="
|
|
2526
|
-
<div class="line"><a name="
|
|
2496
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01110">1110</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2497
|
+
<div class="fragment"><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> {</div>
|
|
2498
|
+
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isDeclaration())</div>
|
|
2499
|
+
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2500
|
+
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funcName = <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getName().str();</div>
|
|
2501
|
+
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="LLVMUtil_8cpp.html#aff4f7c7a9aacf05a3a3c42ae24ea7d96">vfunPreLabel</a>.size(), <a class="code" href="LLVMUtil_8cpp.html#aff4f7c7a9aacf05a3a3c42ae24ea7d96">vfunPreLabel</a>) != 0)</div>
|
|
2502
|
+
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  {</div>
|
|
2503
|
+
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2504
|
+
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  }</div>
|
|
2505
|
+
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(funcName.c_str());</div>
|
|
2506
|
+
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div>
|
|
2507
|
+
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  {</div>
|
|
2508
|
+
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2509
|
+
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  }</div>
|
|
2510
|
+
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div>
|
|
2511
|
+
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div>
|
|
2512
|
+
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">"::"</span>);</div>
|
|
2513
|
+
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  <span class="keywordflow">if</span> (colon == std::string::npos)</div>
|
|
2514
|
+
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  {</div>
|
|
2515
|
+
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div>
|
|
2516
|
+
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  }</div>
|
|
2517
|
+
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <span class="keywordflow">else</span></div>
|
|
2518
|
+
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  {</div>
|
|
2519
|
+
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> =</div>
|
|
2520
|
+
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon + 2));</div>
|
|
2521
|
+
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  }</div>
|
|
2522
|
+
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="keywordflow">return</span> dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() > 0 &&</div>
|
|
2523
|
+
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>) == 0;</div>
|
|
2524
|
+
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> }</div>
|
|
2527
2525
|
</div><!-- fragment -->
|
|
2528
2526
|
</div>
|
|
2529
2527
|
</div>
|
|
@@ -2543,11 +2541,11 @@ Functions</h2></td></tr>
|
|
|
2543
2541
|
</table>
|
|
2544
2542
|
</div><div class="memdoc">
|
|
2545
2543
|
|
|
2546
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2547
|
-
<div class="fragment"><div class="line"><a name="
|
|
2548
|
-
<div class="line"><a name="
|
|
2549
|
-
<div class="line"><a name="
|
|
2550
|
-
<div class="line"><a name="
|
|
2544
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01023">1023</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2545
|
+
<div class="fragment"><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> {</div>
|
|
2546
|
+
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getName().str());</div>
|
|
2547
|
+
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keywordflow">return</span> dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">isThunkFunc</a>;</div>
|
|
2548
|
+
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> }</div>
|
|
2551
2549
|
</div><!-- fragment -->
|
|
2552
2550
|
</div>
|
|
2553
2551
|
</div>
|
|
@@ -2567,37 +2565,37 @@ Functions</h2></td></tr>
|
|
|
2567
2565
|
</table>
|
|
2568
2566
|
</div><div class="memdoc">
|
|
2569
2567
|
|
|
2570
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2571
|
-
<div class="fragment"><div class="line"><a name="
|
|
2572
|
-
<div class="line"><a name="
|
|
2573
|
-
<div class="line"><a name="
|
|
2574
|
-
<div class="line"><a name="
|
|
2575
|
-
<div class="line"><a name="
|
|
2576
|
-
<div class="line"><a name="
|
|
2577
|
-
<div class="line"><a name="
|
|
2578
|
-
<div class="line"><a name="
|
|
2579
|
-
<div class="line"><a name="
|
|
2580
|
-
<div class="line"><a name="
|
|
2581
|
-
<div class="line"><a name="
|
|
2582
|
-
<div class="line"><a name="
|
|
2583
|
-
<div class="line"><a name="
|
|
2584
|
-
<div class="line"><a name="
|
|
2585
|
-
<div class="line"><a name="
|
|
2586
|
-
<div class="line"><a name="
|
|
2587
|
-
<div class="line"><a name="
|
|
2588
|
-
<div class="line"><a name="
|
|
2589
|
-
<div class="line"><a name="
|
|
2590
|
-
<div class="line"><a name="
|
|
2591
|
-
<div class="line"><a name="
|
|
2592
|
-
<div class="line"><a name="
|
|
2593
|
-
<div class="line"><a name="
|
|
2594
|
-
<div class="line"><a name="
|
|
2595
|
-
<div class="line"><a name="
|
|
2596
|
-
<div class="line"><a name="
|
|
2597
|
-
<div class="line"><a name="
|
|
2598
|
-
<div class="line"><a name="
|
|
2599
|
-
<div class="line"><a name="
|
|
2600
|
-
<div class="line"><a name="
|
|
2568
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01141">1141</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2569
|
+
<div class="fragment"><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> {</div>
|
|
2570
|
+
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isDeclaration())</div>
|
|
2571
|
+
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2572
|
+
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funcName = <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getName().str();</div>
|
|
2573
|
+
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="LLVMUtil_8cpp.html#aff4f7c7a9aacf05a3a3c42ae24ea7d96">vfunPreLabel</a>.size(), <a class="code" href="LLVMUtil_8cpp.html#aff4f7c7a9aacf05a3a3c42ae24ea7d96">vfunPreLabel</a>) != 0)</div>
|
|
2574
|
+
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  {</div>
|
|
2575
|
+
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2576
|
+
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  }</div>
|
|
2577
|
+
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(funcName.c_str());</div>
|
|
2578
|
+
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div>
|
|
2579
|
+
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  {</div>
|
|
2580
|
+
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2581
|
+
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  }</div>
|
|
2582
|
+
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div>
|
|
2583
|
+
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div>
|
|
2584
|
+
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">"::"</span>);</div>
|
|
2585
|
+
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  <span class="keywordflow">if</span> (colon == std::string::npos)</div>
|
|
2586
|
+
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  {</div>
|
|
2587
|
+
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div>
|
|
2588
|
+
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  }</div>
|
|
2589
|
+
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  <span class="keywordflow">else</span></div>
|
|
2590
|
+
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>  {</div>
|
|
2591
|
+
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> =</div>
|
|
2592
|
+
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon + 2));</div>
|
|
2593
|
+
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  }</div>
|
|
2594
|
+
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  <span class="keywordflow">return</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() > 0 && dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() > 0 &&</div>
|
|
2595
|
+
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() + 1 == dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() &&</div>
|
|
2596
|
+
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.compare(0, 1, <span class="stringliteral">"~"</span>) == 0 &&</div>
|
|
2597
|
+
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.substr(1)) == 0);</div>
|
|
2598
|
+
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> }</div>
|
|
2601
2599
|
</div><!-- fragment -->
|
|
2602
2600
|
</div>
|
|
2603
2601
|
</div>
|
|
@@ -2773,55 +2771,6 @@ Functions</h2></td></tr>
|
|
|
2773
2771
|
</div><!-- fragment -->
|
|
2774
2772
|
</div>
|
|
2775
2773
|
</div>
|
|
2776
|
-
<a id="a45da980cb7c085942bb8e6010db9d84f"></a>
|
|
2777
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a45da980cb7c085942bb8e6010db9d84f">◆ </a></span>isLoadVtblInst()</h2>
|
|
2778
|
-
|
|
2779
|
-
<div class="memitem">
|
|
2780
|
-
<div class="memproto">
|
|
2781
|
-
<table class="memname">
|
|
2782
|
-
<tr>
|
|
2783
|
-
<td class="memname">bool SVF::LLVMUtil::isLoadVtblInst </td>
|
|
2784
|
-
<td>(</td>
|
|
2785
|
-
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> * </td>
|
|
2786
|
-
<td class="paramname"><em>loadInst</em></td><td>)</td>
|
|
2787
|
-
<td></td>
|
|
2788
|
-
</tr>
|
|
2789
|
-
</table>
|
|
2790
|
-
</div><div class="memdoc">
|
|
2791
|
-
|
|
2792
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00985">985</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2793
|
-
<div class="fragment"><div class="line"><a name="l00986"></a><span class="lineno"> 986</span> {</div>
|
|
2794
|
-
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* loadSrc = loadInst->getPointerOperand();</div>
|
|
2795
|
-
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* valTy = loadSrc->getType();</div>
|
|
2796
|
-
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = valTy;</div>
|
|
2797
|
-
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < 3; ++i)</div>
|
|
2798
|
-
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  {</div>
|
|
2799
|
-
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="comment">// TODO: getPtrElementType to be removed</span></div>
|
|
2800
|
-
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* ptrTy = SVFUtil::dyn_cast<PointerType>(elemTy))</div>
|
|
2801
|
-
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  elemTy = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(ptrTy);</div>
|
|
2802
|
-
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">else</span></div>
|
|
2803
|
-
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2804
|
-
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  }</div>
|
|
2805
|
-
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* functy = SVFUtil::dyn_cast<FunctionType>(elemTy))</div>
|
|
2806
|
-
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  {</div>
|
|
2807
|
-
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* paramty = functy->getParamType(0);</div>
|
|
2808
|
-
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> className = <span class="stringliteral">""</span>;</div>
|
|
2809
|
-
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* ptrTy = SVFUtil::dyn_cast<PointerType>(paramty))</div>
|
|
2810
|
-
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  {</div>
|
|
2811
|
-
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="comment">// TODO: getPtrElementType need type inference</span></div>
|
|
2812
|
-
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* st = SVFUtil::dyn_cast<StructType>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(ptrTy)))</div>
|
|
2813
|
-
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  className = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a207fe02ded216fd0412fc894e13bee6e">LLVMUtil::getClassNameFromType</a>(st);</div>
|
|
2814
|
-
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  }</div>
|
|
2815
|
-
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <span class="keywordflow">if</span> (className.size() > 0)</div>
|
|
2816
|
-
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  {</div>
|
|
2817
|
-
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2818
|
-
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  }</div>
|
|
2819
|
-
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  }</div>
|
|
2820
|
-
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2821
|
-
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> }</div>
|
|
2822
|
-
</div><!-- fragment -->
|
|
2823
|
-
</div>
|
|
2824
|
-
</div>
|
|
2825
2774
|
<a id="a17cce1a11e1bfc342a9e3e79fe35deef"></a>
|
|
2826
2775
|
<h2 class="memtitle"><span class="permalink"><a href="#a17cce1a11e1bfc342a9e3e79fe35deef">◆ </a></span>isNoCallerFunction()</h2>
|
|
2827
2776
|
|
|
@@ -3055,28 +3004,28 @@ Functions</h2></td></tr>
|
|
|
3055
3004
|
<p>Given a inheritance relation B is a child of A We assume B::B(thisPtr1){ A::A(thisPtr2) } such that thisPtr1 == thisPtr2 In the following code thisPtr1 is "%class.B1* %this" and thisPtr2 is "%class.A* %0".</p>
|
|
3056
3005
|
<p>define linkonce_odr dso_local void @B1::B1()(class.B1* this) unnamed_addr #6 comdat this.addr = alloca class.B1*, align 8 store class.B1* this, class.B1** this.addr, align 8 this1 = load class.B1*, class.B1** this.addr, align 8 %0 = bitcast class.B1* this1 to class.A* call void @A::A()(class.A* %0) </p>
|
|
3057
3006
|
|
|
3058
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3059
|
-
<div class="fragment"><div class="line"><a name="
|
|
3060
|
-
<div class="line"><a name="
|
|
3061
|
-
<div class="line"><a name="
|
|
3062
|
-
<div class="line"><a name="
|
|
3063
|
-
<div class="line"><a name="
|
|
3064
|
-
<div class="line"><a name="
|
|
3065
|
-
<div class="line"><a name="
|
|
3066
|
-
<div class="line"><a name="
|
|
3067
|
-
<div class="line"><a name="
|
|
3068
|
-
<div class="line"><a name="
|
|
3069
|
-
<div class="line"><a name="
|
|
3070
|
-
<div class="line"><a name="
|
|
3071
|
-
<div class="line"><a name="
|
|
3072
|
-
<div class="line"><a name="
|
|
3073
|
-
<div class="line"><a name="
|
|
3074
|
-
<div class="line"><a name="
|
|
3075
|
-
<div class="line"><a name="
|
|
3076
|
-
<div class="line"><a name="
|
|
3077
|
-
<div class="line"><a name="
|
|
3078
|
-
<div class="line"><a name="
|
|
3079
|
-
<div class="line"><a name="
|
|
3007
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01077">1077</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3008
|
+
<div class="fragment"><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> {</div>
|
|
3009
|
+
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="keywordflow">if</span> (thisPtr1 == thisPtr2)</div>
|
|
3010
|
+
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
3011
|
+
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* thisU : thisPtr1->users())</div>
|
|
3012
|
+
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  {</div>
|
|
3013
|
+
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a>* store = SVFUtil::dyn_cast<StoreInst>(thisU))</div>
|
|
3014
|
+
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  {</div>
|
|
3015
|
+
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* storeU : store->getPointerOperand()->users())</div>
|
|
3016
|
+
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  {</div>
|
|
3017
|
+
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* load = SVFUtil::dyn_cast<LoadInst>(storeU))</div>
|
|
3018
|
+
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  {</div>
|
|
3019
|
+
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  <span class="keywordflow">if</span> (load->getNextNode() &&</div>
|
|
3020
|
+
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  SVFUtil::isa<CastInst>(load->getNextNode()))</div>
|
|
3021
|
+
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <span class="keywordflow">return</span> SVFUtil::cast<CastInst>(load->getNextNode()) ==</div>
|
|
3022
|
+
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  (thisPtr2->stripPointerCasts());</div>
|
|
3023
|
+
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  }</div>
|
|
3024
|
+
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  }</div>
|
|
3025
|
+
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  }</div>
|
|
3026
|
+
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  }</div>
|
|
3027
|
+
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3028
|
+
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> }</div>
|
|
3080
3029
|
</div><!-- fragment -->
|
|
3081
3030
|
</div>
|
|
3082
3031
|
</div>
|
|
@@ -3321,36 +3270,36 @@ Functions</h2></td></tr>
|
|
|
3321
3270
|
</table>
|
|
3322
3271
|
</div><div class="memdoc">
|
|
3323
3272
|
|
|
3324
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3325
|
-
<div class="fragment"><div class="line"><a name="
|
|
3326
|
-
<div class="line"><a name="
|
|
3327
|
-
<div class="line"><a name="
|
|
3328
|
-
<div class="line"><a name="
|
|
3329
|
-
<div class="line"><a name="
|
|
3330
|
-
<div class="line"><a name="
|
|
3331
|
-
<div class="line"><a name="
|
|
3332
|
-
<div class="line"><a name="
|
|
3333
|
-
<div class="line"><a name="
|
|
3334
|
-
<div class="line"><a name="
|
|
3335
|
-
<div class="line"><a name="
|
|
3336
|
-
<div class="line"><a name="
|
|
3337
|
-
<div class="line"><a name="
|
|
3338
|
-
<div class="line"><a name="
|
|
3339
|
-
<div class="line"><a name="
|
|
3340
|
-
<div class="line"><a name="
|
|
3341
|
-
<div class="line"><a name="
|
|
3342
|
-
<div class="line"><a name="
|
|
3343
|
-
<div class="line"><a name="
|
|
3344
|
-
<div class="line"><a name="
|
|
3345
|
-
<div class="line"><a name="
|
|
3346
|
-
<div class="line"><a name="
|
|
3347
|
-
<div class="line"><a name="
|
|
3348
|
-
<div class="line"><a name="
|
|
3349
|
-
<div class="line"><a name="
|
|
3350
|
-
<div class="line"><a name="
|
|
3351
|
-
<div class="line"><a name="
|
|
3352
|
-
<div class="line"><a name="
|
|
3353
|
-
<div class="line"><a name="
|
|
3273
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00992">992</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3274
|
+
<div class="fragment"><div class="line"><a name="l00993"></a><span class="lineno"> 993</span> {</div>
|
|
3275
|
+
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="comment">// the callsite must be an indirect one with at least one argument (this</span></div>
|
|
3276
|
+
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="comment">// ptr)</span></div>
|
|
3277
|
+
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keywordflow">if</span> (cs->getCalledFunction() != <span class="keyword">nullptr</span> || cs->arg_empty())</div>
|
|
3278
|
+
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3279
|
+
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  </div>
|
|
3280
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="comment">// the first argument (this pointer) must be a pointer type and must be a</span></div>
|
|
3281
|
+
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="comment">// class name</span></div>
|
|
3282
|
+
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">if</span> (cs->getArgOperand(0)->getType()->isPointerTy() == <span class="keyword">false</span>)</div>
|
|
3283
|
+
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3284
|
+
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  </div>
|
|
3285
|
+
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfunc = cs->getCalledOperand();</div>
|
|
3286
|
+
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* vfuncloadinst = SVFUtil::dyn_cast<LoadInst>(vfunc))</div>
|
|
3287
|
+
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  {</div>
|
|
3288
|
+
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfuncptr = vfuncloadinst->getPointerOperand();</div>
|
|
3289
|
+
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* vfuncptrgepinst =</div>
|
|
3290
|
+
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr))</div>
|
|
3291
|
+
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  {</div>
|
|
3292
|
+
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keywordflow">if</span> (vfuncptrgepinst->getNumIndices() != 1)</div>
|
|
3293
|
+
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3294
|
+
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vtbl = vfuncptrgepinst->getPointerOperand();</div>
|
|
3295
|
+
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(vtbl))</div>
|
|
3296
|
+
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  {</div>
|
|
3297
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
3298
|
+
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  }</div>
|
|
3299
|
+
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  }</div>
|
|
3300
|
+
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  }</div>
|
|
3301
|
+
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3302
|
+
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> }</div>
|
|
3354
3303
|
</div><!-- fragment -->
|
|
3355
3304
|
</div>
|
|
3356
3305
|
</div>
|
|
@@ -3743,18 +3692,18 @@ Functions</h2></td></tr>
|
|
|
3743
3692
|
</table>
|
|
3744
3693
|
</div><div class="memdoc">
|
|
3745
3694
|
|
|
3746
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3747
|
-
<div class="fragment"><div class="line"><a name="
|
|
3748
|
-
<div class="line"><a name="
|
|
3749
|
-
<div class="line"><a name="
|
|
3750
|
-
<div class="line"><a name="
|
|
3751
|
-
<div class="line"><a name="
|
|
3752
|
-
<div class="line"><a name="
|
|
3753
|
-
<div class="line"><a name="
|
|
3754
|
-
<div class="line"><a name="
|
|
3755
|
-
<div class="line"><a name="
|
|
3756
|
-
<div class="line"><a name="
|
|
3757
|
-
<div class="line"><a name="
|
|
3695
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01196">1196</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3696
|
+
<div class="fragment"><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> {</div>
|
|
3697
|
+
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> classNameOfThisPtr = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">LLVMUtil::getClassNameOfThisPtr</a>(cs);</div>
|
|
3698
|
+
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = cs->getCaller();</div>
|
|
3699
|
+
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">LLVMUtil::isConstructor</a>(func) || <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">LLVMUtil::isDestructor</a>(func))</div>
|
|
3700
|
+
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>  {</div>
|
|
3701
|
+
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>  <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(func->getName().str());</div>
|
|
3702
|
+
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>  <span class="keywordflow">if</span> (classNameOfThisPtr.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>) == 0)</div>
|
|
3703
|
+
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
3704
|
+
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>  }</div>
|
|
3705
|
+
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3706
|
+
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> }</div>
|
|
3758
3707
|
</div><!-- fragment -->
|
|
3759
3708
|
</div>
|
|
3760
3709
|
</div>
|
|
@@ -3813,14 +3762,13 @@ Functions</h2></td></tr>
|
|
|
3813
3762
|
</div><!-- contents -->
|
|
3814
3763
|
<div class="ttc" id="anamespaceSVF_html_a827d09974dc7bf0849f96823cc2fee89"><div class="ttname"><a href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">SVF::DomTreeNode</a></div><div class="ttdeci">llvm::DomTreeNode DomTreeNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
|
|
3815
3764
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8e4add30bd0ce00d3f2aa2e31c64fef8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">SVF::LLVMUtil::getSourceLoc</a></div><div class="ttdeci">const std::string getSourceLoc(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00753">LLVMUtil.cpp:753</a></div></div>
|
|
3816
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_afa2f8c8ab19c75547c26ede53b9f6159"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#afa2f8c8ab19c75547c26ede53b9f6159">SVF::LLVMUtil::dumpValue</a></div><div class="ttdeci">std::string dumpValue(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3765
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_afa2f8c8ab19c75547c26ede53b9f6159"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#afa2f8c8ab19c75547c26ede53b9f6159">SVF::LLVMUtil::dumpValue</a></div><div class="ttdeci">std::string dumpValue(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01328">LLVMUtil.cpp:1328</a></div></div>
|
|
3817
3766
|
<div class="ttc" id="anamespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdoc">LLVM Dominators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00131">BasicTypes.h:131</a></div></div>
|
|
3818
3767
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aeaa116fd9718c8b31f30d3fe62bb6403"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aeaa116fd9718c8b31f30d3fe62bb6403">SVF::LLVMUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Value *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00051">LLVMUtil.h:51</a></div></div>
|
|
3819
3768
|
<div class="ttc" id="aCommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
|
|
3820
3769
|
<div class="ttc" id="anamespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00146">BasicTypes.h:146</a></div></div>
|
|
3821
3770
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2b5fdf455c5dd40c0baa60185e5e41c6"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2b5fdf455c5dd40c0baa60185e5e41c6">SVF::LLVMUtil::getTypeSizeInBytes</a></div><div class="ttdeci">u32_t getTypeSizeInBytes(const StructType *sty, u32_t field_index)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00739">LLVMUtil.cpp:739</a></div></div>
|
|
3822
3771
|
<div class="ttc" id="anamespaceSVF_html_a773900ea3c75022657aac1abf59fa51b"><div class="ttname"><a href="namespaceSVF.html#a773900ea3c75022657aac1abf59fa51b">SVF::MetadataAsValue</a></div><div class="ttdeci">llvm::MetadataAsValue MetadataAsValue</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
|
|
3823
|
-
<div class="ttc" id="anamespaceSVF_html_a6ec0236303089a01fd9da36a8bb84e0a"><div class="ttname"><a href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">SVF::FunctionType</a></div><div class="ttdeci">llvm::FunctionType FunctionType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00096">BasicTypes.h:96</a></div></div>
|
|
3824
3772
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a16d14e6712866d1d710c386c72d67181"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a16d14e6712866d1d710c386c72d67181">SVF::LLVMModuleSet::FunctionSetType</a></div><div class="ttdeci">std::vector< const Function * > FunctionSetType</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00050">LLVMModule.h:50</a></div></div>
|
|
3825
3773
|
<div class="ttc" id="aLLVMUtil_8cpp_html_a5f8da60b0fcc28445f508f4e42513a82"><div class="ttname"><a href="LLVMUtil_8cpp.html#a5f8da60b0fcc28445f508f4e42513a82">clsName</a></div><div class="ttdeci">const std::string clsName</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00043">LLVMUtil.cpp:43</a></div></div>
|
|
3826
3774
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a08fbef6fe3e2af96a49f79ce23accb01"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">SVF::LLVMUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00976">LLVMUtil.cpp:976</a></div></div>
|
|
@@ -3851,7 +3799,7 @@ Functions</h2></td></tr>
|
|
|
3851
3799
|
<div class="ttc" id="anamespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00147">BasicTypes.h:147</a></div></div>
|
|
3852
3800
|
<div class="ttc" id="anamespaceSVF_html_a956458a8554bf734db1194f320fd4b4c"><div class="ttname"><a href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">SVF::BlockAddress</a></div><div class="ttdeci">llvm::BlockAddress BlockAddress</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00089">BasicTypes.h:89</a></div></div>
|
|
3853
3801
|
<div class="ttc" id="anamespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
|
|
3854
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a68e7bad8eb537039559d8ddc851032e0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">SVF::LLVMUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3802
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a68e7bad8eb537039559d8ddc851032e0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">SVF::LLVMUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01051">LLVMUtil.cpp:1051</a></div></div>
|
|
3855
3803
|
<div class="ttc" id="anamespaceSVF_html_a146d286041987860388da3d8bc85cee3"><div class="ttname"><a href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">SVF::ArrayType</a></div><div class="ttdeci">llvm::ArrayType ArrayType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
|
|
3856
3804
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
|
|
3857
3805
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
@@ -3874,7 +3822,7 @@ Functions</h2></td></tr>
|
|
|
3874
3822
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a523a8c3f9bfaea178733822ac598d552"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a523a8c3f9bfaea178733822ac598d552">SVF::LLVMUtil::removeFunAnnotations</a></div><div class="ttdeci">void removeFunAnnotations(std::vector< Function * > &removedFuncList)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00571">LLVMUtil.cpp:571</a></div></div>
|
|
3875
3823
|
<div class="ttc" id="anamespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
|
|
3876
3824
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_af264312f0020bde9151697bccfde3263"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#af264312f0020bde9151697bccfde3263">SVF::SVFFunction::getReturnType</a></div><div class="ttdeci">const SVFType * getReturnType() const</div><div class="ttdoc">Returns the FunctionType.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00389">SVFValue.h:389</a></div></div>
|
|
3877
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a206973624fcc58e6044c884dba23a754"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">SVF::LLVMUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3825
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a206973624fcc58e6044c884dba23a754"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">SVF::LLVMUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01141">LLVMUtil.cpp:1141</a></div></div>
|
|
3878
3826
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a151fd7fb2b2ebe72af7c417defbb4f4d"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">SVF::LLVMUtil::getDataLayout</a></div><div class="ttdeci">static DataLayout * getDataLayout(Module *mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00337">LLVMUtil.h:337</a></div></div>
|
|
3879
3827
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adfa4a4e6d13004d14137d9168bd32463"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">SVF::LLVMUtil::isInt2PtrConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isInt2PtrConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00249">LLVMUtil.h:249</a></div></div>
|
|
3880
3828
|
<div class="ttc" id="aLLVMUtil_8cpp_html_a61c158146c07e77234eb4a2f9b940821"><div class="ttname"><a href="LLVMUtil_8cpp.html#a61c158146c07e77234eb4a2f9b940821">structName</a></div><div class="ttdeci">const std::string structName</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00044">LLVMUtil.cpp:44</a></div></div>
|
|
@@ -3894,7 +3842,7 @@ Functions</h2></td></tr>
|
|
|
3894
3842
|
<div class="ttc" id="anamespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00123">BasicTypes.h:123</a></div></div>
|
|
3895
3843
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_ac0a9f85f90524abfd519d3cd2ac95a56"><div class="ttname"><a href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">SVF::StInfo::getFlattenFieldTypes</a></div><div class="ttdeci">std::vector< const SVFType * > & getFlattenFieldTypes()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00192">SVFType.h:192</a></div></div>
|
|
3896
3844
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abb4b5ed04ec70a2e7fca8198132370cf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abb4b5ed04ec70a2e7fca8198132370cf">SVF::LLVMUtil::basicBlockHasRetInst</a></div><div class="ttdeci">bool basicBlockHasRetInst(const BasicBlock *bb)</div><div class="ttdoc">Return true if the function has a return instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00104">LLVMUtil.cpp:104</a></div></div>
|
|
3897
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa841a295ec803b6a1f2bd248f63f863f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">SVF::LLVMUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3845
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa841a295ec803b6a1f2bd248f63f863f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">SVF::LLVMUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01227">LLVMUtil.cpp:1227</a></div></div>
|
|
3898
3846
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa81614cdb6a2a912638d5dc980480af7"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa81614cdb6a2a912638d5dc980480af7">SVF::LLVMUtil::getRefTypeOfHeapAllocOrStatic</a></div><div class="ttdeci">const PointerType * getRefTypeOfHeapAllocOrStatic(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00160">LLVMUtil.h:160</a></div></div>
|
|
3899
3847
|
<div class="ttc" id="anamespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00145">BasicTypes.h:145</a></div></div>
|
|
3900
3848
|
<div class="ttc" id="astructSVF_1_1cppUtil_1_1DemangledName_html_a5cd207bce618521166e6fa235014b297"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">SVF::cppUtil::DemangledName::className</a></div><div class="ttdeci">std::string className</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8h_source.html#l00048">CppUtil.h:48</a></div></div>
|
|
@@ -3904,7 +3852,7 @@ Functions</h2></td></tr>
|
|
|
3904
3852
|
<div class="ttc" id="anamespaceSVF_html_afc1b50355821e7299df03b026e36f1df"><div class="ttname"><a href="namespaceSVF.html#afc1b50355821e7299df03b026e36f1df">SVF::User</a></div><div class="ttdeci">llvm::User User</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00140">BasicTypes.h:140</a></div></div>
|
|
3905
3853
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">SVF::LLVMUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const Function * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00057">LLVMUtil.h:57</a></div></div>
|
|
3906
3854
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2b32283ee2dbb9cef1d17ab6f2719e0c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">SVF::LLVMUtil::getSourceLocOfFunction</a></div><div class="ttdeci">const std::string getSourceLocOfFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00857">LLVMUtil.cpp:857</a></div></div>
|
|
3907
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a207fe02ded216fd0412fc894e13bee6e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a207fe02ded216fd0412fc894e13bee6e">SVF::LLVMUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const StructType *ty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3855
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a207fe02ded216fd0412fc894e13bee6e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a207fe02ded216fd0412fc894e13bee6e">SVF::LLVMUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const StructType *ty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01209">LLVMUtil.cpp:1209</a></div></div>
|
|
3908
3856
|
<div class="ttc" id="anamespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00118">BasicTypes.h:118</a></div></div>
|
|
3909
3857
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4c94a6c02fb89c1a1604c87414956acd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the previous instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00381">LLVMUtil.cpp:381</a></div></div>
|
|
3910
3858
|
<div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
|
|
@@ -3919,7 +3867,7 @@ Functions</h2></td></tr>
|
|
|
3919
3867
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a003b769751b93b94bdb011bd704cfde1"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">SVF::LLVMUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00216">LLVMUtil.cpp:216</a></div></div>
|
|
3920
3868
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abba4111230f6009bbf50518ee36a9870"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">SVF::LLVMUtil::getPtrElementType</a></div><div class="ttdeci">static Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00119">LLVMUtil.h:119</a></div></div>
|
|
3921
3869
|
<div class="ttc" id="anamespaceSVF_html_a7332f8059ea95472dcc231de884a5768"><div class="ttname"><a href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">SVF::ConstantData</a></div><div class="ttdeci">llvm::ConstantData ConstantData</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
|
|
3922
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6dd1590b82d2bd86766886bd21bc2b72"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">SVF::LLVMUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3870
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6dd1590b82d2bd86766886bd21bc2b72"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">SVF::LLVMUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01110">LLVMUtil.cpp:1110</a></div></div>
|
|
3923
3871
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
3924
3872
|
<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>
|
|
3925
3873
|
<div class="ttc" id="anamespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00143">BasicTypes.h:143</a></div></div>
|