svf-tools 1.0.830 → 1.0.832
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 +8 -8
- package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/DCHG_8cpp_source.html +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 +7 -7
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +369 -402
- package/SVF-doxygen/html/LLVMUtil_8h.html +3 -10
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +350 -392
- 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 +13 -13
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +1 -1
- 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 +199 -199
- package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +4 -4
- 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 +8 -8
- package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +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 +7 -7
- 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 +16 -16
- 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 +196 -196
- 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 +526 -669
- package/SVF-doxygen/html/namespacemembers_func_g.html +0 -6
- package/SVF-doxygen/html/namespacemembers_func_i.html +9 -9
- package/SVF-doxygen/html/namespacemembers_g.html +4 -10
- package/SVF-doxygen/html/namespacemembers_i.html +7 -7
- package/SVF-doxygen/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/search/all_11.js +223 -223
- package/SVF-doxygen/html/search/all_12.js +553 -553
- package/SVF-doxygen/html/search/all_13.js +192 -192
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +167 -167
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +172 -172
- package/SVF-doxygen/html/search/all_7.js +246 -248
- package/SVF-doxygen/html/search/all_8.js +198 -198
- package/SVF-doxygen/html/search/all_9.js +607 -607
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +198 -198
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +80 -80
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +34 -34
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +21 -21
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +55 -55
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +360 -360
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +139 -139
- package/SVF-doxygen/html/search/functions_12.js +288 -288
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +172 -172
- package/SVF-doxygen/html/search/functions_2.js +89 -89
- package/SVF-doxygen/html/search/functions_3.js +258 -258
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +60 -60
- package/SVF-doxygen/html/search/functions_7.js +855 -857
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +423 -423
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +61 -61
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +56 -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 +1 -34
- package/svf-llvm/lib/LLVMUtil.cpp +1 -32
- package/svf-llvm/lib/SymbolTableBuilder.cpp +8 -8
|
@@ -107,11 +107,9 @@ Functions</h2></td></tr>
|
|
|
107
107
|
<tr class="separator:abba4111230f6009bbf50518ee36a9870"><td class="memSeparator" colspan="2"> </td></tr>
|
|
108
108
|
<tr class="memitem:a4b5d4c7ca2c580ace7305bfed58ffce8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a4b5d4c7ca2c580ace7305bfed58ffce8">getPointeeType</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *value)</td></tr>
|
|
109
109
|
<tr class="separator:a4b5d4c7ca2c580ace7305bfed58ffce8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
110
|
-
<tr class="memitem:
|
|
111
|
-
<tr class="memdesc:
|
|
112
|
-
<tr class="separator:
|
|
113
|
-
<tr class="memitem:aa81614cdb6a2a912638d5dc980480af7"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#aa81614cdb6a2a912638d5dc980480af7">getRefTypeOfHeapAllocOrStatic</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
|
|
114
|
-
<tr class="separator:aa81614cdb6a2a912638d5dc980480af7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
110
|
+
<tr class="memitem:a9a7e07cbd487e829059f52a0fb62693f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a9a7e07cbd487e829059f52a0fb62693f">inferTypeOfHeapObjOrStaticObj</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
|
|
111
|
+
<tr class="memdesc:a9a7e07cbd487e829059f52a0fb62693f"><td class="mdescLeft"> </td><td class="mdescRight">Get the reference type of heap/static object from an allocation site. <a href="namespaceSVF_1_1LLVMUtil.html#a9a7e07cbd487e829059f52a0fb62693f">More...</a><br /></td></tr>
|
|
112
|
+
<tr class="separator:a9a7e07cbd487e829059f52a0fb62693f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
115
113
|
<tr class="memitem:aca11801ed6ef6ff8d2a1e85bc0fc5794"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">isObject</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *ref)</td></tr>
|
|
116
114
|
<tr class="memdesc:aca11801ed6ef6ff8d2a1e85bc0fc5794"><td class="mdescLeft"> </td><td class="mdescRight">Return true if this value refers to a object. <a href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">More...</a><br /></td></tr>
|
|
117
115
|
<tr class="separator:aca11801ed6ef6ff8d2a1e85bc0fc5794"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -147,9 +145,6 @@ Functions</h2></td></tr>
|
|
|
147
145
|
<tr class="memitem:a38ce45ae5f017c90115ce444b44d478c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">stripAllCasts</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</td></tr>
|
|
148
146
|
<tr class="memdesc:a38ce45ae5f017c90115ce444b44d478c"><td class="mdescLeft"> </td><td class="mdescRight">Strip off the all casts. <a href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">More...</a><br /></td></tr>
|
|
149
147
|
<tr class="separator:a38ce45ae5f017c90115ce444b44d478c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
150
|
-
<tr class="memitem:ae368713463c84425f9a1ad27ff401a47"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">getTypeOfHeapAlloc</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
|
|
151
|
-
<tr class="memdesc:ae368713463c84425f9a1ad27ff401a47"><td class="mdescLeft"> </td><td class="mdescRight">Get the type of the heap allocation. <a href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">More...</a><br /></td></tr>
|
|
152
|
-
<tr class="separator:ae368713463c84425f9a1ad27ff401a47"><td class="memSeparator" colspan="2"> </td></tr>
|
|
153
148
|
<tr class="memitem:a200539f965bff5627abac41920498ee8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">getFirstUseViaCastInst</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</td></tr>
|
|
154
149
|
<tr class="separator:a200539f965bff5627abac41920498ee8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
155
150
|
<tr class="memitem:ab5fc50624b5fe83b676b14bec4b99685"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">isGepConstantExpr</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</td></tr>
|
|
@@ -247,8 +242,6 @@ Functions</h2></td></tr>
|
|
|
247
242
|
<tr class="separator:a4f803756f0a73e8564d9544ce27be1c9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
248
243
|
<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
244
|
<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
245
|
<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
246
|
<tr class="separator:ab1b4c565ae6be788b934defc21a5cfaf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
254
247
|
<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>
|
|
@@ -313,11 +306,11 @@ Functions</h2></td></tr>
|
|
|
313
306
|
|
|
314
307
|
<p>whether this is an argument in dead function </p>
|
|
315
308
|
|
|
316
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
317
|
-
<div class="fragment"><div class="line"><a name="
|
|
318
|
-
<div class="line"><a name="
|
|
319
|
-
<div class="line"><a name="
|
|
320
|
-
<div class="line"><a name="
|
|
309
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00148">148</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
310
|
+
<div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> {</div>
|
|
311
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> SVFUtil::isa<Argument>(val)</div>
|
|
312
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  && <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(SVFUtil::cast<Argument>(val)->getParent());</div>
|
|
313
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> }</div>
|
|
321
314
|
</div><!-- fragment -->
|
|
322
315
|
</div>
|
|
323
316
|
</div>
|
|
@@ -347,12 +340,12 @@ Functions</h2></td></tr>
|
|
|
347
340
|
|
|
348
341
|
<p>Return true if this is an argument of a program entry function (e.g. main) </p>
|
|
349
342
|
|
|
350
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
351
|
-
<div class="fragment"><div class="line"><a name="
|
|
352
|
-
<div class="line"><a name="
|
|
353
|
-
<div class="line"><a name="
|
|
354
|
-
<div class="line"><a name="
|
|
355
|
-
<div class="line"><a name="
|
|
343
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00156">156</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
344
|
+
<div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> {</div>
|
|
345
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> SVFUtil::isa<Argument>(val) &&</div>
|
|
346
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ac9d6aff1a5e778e45c51b4f3b6d787e0">LLVMUtil::isProgEntryFunction</a>(</div>
|
|
347
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  SVFUtil::cast<Argument>(val)->getParent());</div>
|
|
348
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> }</div>
|
|
356
349
|
</div><!-- fragment -->
|
|
357
350
|
</div>
|
|
358
351
|
</div>
|
|
@@ -404,16 +397,16 @@ Functions</h2></td></tr>
|
|
|
404
397
|
</table>
|
|
405
398
|
</div><div class="memdoc">
|
|
406
399
|
|
|
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="
|
|
400
|
+
<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>
|
|
401
|
+
<div class="fragment"><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> {</div>
|
|
402
|
+
<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>
|
|
403
|
+
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  llvm::raw_string_ostream rawstr(str);</div>
|
|
404
|
+
<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>
|
|
405
|
+
<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>
|
|
406
|
+
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  <span class="keywordflow">else</span></div>
|
|
407
|
+
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  rawstr << <span class="stringliteral">" llvm type is null"</span>;</div>
|
|
408
|
+
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
409
|
+
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> }</div>
|
|
417
410
|
</div><!-- fragment -->
|
|
418
411
|
</div>
|
|
419
412
|
</div>
|
|
@@ -433,16 +426,16 @@ Functions</h2></td></tr>
|
|
|
433
426
|
</table>
|
|
434
427
|
</div><div class="memdoc">
|
|
435
428
|
|
|
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="
|
|
429
|
+
<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>
|
|
430
|
+
<div class="fragment"><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> {</div>
|
|
431
|
+
<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>
|
|
432
|
+
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  llvm::raw_string_ostream rawstr(str);</div>
|
|
433
|
+
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <span class="keywordflow">if</span> (val)</div>
|
|
434
|
+
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  rawstr << <span class="stringliteral">" "</span> << *val << <span class="stringliteral">" "</span>;</div>
|
|
435
|
+
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  <span class="keywordflow">else</span></div>
|
|
436
|
+
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  rawstr << <span class="stringliteral">" llvm Value is null"</span>;</div>
|
|
437
|
+
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
438
|
+
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> }</div>
|
|
446
439
|
</div><!-- fragment -->
|
|
447
440
|
</div>
|
|
448
441
|
</div>
|
|
@@ -629,28 +622,28 @@ Functions</h2></td></tr>
|
|
|
629
622
|
<p>get normal case value</p>
|
|
630
623
|
<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
624
|
|
|
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="
|
|
625
|
+
<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>
|
|
626
|
+
<div class="fragment"><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> {</div>
|
|
627
|
+
<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>
|
|
628
|
+
<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>
|
|
629
|
+
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> val;</div>
|
|
630
|
+
<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>
|
|
631
|
+
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  {</div>
|
|
632
|
+
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  val = -1;</div>
|
|
633
|
+
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  }</div>
|
|
634
|
+
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  <span class="keywordflow">else</span></div>
|
|
635
|
+
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  {</div>
|
|
636
|
+
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>  <span class="keywordflow">if</span> (caseValue->getBitWidth() <= 64)</div>
|
|
637
|
+
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  {</div>
|
|
638
|
+
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  val = caseValue->getSExtValue();</div>
|
|
639
|
+
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  }</div>
|
|
640
|
+
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  <span class="keywordflow">else</span></div>
|
|
641
|
+
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>  {</div>
|
|
642
|
+
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>  val = -1;</div>
|
|
643
|
+
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  }</div>
|
|
644
|
+
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  }</div>
|
|
645
|
+
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <span class="keywordflow">return</span> val;</div>
|
|
646
|
+
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> }</div>
|
|
654
647
|
</div><!-- fragment -->
|
|
655
648
|
</div>
|
|
656
649
|
</div>
|
|
@@ -670,23 +663,23 @@ Functions</h2></td></tr>
|
|
|
670
663
|
</table>
|
|
671
664
|
</div><div class="memdoc">
|
|
672
665
|
|
|
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="
|
|
666
|
+
<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>
|
|
667
|
+
<div class="fragment"><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> {</div>
|
|
668
|
+
<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>
|
|
669
|
+
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>  <span class="keywordflow">if</span> (!((SVFUtil::cast<StructType>(ty))->isLiteral()))</div>
|
|
670
|
+
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>  {</div>
|
|
671
|
+
<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>
|
|
672
|
+
<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>
|
|
673
|
+
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>  {</div>
|
|
674
|
+
<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>
|
|
675
|
+
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>  }</div>
|
|
676
|
+
<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>
|
|
677
|
+
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>  {</div>
|
|
678
|
+
<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>
|
|
679
|
+
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  }</div>
|
|
680
|
+
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  }</div>
|
|
681
|
+
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  <span class="keywordflow">return</span> className;</div>
|
|
682
|
+
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> }</div>
|
|
690
683
|
</div><!-- fragment -->
|
|
691
684
|
</div>
|
|
692
685
|
</div>
|
|
@@ -706,35 +699,35 @@ Functions</h2></td></tr>
|
|
|
706
699
|
</table>
|
|
707
700
|
</div><div class="memdoc">
|
|
708
701
|
|
|
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="
|
|
702
|
+
<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>
|
|
703
|
+
<div class="fragment"><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> {</div>
|
|
704
|
+
<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>
|
|
705
|
+
<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>
|
|
706
|
+
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>  {</div>
|
|
707
|
+
<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>
|
|
708
|
+
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>  thisPtrClassName = mdstr->getString().str();</div>
|
|
709
|
+
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  }</div>
|
|
710
|
+
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>  <span class="keywordflow">if</span> (thisPtrClassName.size() == 0)</div>
|
|
711
|
+
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>  {</div>
|
|
712
|
+
<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>
|
|
713
|
+
<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>
|
|
714
|
+
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>  <span class="comment">// TODO: getPtrElementType need type inference</span></div>
|
|
715
|
+
<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>
|
|
716
|
+
<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>
|
|
717
|
+
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  }</div>
|
|
718
|
+
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>  </div>
|
|
719
|
+
<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>
|
|
720
|
+
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  <span class="keywordflow">if</span> (found != std::string::npos)</div>
|
|
721
|
+
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  {</div>
|
|
722
|
+
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  <span class="keywordflow">if</span> (found != thisPtrClassName.size() - 1 &&</div>
|
|
723
|
+
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>  thisPtrClassName[found] == <span class="charliteral">'.'</span>)</div>
|
|
724
|
+
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>  {</div>
|
|
725
|
+
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>  <span class="keywordflow">return</span> thisPtrClassName.substr(0, found);</div>
|
|
726
|
+
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  }</div>
|
|
727
|
+
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  }</div>
|
|
728
|
+
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  </div>
|
|
729
|
+
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  <span class="keywordflow">return</span> thisPtrClassName;</div>
|
|
730
|
+
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> }</div>
|
|
738
731
|
</div><!-- fragment -->
|
|
739
732
|
</div>
|
|
740
733
|
</div>
|
|
@@ -754,14 +747,14 @@ Functions</h2></td></tr>
|
|
|
754
747
|
</table>
|
|
755
748
|
</div><div class="memdoc">
|
|
756
749
|
|
|
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="
|
|
750
|
+
<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>
|
|
751
|
+
<div class="fragment"><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> {</div>
|
|
752
|
+
<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>
|
|
753
|
+
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  <span class="stringliteral">"not a constructor?"</span>);</div>
|
|
754
|
+
<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>
|
|
755
|
+
<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>
|
|
756
|
+
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <span class="keywordflow">return</span> thisPtr;</div>
|
|
757
|
+
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> }</div>
|
|
765
758
|
</div><!-- fragment -->
|
|
766
759
|
</div>
|
|
767
760
|
</div>
|
|
@@ -789,13 +782,13 @@ Functions</h2></td></tr>
|
|
|
789
782
|
</table>
|
|
790
783
|
</div><div class="memdoc">
|
|
791
784
|
|
|
792
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
793
|
-
<div class="fragment"><div class="line"><a name="
|
|
794
|
-
<div class="line"><a name="
|
|
795
|
-
<div class="line"><a name="
|
|
796
|
-
<div class="line"><a name="
|
|
797
|
-
<div class="line"><a name="
|
|
798
|
-
<div class="line"><a name="
|
|
785
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00305">305</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
786
|
+
<div class="fragment"><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> {</div>
|
|
787
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a> *dl = <span class="keyword">nullptr</span>;</div>
|
|
788
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">if</span> (dl == <span class="keyword">nullptr</span>)</div>
|
|
789
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  dl = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>(mod);</div>
|
|
790
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> dl;</div>
|
|
791
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> }</div>
|
|
799
792
|
</div><!-- fragment -->
|
|
800
793
|
</div>
|
|
801
794
|
</div>
|
|
@@ -965,10 +958,10 @@ Functions</h2></td></tr>
|
|
|
965
958
|
|
|
966
959
|
<p>Get the corresponding Function based on its name. </p>
|
|
967
960
|
|
|
968
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
969
|
-
<div class="fragment"><div class="line"><a name="
|
|
970
|
-
<div class="line"><a name="
|
|
971
|
-
<div class="line"><a name="
|
|
961
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00382">382</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
962
|
+
<div class="fragment"><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> {</div>
|
|
963
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">return</span> LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>);</div>
|
|
964
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> }</div>
|
|
972
965
|
</div><!-- fragment -->
|
|
973
966
|
</div>
|
|
974
967
|
</div>
|
|
@@ -988,16 +981,16 @@ Functions</h2></td></tr>
|
|
|
988
981
|
</table>
|
|
989
982
|
</div><div class="memdoc">
|
|
990
983
|
|
|
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="
|
|
984
|
+
<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>
|
|
985
|
+
<div class="fragment"><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> {</div>
|
|
986
|
+
<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>
|
|
987
|
+
<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>
|
|
988
|
+
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  {</div>
|
|
989
|
+
<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>
|
|
990
|
+
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>  funName = mdstr->getString().str();</div>
|
|
991
|
+
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>  }</div>
|
|
992
|
+
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  <span class="keywordflow">return</span> funName;</div>
|
|
993
|
+
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> }</div>
|
|
1001
994
|
</div><!-- fragment -->
|
|
1002
995
|
</div>
|
|
1003
996
|
</div>
|
|
@@ -1090,15 +1083,15 @@ Functions</h2></td></tr>
|
|
|
1090
1083
|
|
|
1091
1084
|
<p>find the unique defined global across multiple modules </p>
|
|
1092
1085
|
|
|
1093
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
1094
|
-
<div class="fragment"><div class="line"><a name="
|
|
1095
|
-
<div class="line"><a name="
|
|
1096
|
-
<div class="line"><a name="
|
|
1097
|
-
<div class="line"><a name="
|
|
1098
|
-
<div class="line"><a name="
|
|
1099
|
-
<div class="line"><a name="
|
|
1100
|
-
<div class="line"><a name="
|
|
1101
|
-
<div class="line"><a name="
|
|
1086
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00395">395</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
1087
|
+
<div class="fragment"><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> {</div>
|
|
1088
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast<GlobalVariable>(val))</div>
|
|
1089
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div>
|
|
1090
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">if</span> (LLVMModuleSet::getLLVMModuleSet()->hasGlobalRep(gvar))</div>
|
|
1091
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  val = LLVMModuleSet::getLLVMModuleSet()->getGlobalRep(gvar);</div>
|
|
1092
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div>
|
|
1093
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">return</span> val;</div>
|
|
1094
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> }</div>
|
|
1102
1095
|
</div><!-- fragment -->
|
|
1103
1096
|
</div>
|
|
1104
1097
|
</div>
|
|
@@ -1553,91 +1546,6 @@ Functions</h2></td></tr>
|
|
|
1553
1546
|
</div><!-- fragment -->
|
|
1554
1547
|
</div>
|
|
1555
1548
|
</div>
|
|
1556
|
-
<a id="a6c5f2f951463494af2e7b0d3267f2772"></a>
|
|
1557
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a6c5f2f951463494af2e7b0d3267f2772">◆ </a></span>getRefTypeOfHeapAllocOrStatic() <span class="overload">[1/2]</span></h2>
|
|
1558
|
-
|
|
1559
|
-
<div class="memitem">
|
|
1560
|
-
<div class="memproto">
|
|
1561
|
-
<table class="mlabels">
|
|
1562
|
-
<tr>
|
|
1563
|
-
<td class="mlabels-left">
|
|
1564
|
-
<table class="memname">
|
|
1565
|
-
<tr>
|
|
1566
|
-
<td class="memname">const <a class="el" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* SVF::LLVMUtil::getRefTypeOfHeapAllocOrStatic </td>
|
|
1567
|
-
<td>(</td>
|
|
1568
|
-
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a> * </td>
|
|
1569
|
-
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
1570
|
-
<td></td>
|
|
1571
|
-
</tr>
|
|
1572
|
-
</table>
|
|
1573
|
-
</td>
|
|
1574
|
-
<td class="mlabels-right">
|
|
1575
|
-
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
1576
|
-
</tr>
|
|
1577
|
-
</table>
|
|
1578
|
-
</div><div class="memdoc">
|
|
1579
|
-
|
|
1580
|
-
<p>Get the reference type of heap/static object from an allocation site. </p>
|
|
1581
|
-
|
|
1582
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00135">135</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
1583
|
-
<div class="fragment"><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> {</div>
|
|
1584
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *refType = <span class="keyword">nullptr</span>;</div>
|
|
1585
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keyword">const</span> SVFInstruction* svfcall = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(cs);</div>
|
|
1586
|
-
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  CallSite svfcs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(svfcall);</div>
|
|
1587
|
-
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// Case 1: heap object held by *argument, we should get its element type.</span></div>
|
|
1588
|
-
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(svfcs))</div>
|
|
1589
|
-
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div>
|
|
1590
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">int</span> argPos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(svfcs);</div>
|
|
1591
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* arg = cs->getArgOperand(argPos);</div>
|
|
1592
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *argType = SVFUtil::dyn_cast<PointerType>(arg->getType()))</div>
|
|
1593
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// TODO: getPtrElementType need type inference</span></div>
|
|
1594
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  refType = SVFUtil::dyn_cast<PointerType>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(argType));</div>
|
|
1595
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div>
|
|
1596
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="comment">// Case 2: heap object held by return value.</span></div>
|
|
1597
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">else</span></div>
|
|
1598
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {</div>
|
|
1599
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(svfcs)</div>
|
|
1600
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  && <span class="stringliteral">"Must be heap alloc via ret, or static allocation site"</span>);</div>
|
|
1601
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  refType = SVFUtil::dyn_cast<PointerType>(cs->getType());</div>
|
|
1602
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div>
|
|
1603
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  assert(refType && <span class="stringliteral">"Allocated object must be held by a pointer-typed value."</span>);</div>
|
|
1604
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">return</span> refType;</div>
|
|
1605
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> }</div>
|
|
1606
|
-
</div><!-- fragment -->
|
|
1607
|
-
</div>
|
|
1608
|
-
</div>
|
|
1609
|
-
<a id="aa81614cdb6a2a912638d5dc980480af7"></a>
|
|
1610
|
-
<h2 class="memtitle"><span class="permalink"><a href="#aa81614cdb6a2a912638d5dc980480af7">◆ </a></span>getRefTypeOfHeapAllocOrStatic() <span class="overload">[2/2]</span></h2>
|
|
1611
|
-
|
|
1612
|
-
<div class="memitem">
|
|
1613
|
-
<div class="memproto">
|
|
1614
|
-
<table class="mlabels">
|
|
1615
|
-
<tr>
|
|
1616
|
-
<td class="mlabels-left">
|
|
1617
|
-
<table class="memname">
|
|
1618
|
-
<tr>
|
|
1619
|
-
<td class="memname">const <a class="el" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* SVF::LLVMUtil::getRefTypeOfHeapAllocOrStatic </td>
|
|
1620
|
-
<td>(</td>
|
|
1621
|
-
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * </td>
|
|
1622
|
-
<td class="paramname"><em>inst</em></td><td>)</td>
|
|
1623
|
-
<td></td>
|
|
1624
|
-
</tr>
|
|
1625
|
-
</table>
|
|
1626
|
-
</td>
|
|
1627
|
-
<td class="mlabels-right">
|
|
1628
|
-
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
1629
|
-
</tr>
|
|
1630
|
-
</table>
|
|
1631
|
-
</div><div class="memdoc">
|
|
1632
|
-
|
|
1633
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00160">160</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
1634
|
-
<div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> {</div>
|
|
1635
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">getLLVMCallSite</a>(inst);</div>
|
|
1636
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa81614cdb6a2a912638d5dc980480af7">getRefTypeOfHeapAllocOrStatic</a>(cs);</div>
|
|
1637
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> }</div>
|
|
1638
|
-
</div><!-- fragment -->
|
|
1639
|
-
</div>
|
|
1640
|
-
</div>
|
|
1641
1549
|
<a id="a8e4add30bd0ce00d3f2aa2e31c64fef8"></a>
|
|
1642
1550
|
<h2 class="memtitle"><span class="permalink"><a href="#a8e4add30bd0ce00d3f2aa2e31c64fef8">◆ </a></span>getSourceLoc()</h2>
|
|
1643
1551
|
|
|
@@ -1824,15 +1732,15 @@ Functions</h2></td></tr>
|
|
|
1824
1732
|
<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
1733
|
<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
1734
|
|
|
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="
|
|
1735
|
+
<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>
|
|
1736
|
+
<div class="fragment"><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> {</div>
|
|
1737
|
+
<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>
|
|
1738
|
+
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  vec.push_back({switchInst.getDefaultDest(), <span class="keyword">nullptr</span>});</div>
|
|
1739
|
+
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  </div>
|
|
1740
|
+
<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>
|
|
1741
|
+
<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>
|
|
1742
|
+
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  vec.push_back({cs.getCaseSuccessor(), cs.getCaseValue()});</div>
|
|
1743
|
+
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> }</div>
|
|
1836
1744
|
</div><!-- fragment -->
|
|
1837
1745
|
</div>
|
|
1838
1746
|
</div>
|
|
@@ -1852,77 +1760,27 @@ Functions</h2></td></tr>
|
|
|
1852
1760
|
</table>
|
|
1853
1761
|
</div><div class="memdoc">
|
|
1854
1762
|
|
|
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="
|
|
1876
|
-
</div><!-- fragment -->
|
|
1877
|
-
</div>
|
|
1878
|
-
</div>
|
|
1879
|
-
<a id="ae368713463c84425f9a1ad27ff401a47"></a>
|
|
1880
|
-
<h2 class="memtitle"><span class="permalink"><a href="#ae368713463c84425f9a1ad27ff401a47">◆ </a></span>getTypeOfHeapAlloc()</h2>
|
|
1881
|
-
|
|
1882
|
-
<div class="memitem">
|
|
1883
|
-
<div class="memproto">
|
|
1884
|
-
<table class="memname">
|
|
1885
|
-
<tr>
|
|
1886
|
-
<td class="memname">const <a class="el" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * SVF::LLVMUtil::getTypeOfHeapAlloc </td>
|
|
1887
|
-
<td>(</td>
|
|
1888
|
-
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * </td>
|
|
1889
|
-
<td class="paramname"><em>inst</em></td><td>)</td>
|
|
1890
|
-
<td></td>
|
|
1891
|
-
</tr>
|
|
1892
|
-
</table>
|
|
1893
|
-
</div><div class="memdoc">
|
|
1894
|
-
|
|
1895
|
-
<p>Get the type of the heap allocation. </p>
|
|
1896
|
-
<p>Return the type of the object from a heap allocation </p>
|
|
1897
|
-
|
|
1898
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00441">441</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1899
|
-
<div class="fragment"><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> {</div>
|
|
1900
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = SVFUtil::dyn_cast<PointerType>(inst->getType());</div>
|
|
1901
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfinst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(inst);</div>
|
|
1902
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(svfinst))</div>
|
|
1903
|
-
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  {</div>
|
|
1904
|
-
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">getFirstUseViaCastInst</a>(inst))</div>
|
|
1905
|
-
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</div>
|
|
1906
|
-
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* newTy = SVFUtil::dyn_cast<PointerType>(v->getType()))</div>
|
|
1907
|
-
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = newTy;</div>
|
|
1908
|
-
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  }</div>
|
|
1909
|
-
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div>
|
|
1910
|
-
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(svfinst))</div>
|
|
1911
|
-
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  {</div>
|
|
1912
|
-
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">LLVMUtil::getLLVMCallSite</a>(inst);</div>
|
|
1913
|
-
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordtype">int</span> arg_pos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(svfinst));</div>
|
|
1914
|
-
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* arg = cs->getArgOperand(arg_pos);</div>
|
|
1915
|
-
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = SVFUtil::dyn_cast<PointerType>(arg->getType());</div>
|
|
1916
|
-
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div>
|
|
1917
|
-
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">else</span></div>
|
|
1918
|
-
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  {</div>
|
|
1919
|
-
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  assert( <span class="keyword">false</span> && <span class="stringliteral">"not a heap allocation instruction?"</span>);</div>
|
|
1920
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div>
|
|
1921
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  </div>
|
|
1922
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  assert(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> && <span class="stringliteral">"not a pointer type?"</span>);</div>
|
|
1923
|
-
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="comment">// TODO: getPtrElementType need type inference</span></div>
|
|
1924
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
|
|
1925
|
-
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> }</div>
|
|
1763
|
+
<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>
|
|
1764
|
+
<div class="fragment"><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> {</div>
|
|
1765
|
+
<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>
|
|
1766
|
+
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  </div>
|
|
1767
|
+
<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>
|
|
1768
|
+
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  {</div>
|
|
1769
|
+
<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>
|
|
1770
|
+
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  {</div>
|
|
1771
|
+
<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>
|
|
1772
|
+
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  {</div>
|
|
1773
|
+
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <span class="comment">// assert(cs.getCalledFunction() &&</span></div>
|
|
1774
|
+
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  <span class="comment">// "Indirect call detected in thunk func");</span></div>
|
|
1775
|
+
<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>
|
|
1776
|
+
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  </div>
|
|
1777
|
+
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  ret = callbase->getCalledFunction();</div>
|
|
1778
|
+
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  }</div>
|
|
1779
|
+
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  }</div>
|
|
1780
|
+
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  }</div>
|
|
1781
|
+
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  </div>
|
|
1782
|
+
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keywordflow">return</span> ret;</div>
|
|
1783
|
+
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> }</div>
|
|
1926
1784
|
</div><!-- fragment -->
|
|
1927
1785
|
</div>
|
|
1928
1786
|
</div>
|
|
@@ -2010,28 +1868,28 @@ Functions</h2></td></tr>
|
|
|
2010
1868
|
</table>
|
|
2011
1869
|
</div><div class="memdoc">
|
|
2012
1870
|
|
|
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="
|
|
1871
|
+
<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>
|
|
1872
|
+
<div class="fragment"><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> {</div>
|
|
1873
|
+
<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>
|
|
1874
|
+
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  SVFUtil::dyn_cast<LoadInst>(cs->getCalledOperand());</div>
|
|
1875
|
+
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  assert(vfuncloadinst != <span class="keyword">nullptr</span>);</div>
|
|
1876
|
+
<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>
|
|
1877
|
+
<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>
|
|
1878
|
+
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr);</div>
|
|
1879
|
+
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  User::const_op_iterator oi = vfuncptrgepinst->idx_begin();</div>
|
|
1880
|
+
<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>
|
|
1881
|
+
<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>
|
|
1882
|
+
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  <span class="keywordflow">if</span> (idx == <span class="keyword">nullptr</span>)</div>
|
|
1883
|
+
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  {</div>
|
|
1884
|
+
<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>
|
|
1885
|
+
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  idx_value = 0;</div>
|
|
1886
|
+
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  }</div>
|
|
1887
|
+
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>  <span class="keywordflow">else</span></div>
|
|
1888
|
+
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  {</div>
|
|
1889
|
+
<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>
|
|
1890
|
+
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  }</div>
|
|
1891
|
+
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  <span class="keywordflow">return</span> idx_value;</div>
|
|
1892
|
+
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> }</div>
|
|
2035
1893
|
</div><!-- fragment -->
|
|
2036
1894
|
</div>
|
|
2037
1895
|
</div>
|
|
@@ -2051,17 +1909,17 @@ Functions</h2></td></tr>
|
|
|
2051
1909
|
</table>
|
|
2052
1910
|
</div><div class="memdoc">
|
|
2053
1911
|
|
|
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="
|
|
1912
|
+
<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>
|
|
1913
|
+
<div class="fragment"><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> {</div>
|
|
1914
|
+
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordflow">if</span> (cs->paramHasAttr(0, llvm::Attribute::StructRet))</div>
|
|
1915
|
+
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  {</div>
|
|
1916
|
+
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">return</span> cs->getArgOperand(1);</div>
|
|
1917
|
+
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  }</div>
|
|
1918
|
+
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">else</span></div>
|
|
1919
|
+
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  {</div>
|
|
1920
|
+
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keywordflow">return</span> cs->getArgOperand(0);</div>
|
|
1921
|
+
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  }</div>
|
|
1922
|
+
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> }</div>
|
|
2065
1923
|
</div><!-- fragment -->
|
|
2066
1924
|
</div>
|
|
2067
1925
|
</div>
|
|
@@ -2081,18 +1939,18 @@ Functions</h2></td></tr>
|
|
|
2081
1939
|
</table>
|
|
2082
1940
|
</div><div class="memdoc">
|
|
2083
1941
|
|
|
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="
|
|
1942
|
+
<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>
|
|
1943
|
+
<div class="fragment"><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> {</div>
|
|
1944
|
+
<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>
|
|
1945
|
+
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  SVFUtil::dyn_cast<LoadInst>(cs->getCalledOperand());</div>
|
|
1946
|
+
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  assert(loadInst != <span class="keyword">nullptr</span>);</div>
|
|
1947
|
+
<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>
|
|
1948
|
+
<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>
|
|
1949
|
+
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr);</div>
|
|
1950
|
+
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  assert(gepInst != <span class="keyword">nullptr</span>);</div>
|
|
1951
|
+
<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>
|
|
1952
|
+
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  <span class="keywordflow">return</span> vtbl;</div>
|
|
1953
|
+
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> }</div>
|
|
2096
1954
|
</div><!-- fragment -->
|
|
2097
1955
|
</div>
|
|
2098
1956
|
</div>
|
|
@@ -2127,6 +1985,56 @@ Functions</h2></td></tr>
|
|
|
2127
1985
|
</div><!-- fragment -->
|
|
2128
1986
|
</div>
|
|
2129
1987
|
</div>
|
|
1988
|
+
<a id="a9a7e07cbd487e829059f52a0fb62693f"></a>
|
|
1989
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a9a7e07cbd487e829059f52a0fb62693f">◆ </a></span>inferTypeOfHeapObjOrStaticObj()</h2>
|
|
1990
|
+
|
|
1991
|
+
<div class="memitem">
|
|
1992
|
+
<div class="memproto">
|
|
1993
|
+
<table class="memname">
|
|
1994
|
+
<tr>
|
|
1995
|
+
<td class="memname">const <a class="el" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * SVF::LLVMUtil::inferTypeOfHeapObjOrStaticObj </td>
|
|
1996
|
+
<td>(</td>
|
|
1997
|
+
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * </td>
|
|
1998
|
+
<td class="paramname"><em>inst</em></td><td>)</td>
|
|
1999
|
+
<td></td>
|
|
2000
|
+
</tr>
|
|
2001
|
+
</table>
|
|
2002
|
+
</div><div class="memdoc">
|
|
2003
|
+
|
|
2004
|
+
<p>Get the reference type of heap/static object from an allocation site. </p>
|
|
2005
|
+
<p>Return the type of the object from a heap allocation </p>
|
|
2006
|
+
|
|
2007
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00441">441</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2008
|
+
<div class="fragment"><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> {</div>
|
|
2009
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = SVFUtil::dyn_cast<PointerType>(inst->getType());</div>
|
|
2010
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfinst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(inst);</div>
|
|
2011
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(svfinst))</div>
|
|
2012
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  {</div>
|
|
2013
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">getFirstUseViaCastInst</a>(inst))</div>
|
|
2014
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</div>
|
|
2015
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* newTy = SVFUtil::dyn_cast<PointerType>(v->getType()))</div>
|
|
2016
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = newTy;</div>
|
|
2017
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  }</div>
|
|
2018
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div>
|
|
2019
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(svfinst))</div>
|
|
2020
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  {</div>
|
|
2021
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">LLVMUtil::getLLVMCallSite</a>(inst);</div>
|
|
2022
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordtype">int</span> arg_pos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(svfinst));</div>
|
|
2023
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* arg = cs->getArgOperand(arg_pos);</div>
|
|
2024
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = SVFUtil::dyn_cast<PointerType>(arg->getType());</div>
|
|
2025
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div>
|
|
2026
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">else</span></div>
|
|
2027
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  {</div>
|
|
2028
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  assert( <span class="keyword">false</span> && <span class="stringliteral">"not a heap allocation instruction?"</span>);</div>
|
|
2029
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div>
|
|
2030
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  </div>
|
|
2031
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  assert(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> && <span class="stringliteral">"not a pointer type?"</span>);</div>
|
|
2032
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="comment">// TODO: getPtrElementType need type inference</span></div>
|
|
2033
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
|
|
2034
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> }</div>
|
|
2035
|
+
</div><!-- fragment -->
|
|
2036
|
+
</div>
|
|
2037
|
+
</div>
|
|
2130
2038
|
<a id="a428bd75b33fab60988d8758090712f29"></a>
|
|
2131
2039
|
<h2 class="memtitle"><span class="permalink"><a href="#a428bd75b33fab60988d8758090712f29">◆ </a></span>isArgOfUncalledFunction()</h2>
|
|
2132
2040
|
|
|
@@ -2153,11 +2061,11 @@ Functions</h2></td></tr>
|
|
|
2153
2061
|
|
|
2154
2062
|
<p>Return true if the argument in a function does not have a caller. </p>
|
|
2155
2063
|
|
|
2156
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2157
|
-
<div class="fragment"><div class="line"><a name="
|
|
2158
|
-
<div class="line"><a name="
|
|
2159
|
-
<div class="line"><a name="
|
|
2160
|
-
<div class="line"><a name="
|
|
2064
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00177">177</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2065
|
+
<div class="fragment"><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> {</div>
|
|
2066
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> SVFUtil::isa<Argument>(val)</div>
|
|
2067
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  && <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">isNoCallerFunction</a>(SVFUtil::cast<Argument>(val)->getParent());</div>
|
|
2068
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> }</div>
|
|
2161
2069
|
</div><!-- fragment -->
|
|
2162
2070
|
</div>
|
|
2163
2071
|
</div>
|
|
@@ -2185,16 +2093,16 @@ Functions</h2></td></tr>
|
|
|
2185
2093
|
</table>
|
|
2186
2094
|
</div><div class="memdoc">
|
|
2187
2095
|
|
|
2188
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2189
|
-
<div class="fragment"><div class="line"><a name="
|
|
2190
|
-
<div class="line"><a name="
|
|
2191
|
-
<div class="line"><a name="
|
|
2192
|
-
<div class="line"><a name="
|
|
2193
|
-
<div class="line"><a name="
|
|
2194
|
-
<div class="line"><a name="
|
|
2195
|
-
<div class="line"><a name="
|
|
2196
|
-
<div class="line"><a name="
|
|
2197
|
-
<div class="line"><a name="
|
|
2096
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00282">282</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2097
|
+
<div class="fragment"><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> {</div>
|
|
2098
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
2099
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div>
|
|
2100
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">if</span> ((constExpr->getOpcode() >= Instruction::BinaryOpsBegin) &&</div>
|
|
2101
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  (constExpr->getOpcode() <= Instruction::BinaryOpsEnd))</div>
|
|
2102
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">return</span> constExpr;</div>
|
|
2103
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div>
|
|
2104
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
2105
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> }</div>
|
|
2198
2106
|
</div><!-- fragment -->
|
|
2199
2107
|
</div>
|
|
2200
2108
|
</div>
|
|
@@ -2321,15 +2229,15 @@ Functions</h2></td></tr>
|
|
|
2321
2229
|
</table>
|
|
2322
2230
|
</div><div class="memdoc">
|
|
2323
2231
|
|
|
2324
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2325
|
-
<div class="fragment"><div class="line"><a name="
|
|
2326
|
-
<div class="line"><a name="
|
|
2327
|
-
<div class="line"><a name="
|
|
2328
|
-
<div class="line"><a name="
|
|
2329
|
-
<div class="line"><a name="
|
|
2330
|
-
<div class="line"><a name="
|
|
2331
|
-
<div class="line"><a name="
|
|
2332
|
-
<div class="line"><a name="
|
|
2232
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00237">237</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2233
|
+
<div class="fragment"><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> {</div>
|
|
2234
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
2235
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  {</div>
|
|
2236
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">if</span> (constExpr->getOpcode() == Instruction::BitCast)</div>
|
|
2237
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">return</span> constExpr;</div>
|
|
2238
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div>
|
|
2239
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
2240
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> }</div>
|
|
2333
2241
|
</div><!-- fragment -->
|
|
2334
2242
|
</div>
|
|
2335
2243
|
</div>
|
|
@@ -2357,16 +2265,16 @@ Functions</h2></td></tr>
|
|
|
2357
2265
|
</table>
|
|
2358
2266
|
</div><div class="memdoc">
|
|
2359
2267
|
|
|
2360
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2361
|
-
<div class="fragment"><div class="line"><a name="
|
|
2362
|
-
<div class="line"><a name="
|
|
2363
|
-
<div class="line"><a name="
|
|
2364
|
-
<div class="line"><a name="
|
|
2365
|
-
<div class="line"><a name="
|
|
2366
|
-
<div class="line"><a name="
|
|
2367
|
-
<div class="line"><a name="
|
|
2368
|
-
<div class="line"><a name="
|
|
2369
|
-
<div class="line"><a name="
|
|
2268
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00271">271</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2269
|
+
<div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> {</div>
|
|
2270
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
2271
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div>
|
|
2272
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">if</span> (constExpr->getOpcode() == Instruction::ICmp ||</div>
|
|
2273
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  constExpr->getOpcode() == Instruction::FCmp)</div>
|
|
2274
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">return</span> constExpr;</div>
|
|
2275
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div>
|
|
2276
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
2277
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> }</div>
|
|
2370
2278
|
</div><!-- fragment -->
|
|
2371
2279
|
</div>
|
|
2372
2280
|
</div>
|
|
@@ -2470,11 +2378,11 @@ Functions</h2></td></tr>
|
|
|
2470
2378
|
|
|
2471
2379
|
<p>Return true if the value refers to constant data, e.g., i32 0. </p>
|
|
2472
2380
|
|
|
2473
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2474
|
-
<div class="fragment"><div class="line"><a name="
|
|
2475
|
-
<div class="line"><a name="
|
|
2476
|
-
<div class="line"><a name="
|
|
2477
|
-
<div class="line"><a name="
|
|
2381
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00388">388</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2382
|
+
<div class="fragment"><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> {</div>
|
|
2383
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a><<a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>, <a class="code" href="namespaceSVF.html#a7cbe1c6567039e72958fd70e423d3597">ConstantAggregate</a>,</div>
|
|
2384
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="namespaceSVF.html#a773900ea3c75022657aac1abf59fa51b">MetadataAsValue</a>, <a class="code" href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">BlockAddress</a>>(val);</div>
|
|
2385
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> }</div>
|
|
2478
2386
|
</div><!-- fragment -->
|
|
2479
2387
|
</div>
|
|
2480
2388
|
</div>
|
|
@@ -2495,35 +2403,35 @@ Functions</h2></td></tr>
|
|
|
2495
2403
|
</div><div class="memdoc">
|
|
2496
2404
|
<p>TODO: on mac os function name is an empty string after demangling</p>
|
|
2497
2405
|
|
|
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="
|
|
2406
|
+
<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>
|
|
2407
|
+
<div class="fragment"><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> {</div>
|
|
2408
|
+
<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>
|
|
2409
|
+
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2410
|
+
<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>
|
|
2411
|
+
<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>
|
|
2412
|
+
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  {</div>
|
|
2413
|
+
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2414
|
+
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  }</div>
|
|
2415
|
+
<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>
|
|
2416
|
+
<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>
|
|
2417
|
+
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  {</div>
|
|
2418
|
+
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2419
|
+
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  }</div>
|
|
2420
|
+
<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>
|
|
2421
|
+
<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>
|
|
2422
|
+
<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>
|
|
2423
|
+
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  <span class="keywordflow">if</span> (colon == std::string::npos)</div>
|
|
2424
|
+
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  {</div>
|
|
2425
|
+
<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>
|
|
2426
|
+
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  }</div>
|
|
2427
|
+
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <span class="keywordflow">else</span></div>
|
|
2428
|
+
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  {</div>
|
|
2429
|
+
<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>
|
|
2430
|
+
<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>
|
|
2431
|
+
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  }</div>
|
|
2432
|
+
<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>
|
|
2433
|
+
<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>
|
|
2434
|
+
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> }</div>
|
|
2527
2435
|
</div><!-- fragment -->
|
|
2528
2436
|
</div>
|
|
2529
2437
|
</div>
|
|
@@ -2543,11 +2451,11 @@ Functions</h2></td></tr>
|
|
|
2543
2451
|
</table>
|
|
2544
2452
|
</div><div class="memdoc">
|
|
2545
2453
|
|
|
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="
|
|
2454
|
+
<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>
|
|
2455
|
+
<div class="fragment"><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> {</div>
|
|
2456
|
+
<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>
|
|
2457
|
+
<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>
|
|
2458
|
+
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> }</div>
|
|
2551
2459
|
</div><!-- fragment -->
|
|
2552
2460
|
</div>
|
|
2553
2461
|
</div>
|
|
@@ -2567,37 +2475,37 @@ Functions</h2></td></tr>
|
|
|
2567
2475
|
</table>
|
|
2568
2476
|
</div><div class="memdoc">
|
|
2569
2477
|
|
|
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="
|
|
2478
|
+
<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>
|
|
2479
|
+
<div class="fragment"><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> {</div>
|
|
2480
|
+
<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>
|
|
2481
|
+
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2482
|
+
<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>
|
|
2483
|
+
<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>
|
|
2484
|
+
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  {</div>
|
|
2485
|
+
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2486
|
+
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  }</div>
|
|
2487
|
+
<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>
|
|
2488
|
+
<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>
|
|
2489
|
+
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  {</div>
|
|
2490
|
+
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2491
|
+
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  }</div>
|
|
2492
|
+
<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>
|
|
2493
|
+
<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>
|
|
2494
|
+
<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>
|
|
2495
|
+
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  <span class="keywordflow">if</span> (colon == std::string::npos)</div>
|
|
2496
|
+
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  {</div>
|
|
2497
|
+
<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>
|
|
2498
|
+
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  }</div>
|
|
2499
|
+
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  <span class="keywordflow">else</span></div>
|
|
2500
|
+
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>  {</div>
|
|
2501
|
+
<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>
|
|
2502
|
+
<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>
|
|
2503
|
+
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  }</div>
|
|
2504
|
+
<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>
|
|
2505
|
+
<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>
|
|
2506
|
+
<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>
|
|
2507
|
+
<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>
|
|
2508
|
+
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> }</div>
|
|
2601
2509
|
</div><!-- fragment -->
|
|
2602
2510
|
</div>
|
|
2603
2511
|
</div>
|
|
@@ -2627,15 +2535,15 @@ Functions</h2></td></tr>
|
|
|
2627
2535
|
|
|
2628
2536
|
<p>Return corresponding constant expression, otherwise return nullptr. </p>
|
|
2629
2537
|
|
|
2630
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2631
|
-
<div class="fragment"><div class="line"><a name="
|
|
2632
|
-
<div class="line"><a name="
|
|
2633
|
-
<div class="line"><a name="
|
|
2634
|
-
<div class="line"><a name="
|
|
2635
|
-
<div class="line"><a name="
|
|
2636
|
-
<div class="line"><a name="
|
|
2637
|
-
<div class="line"><a name="
|
|
2638
|
-
<div class="line"><a name="
|
|
2538
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00207">207</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2539
|
+
<div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> {</div>
|
|
2540
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
2541
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div>
|
|
2542
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span> (constExpr->getOpcode() == Instruction::GetElementPtr)</div>
|
|
2543
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span> constExpr;</div>
|
|
2544
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
|
2545
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
2546
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> }</div>
|
|
2639
2547
|
</div><!-- fragment -->
|
|
2640
2548
|
</div>
|
|
2641
2549
|
</div>
|
|
@@ -2663,15 +2571,15 @@ Functions</h2></td></tr>
|
|
|
2663
2571
|
</table>
|
|
2664
2572
|
</div><div class="memdoc">
|
|
2665
2573
|
|
|
2666
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2667
|
-
<div class="fragment"><div class="line"><a name="
|
|
2668
|
-
<div class="line"><a name="
|
|
2669
|
-
<div class="line"><a name="
|
|
2670
|
-
<div class="line"><a name="
|
|
2671
|
-
<div class="line"><a name="
|
|
2672
|
-
<div class="line"><a name="
|
|
2673
|
-
<div class="line"><a name="
|
|
2674
|
-
<div class="line"><a name="
|
|
2574
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00217">217</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2575
|
+
<div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> {</div>
|
|
2576
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
2577
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div>
|
|
2578
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">if</span> (constExpr->getOpcode() == Instruction::IntToPtr)</div>
|
|
2579
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">return</span> constExpr;</div>
|
|
2580
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div>
|
|
2581
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
2582
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> }</div>
|
|
2675
2583
|
</div><!-- fragment -->
|
|
2676
2584
|
</div>
|
|
2677
2585
|
</div>
|
|
@@ -2773,55 +2681,6 @@ Functions</h2></td></tr>
|
|
|
2773
2681
|
</div><!-- fragment -->
|
|
2774
2682
|
</div>
|
|
2775
2683
|
</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
2684
|
<a id="a17cce1a11e1bfc342a9e3e79fe35deef"></a>
|
|
2826
2685
|
<h2 class="memtitle"><span class="permalink"><a href="#a17cce1a11e1bfc342a9e3e79fe35deef">◆ </a></span>isNoCallerFunction()</h2>
|
|
2827
2686
|
|
|
@@ -2849,10 +2708,10 @@ Functions</h2></td></tr>
|
|
|
2849
2708
|
<p>Function does not have any possible caller in the call graph. </p>
|
|
2850
2709
|
<p>Return true if the function does not have a caller (either it is a main function or a dead function) </p>
|
|
2851
2710
|
|
|
2852
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2853
|
-
<div class="fragment"><div class="line"><a name="
|
|
2854
|
-
<div class="line"><a name="
|
|
2855
|
-
<div class="line"><a name="
|
|
2711
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00171">171</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2712
|
+
<div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> {</div>
|
|
2713
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(fun) || <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ac9d6aff1a5e778e45c51b4f3b6d787e0">LLVMUtil::isProgEntryFunction</a>(fun);</div>
|
|
2714
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }</div>
|
|
2856
2715
|
</div><!-- fragment -->
|
|
2857
2716
|
</div>
|
|
2858
2717
|
</div>
|
|
@@ -2979,15 +2838,15 @@ Functions</h2></td></tr>
|
|
|
2979
2838
|
</table>
|
|
2980
2839
|
</div><div class="memdoc">
|
|
2981
2840
|
|
|
2982
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2983
|
-
<div class="fragment"><div class="line"><a name="
|
|
2984
|
-
<div class="line"><a name="
|
|
2985
|
-
<div class="line"><a name="
|
|
2986
|
-
<div class="line"><a name="
|
|
2987
|
-
<div class="line"><a name="
|
|
2988
|
-
<div class="line"><a name="
|
|
2989
|
-
<div class="line"><a name="
|
|
2990
|
-
<div class="line"><a name="
|
|
2841
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00227">227</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2842
|
+
<div class="fragment"><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> {</div>
|
|
2843
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
2844
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div>
|
|
2845
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">if</span> (constExpr->getOpcode() == Instruction::PtrToInt)</div>
|
|
2846
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> constExpr;</div>
|
|
2847
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div>
|
|
2848
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
2849
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> }</div>
|
|
2991
2850
|
</div><!-- fragment -->
|
|
2992
2851
|
</div>
|
|
2993
2852
|
</div>
|
|
@@ -3055,28 +2914,28 @@ Functions</h2></td></tr>
|
|
|
3055
2914
|
<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
2915
|
<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
2916
|
|
|
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="
|
|
2917
|
+
<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>
|
|
2918
|
+
<div class="fragment"><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> {</div>
|
|
2919
|
+
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="keywordflow">if</span> (thisPtr1 == thisPtr2)</div>
|
|
2920
|
+
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2921
|
+
<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>
|
|
2922
|
+
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  {</div>
|
|
2923
|
+
<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>
|
|
2924
|
+
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  {</div>
|
|
2925
|
+
<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>
|
|
2926
|
+
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  {</div>
|
|
2927
|
+
<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>
|
|
2928
|
+
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  {</div>
|
|
2929
|
+
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  <span class="keywordflow">if</span> (load->getNextNode() &&</div>
|
|
2930
|
+
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  SVFUtil::isa<CastInst>(load->getNextNode()))</div>
|
|
2931
|
+
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <span class="keywordflow">return</span> SVFUtil::cast<CastInst>(load->getNextNode()) ==</div>
|
|
2932
|
+
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  (thisPtr2->stripPointerCasts());</div>
|
|
2933
|
+
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  }</div>
|
|
2934
|
+
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  }</div>
|
|
2935
|
+
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  }</div>
|
|
2936
|
+
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  }</div>
|
|
2937
|
+
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2938
|
+
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> }</div>
|
|
3080
2939
|
</div><!-- fragment -->
|
|
3081
2940
|
</div>
|
|
3082
2941
|
</div>
|
|
@@ -3104,15 +2963,15 @@ Functions</h2></td></tr>
|
|
|
3104
2963
|
</table>
|
|
3105
2964
|
</div><div class="memdoc">
|
|
3106
2965
|
|
|
3107
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
3108
|
-
<div class="fragment"><div class="line"><a name="
|
|
3109
|
-
<div class="line"><a name="
|
|
3110
|
-
<div class="line"><a name="
|
|
3111
|
-
<div class="line"><a name="
|
|
3112
|
-
<div class="line"><a name="
|
|
3113
|
-
<div class="line"><a name="
|
|
3114
|
-
<div class="line"><a name="
|
|
3115
|
-
<div class="line"><a name="
|
|
2966
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00247">247</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2967
|
+
<div class="fragment"><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> {</div>
|
|
2968
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
2969
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  {</div>
|
|
2970
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">if</span> (constExpr->getOpcode() == Instruction::Select)</div>
|
|
2971
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">return</span> constExpr;</div>
|
|
2972
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  }</div>
|
|
2973
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
2974
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> }</div>
|
|
3116
2975
|
</div><!-- fragment -->
|
|
3117
2976
|
</div>
|
|
3118
2977
|
</div>
|
|
@@ -3140,19 +2999,19 @@ Functions</h2></td></tr>
|
|
|
3140
2999
|
</table>
|
|
3141
3000
|
</div><div class="memdoc">
|
|
3142
3001
|
|
|
3143
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
3144
|
-
<div class="fragment"><div class="line"><a name="
|
|
3145
|
-
<div class="line"><a name="
|
|
3146
|
-
<div class="line"><a name="
|
|
3147
|
-
<div class="line"><a name="
|
|
3148
|
-
<div class="line"><a name="
|
|
3149
|
-
<div class="line"><a name="
|
|
3150
|
-
<div class="line"><a name="
|
|
3151
|
-
<div class="line"><a name="
|
|
3152
|
-
<div class="line"><a name="
|
|
3153
|
-
<div class="line"><a name="
|
|
3154
|
-
<div class="line"><a name="
|
|
3155
|
-
<div class="line"><a name="
|
|
3002
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00257">257</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
3003
|
+
<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> {</div>
|
|
3004
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
3005
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div>
|
|
3006
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span> (constExpr->getOpcode() == Instruction::Trunc ||</div>
|
|
3007
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  constExpr->getOpcode() == Instruction::FPTrunc ||</div>
|
|
3008
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  constExpr->getOpcode() == Instruction::ZExt ||</div>
|
|
3009
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  constExpr->getOpcode() == Instruction::SExt ||</div>
|
|
3010
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  constExpr->getOpcode() == Instruction::FPExt)</div>
|
|
3011
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span> constExpr;</div>
|
|
3012
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div>
|
|
3013
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
3014
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> }</div>
|
|
3156
3015
|
</div><!-- fragment -->
|
|
3157
3016
|
</div>
|
|
3158
3017
|
</div>
|
|
@@ -3180,16 +3039,16 @@ Functions</h2></td></tr>
|
|
|
3180
3039
|
</table>
|
|
3181
3040
|
</div><div class="memdoc">
|
|
3182
3041
|
|
|
3183
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
3184
|
-
<div class="fragment"><div class="line"><a name="
|
|
3185
|
-
<div class="line"><a name="
|
|
3186
|
-
<div class="line"><a name="
|
|
3187
|
-
<div class="line"><a name="
|
|
3188
|
-
<div class="line"><a name="
|
|
3189
|
-
<div class="line"><a name="
|
|
3190
|
-
<div class="line"><a name="
|
|
3191
|
-
<div class="line"><a name="
|
|
3192
|
-
<div class="line"><a name="
|
|
3042
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00293">293</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
3043
|
+
<div class="fragment"><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> {</div>
|
|
3044
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
3045
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div>
|
|
3046
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">if</span> ((constExpr->getOpcode() >= Instruction::UnaryOpsBegin) &&</div>
|
|
3047
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  (constExpr->getOpcode() <= Instruction::UnaryOpsEnd))</div>
|
|
3048
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">return</span> constExpr;</div>
|
|
3049
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  }</div>
|
|
3050
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
3051
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> }</div>
|
|
3193
3052
|
</div><!-- fragment -->
|
|
3194
3053
|
</div>
|
|
3195
3054
|
</div>
|
|
@@ -3321,36 +3180,36 @@ Functions</h2></td></tr>
|
|
|
3321
3180
|
</table>
|
|
3322
3181
|
</div><div class="memdoc">
|
|
3323
3182
|
|
|
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="
|
|
3183
|
+
<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>
|
|
3184
|
+
<div class="fragment"><div class="line"><a name="l00993"></a><span class="lineno"> 993</span> {</div>
|
|
3185
|
+
<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>
|
|
3186
|
+
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="comment">// ptr)</span></div>
|
|
3187
|
+
<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>
|
|
3188
|
+
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3189
|
+
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  </div>
|
|
3190
|
+
<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>
|
|
3191
|
+
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="comment">// class name</span></div>
|
|
3192
|
+
<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>
|
|
3193
|
+
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3194
|
+
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  </div>
|
|
3195
|
+
<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>
|
|
3196
|
+
<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>
|
|
3197
|
+
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  {</div>
|
|
3198
|
+
<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>
|
|
3199
|
+
<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>
|
|
3200
|
+
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr))</div>
|
|
3201
|
+
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  {</div>
|
|
3202
|
+
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keywordflow">if</span> (vfuncptrgepinst->getNumIndices() != 1)</div>
|
|
3203
|
+
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3204
|
+
<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>
|
|
3205
|
+
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(vtbl))</div>
|
|
3206
|
+
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  {</div>
|
|
3207
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
3208
|
+
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  }</div>
|
|
3209
|
+
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  }</div>
|
|
3210
|
+
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  }</div>
|
|
3211
|
+
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3212
|
+
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> }</div>
|
|
3354
3213
|
</div><!-- fragment -->
|
|
3355
3214
|
</div>
|
|
3356
3215
|
</div>
|
|
@@ -3704,26 +3563,26 @@ Functions</h2></td></tr>
|
|
|
3704
3563
|
</table>
|
|
3705
3564
|
</div><div class="memdoc">
|
|
3706
3565
|
|
|
3707
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
3708
|
-
<div class="fragment"><div class="line"><a name="
|
|
3709
|
-
<div class="line"><a name="
|
|
3710
|
-
<div class="line"><a name="
|
|
3711
|
-
<div class="line"><a name="
|
|
3712
|
-
<div class="line"><a name="
|
|
3713
|
-
<div class="line"><a name="
|
|
3714
|
-
<div class="line"><a name="
|
|
3715
|
-
<div class="line"><a name="
|
|
3716
|
-
<div class="line"><a name="
|
|
3717
|
-
<div class="line"><a name="
|
|
3718
|
-
<div class="line"><a name="
|
|
3719
|
-
<div class="line"><a name="
|
|
3720
|
-
<div class="line"><a name="
|
|
3721
|
-
<div class="line"><a name="
|
|
3722
|
-
<div class="line"><a name="
|
|
3723
|
-
<div class="line"><a name="
|
|
3724
|
-
<div class="line"><a name="
|
|
3725
|
-
<div class="line"><a name="
|
|
3726
|
-
<div class="line"><a name="
|
|
3566
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00360">360</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
3567
|
+
<div class="fragment"><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> {</div>
|
|
3568
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* llvm_rhs = LLVMModuleSet::getLLVMModuleSet()->getLLVMType(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
|
|
3569
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">llvm::PointerType</a>* llvm_rhs_ptr = SVFUtil::dyn_cast<PointerType>(llvm_rhs);</div>
|
|
3570
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  assert(llvm_rhs_ptr && <span class="stringliteral">"not a pointer type?"</span>);</div>
|
|
3571
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="comment">// TODO: getPtrElementType need type inference</span></div>
|
|
3572
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *ptrElementType = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(llvm_rhs_ptr);</div>
|
|
3573
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> llvm_rhs_size = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2b5fdf455c5dd40c0baa60185e5e41c6">LLVMUtil::getTypeSizeInBytes</a>(ptrElementType);</div>
|
|
3574
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> llvm_elem_size = -1;</div>
|
|
3575
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (ptrElementType->isArrayTy() && llvm_rhs_size > 0)</div>
|
|
3576
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div>
|
|
3577
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordtype">size_t</span> array_len = ptrElementType->getArrayNumElements();</div>
|
|
3578
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  llvm_elem_size = llvm_rhs_size / array_len;</div>
|
|
3579
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div>
|
|
3580
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">else</span></div>
|
|
3581
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  {</div>
|
|
3582
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  llvm_elem_size =llvm_rhs_size;</div>
|
|
3583
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div>
|
|
3584
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">return</span> llvm_elem_size;</div>
|
|
3585
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> }</div>
|
|
3727
3586
|
</div><!-- fragment -->
|
|
3728
3587
|
</div>
|
|
3729
3588
|
</div>
|
|
@@ -3743,18 +3602,18 @@ Functions</h2></td></tr>
|
|
|
3743
3602
|
</table>
|
|
3744
3603
|
</div><div class="memdoc">
|
|
3745
3604
|
|
|
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="
|
|
3605
|
+
<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>
|
|
3606
|
+
<div class="fragment"><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> {</div>
|
|
3607
|
+
<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>
|
|
3608
|
+
<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>
|
|
3609
|
+
<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>
|
|
3610
|
+
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>  {</div>
|
|
3611
|
+
<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>
|
|
3612
|
+
<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>
|
|
3613
|
+
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
3614
|
+
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>  }</div>
|
|
3615
|
+
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3616
|
+
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> }</div>
|
|
3758
3617
|
</div><!-- fragment -->
|
|
3759
3618
|
</div>
|
|
3760
3619
|
</div>
|
|
@@ -3813,14 +3672,13 @@ Functions</h2></td></tr>
|
|
|
3813
3672
|
</div><!-- contents -->
|
|
3814
3673
|
<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
3674
|
<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#
|
|
3675
|
+
<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
3676
|
<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
3677
|
<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
3678
|
<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
3679
|
<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
3680
|
<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
3681
|
<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
3682
|
<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
3683
|
<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
3684
|
<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 +3709,7 @@ Functions</h2></td></tr>
|
|
|
3851
3709
|
<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
3710
|
<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
3711
|
<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#
|
|
3712
|
+
<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
3713
|
<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
3714
|
<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
3715
|
<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>
|
|
@@ -3863,7 +3721,7 @@ Functions</h2></td></tr>
|
|
|
3863
3721
|
<div class="ttc" id="anamespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
|
|
3864
3722
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a745a2addadc136075d45c7fb8437af3e"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00153">CppUtil.cpp:153</a></div></div>
|
|
3865
3723
|
<div class="ttc" id="acJSON_8cpp_html_a930920b2bc42824a5c03be681830f4b2"><div class="ttname"><a href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a></div><div class="ttdeci">return true</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02295">cJSON.cpp:2295</a></div></div>
|
|
3866
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
3724
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00388">LLVMUtil.h:388</a></div></div>
|
|
3867
3725
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
3868
3726
|
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
|
|
3869
3727
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
@@ -3874,9 +3732,9 @@ Functions</h2></td></tr>
|
|
|
3874
3732
|
<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
3733
|
<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
3734
|
<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#
|
|
3878
|
-
<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#
|
|
3879
|
-
<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#
|
|
3735
|
+
<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>
|
|
3736
|
+
<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#l00305">LLVMUtil.h:305</a></div></div>
|
|
3737
|
+
<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#l00217">LLVMUtil.h:217</a></div></div>
|
|
3880
3738
|
<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>
|
|
3881
3739
|
<div class="ttc" id="anamespaceSVF_html_a962e9a9044a46fc4bd2367384f6e0827"><div class="ttname"><a href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">SVF::CastInst</a></div><div class="ttdeci">llvm::CastInst CastInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00156">BasicTypes.h:156</a></div></div>
|
|
3882
3740
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a0095d23a9c9d5d62ec4a23c56824b5f0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">SVF::LLVMUtil::getLLVMCallSite</a></div><div class="ttdeci">const CallBase * getLLVMCallSite(const Value *value)</div><div class="ttdoc">Return LLVM callsite given a value.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00068">LLVMUtil.h:68</a></div></div>
|
|
@@ -3894,8 +3752,7 @@ Functions</h2></td></tr>
|
|
|
3894
3752
|
<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
3753
|
<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
3754
|
<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#
|
|
3898
|
-
<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>
|
|
3755
|
+
<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>
|
|
3899
3756
|
<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
3757
|
<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>
|
|
3901
3758
|
<div class="ttc" id="anamespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00274">BasicTypes.h:274</a></div></div>
|
|
@@ -3904,7 +3761,7 @@ Functions</h2></td></tr>
|
|
|
3904
3761
|
<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
3762
|
<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
3763
|
<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#
|
|
3764
|
+
<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
3765
|
<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
3766
|
<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
3767
|
<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>
|
|
@@ -3912,14 +3769,14 @@ Functions</h2></td></tr>
|
|
|
3912
3769
|
<div class="ttc" id="anamespaceSVF_html_a3011dbac9102f044ad5f36a4ad3d4a71"><div class="ttname"><a href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">SVF::NamedMDNode</a></div><div class="ttdeci">llvm::NamedMDNode NamedMDNode</div><div class="ttdoc">LLVM metadata and debug information.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00109">BasicTypes.h:109</a></div></div>
|
|
3913
3770
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a5a7dc8680a9714e08b01dd339b85bb20"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">SVF::LLVMUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</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#l00046">LLVMUtil.h:46</a></div></div>
|
|
3914
3771
|
<div class="ttc" id="anamespaceSVF_html_a28eec26ec8edaa5e96aecfeb01f6c0d4"><div class="ttname"><a href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">SVF::MDString</a></div><div class="ttdeci">llvm::MDString MDString</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
|
|
3915
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a17cce1a11e1bfc342a9e3e79fe35deef"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">SVF::LLVMUtil::isNoCallerFunction</a></div><div class="ttdeci">bool isNoCallerFunction(const Function *fun)</div><div class="ttdoc">Function does not have any possible caller in the call graph.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
3772
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a17cce1a11e1bfc342a9e3e79fe35deef"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">SVF::LLVMUtil::isNoCallerFunction</a></div><div class="ttdeci">bool isNoCallerFunction(const Function *fun)</div><div class="ttdoc">Function does not have any possible caller in the call graph.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00171">LLVMUtil.h:171</a></div></div>
|
|
3916
3773
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_afbd60d5443c7fa1448813d00bb5d0fa7"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">SVF::LLVMUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the next instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00352">LLVMUtil.cpp:352</a></div></div>
|
|
3917
3774
|
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00626">SVFValue.h:626</a></div></div>
|
|
3918
3775
|
<div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00054">SVFType.h:54</a></div></div>
|
|
3919
3776
|
<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
3777
|
<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
3778
|
<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#
|
|
3779
|
+
<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
3780
|
<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
3781
|
<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
3782
|
<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>
|