svf-tools 1.0.829 → 1.0.830
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/AccessPath_8cpp_source.html +225 -224
- package/SVF-doxygen/html/AccessPath_8h_source.html +11 -11
- package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/BasicTypes_8h.html +2 -0
- package/SVF-doxygen/html/BasicTypes_8h_source.html +123 -121
- package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +11 -11
- package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/DCHG_8cpp_source.html +12 -12
- package/SVF-doxygen/html/DCHG_8h_source.html +5 -5
- package/SVF-doxygen/html/DDAClient_8cpp_source.html +2 -2
- package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAVFSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +145 -144
- package/SVF-doxygen/html/LLVMModule_8h_source.html +3 -3
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +1138 -1066
- package/SVF-doxygen/html/LLVMUtil_8h.html +2 -0
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +419 -414
- package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +3 -3
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +4 -4
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +363 -362
- package/SVF-doxygen/html/PointerAnalysis_8h_source.html +13 -13
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +7 -7
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +11 -10
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +927 -924
- package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +35 -34
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFIR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIR_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFStat_8cpp_source.html +12 -12
- package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFStatements_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFType_8cpp_source.html +38 -37
- package/SVF-doxygen/html/SVFType_8h_source.html +5 -5
- package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFVariables_8h_source.html +1 -1
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +653 -651
- package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +17 -17
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +339 -338
- package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +33 -33
- package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +236 -235
- package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +11 -11
- package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1GepStmt.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IRGraph.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +141 -140
- package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MemObj.html +121 -121
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInfo.html +29 -29
- package/SVF-doxygen/html/classSVF_1_1ObjVar.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +342 -341
- package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFIR.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +11 -10
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +868 -864
- package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +3 -2
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +634 -631
- package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +125 -124
- package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/functions_func_g.html +10 -10
- package/SVF-doxygen/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/functions_g.html +6 -6
- package/SVF-doxygen/html/functions_r.html +2 -2
- package/SVF-doxygen/html/functions_s.html +5 -5
- package/SVF-doxygen/html/functions_t.html +7 -7
- package/SVF-doxygen/html/functions_v.html +3 -1
- package/SVF-doxygen/html/functions_w.html +8 -8
- package/SVF-doxygen/html/namespaceSVF.html +43 -25
- package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +1233 -1138
- package/SVF-doxygen/html/namespacemembers_func_g.html +6 -3
- package/SVF-doxygen/html/namespacemembers_g.html +10 -4
- package/SVF-doxygen/html/namespacemembers_type_g.html +3 -0
- package/SVF-doxygen/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/search/all_11.js +223 -223
- package/SVF-doxygen/html/search/all_12.js +553 -553
- package/SVF-doxygen/html/search/all_13.js +192 -192
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +167 -167
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +172 -172
- package/SVF-doxygen/html/search/all_7.js +895 -893
- package/SVF-doxygen/html/search/all_8.js +198 -198
- package/SVF-doxygen/html/search/all_9.js +607 -607
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +198 -198
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +80 -80
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +34 -34
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +21 -21
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +55 -55
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +360 -360
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +139 -139
- package/SVF-doxygen/html/search/functions_12.js +288 -288
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +172 -172
- package/SVF-doxygen/html/search/functions_2.js +89 -89
- package/SVF-doxygen/html/search/functions_3.js +258 -258
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +60 -60
- package/SVF-doxygen/html/search/functions_7.js +857 -856
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +423 -423
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +61 -61
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +56 -55
- package/SVF-doxygen/html/search/typedefs_7.js +44 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +151 -151
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/search/variables_11.js +44 -44
- package/SVF-doxygen/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/search/variables_13.js +76 -76
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -34
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -78
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
- package/package.json +1 -1
- package/svf/include/MemoryModel/AccessPath.h +2 -2
- package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +2 -2
- package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +4 -4
- package/svf/lib/MemoryModel/AccessPath.cpp +6 -5
- package/svf/lib/MemoryModel/PointerAnalysis.cpp +1 -0
- package/svf/lib/SVFIR/SVFType.cpp +1 -0
- package/svf/lib/SVFIR/SymbolTableInfo.cpp +1 -0
- package/svf-llvm/include/SVF-LLVM/BasicTypes.h +1 -0
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +6 -0
- package/svf-llvm/lib/LLVMModule.cpp +1 -0
- package/svf-llvm/lib/LLVMUtil.cpp +70 -0
- package/svf-llvm/lib/SVFIRBuilder.cpp +3 -1
- package/svf-llvm/lib/SymbolTableBuilder.cpp +4 -1
|
@@ -216,72 +216,72 @@ Friends</h2></td></tr>
|
|
|
216
216
|
<p>Analyze byte size of heap alloc function (e.g. malloc/calloc/...) </p>
|
|
217
217
|
<p>Analyze byte size of heap alloc function (e.g. malloc/calloc/...) 1) <b>attribute</b>((annotate("ALLOC_RET"), annotate("AllocSize:Arg0"))) void* safe_malloc(unsigned long size). Byte Size is the size(Arg0) 2)__attribute__((annotate("ALLOC_RET"), annotate("AllocSize:Arg0*Arg1"))) char* safecalloc(int a, int b) Byte Size is a(Arg0) * b(Arg1) 3)__attribute__((annotate("ALLOC_RET"), annotate("UNKNOWN"))) void* __sysv_signal(int a, void *b) Byte Size is Unknown If all required arg values are constant, byte Size is also constant, otherwise return ByteSize 0 </p>
|
|
218
218
|
|
|
219
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
220
|
-
<div class="fragment"><div class="line"><a name="
|
|
221
|
-
<div class="line"><a name="
|
|
222
|
-
<div class="line"><a name="
|
|
223
|
-
<div class="line"><a name="
|
|
224
|
-
<div class="line"><a name="
|
|
225
|
-
<div class="line"><a name="
|
|
226
|
-
<div class="line"><a name="
|
|
227
|
-
<div class="line"><a name="
|
|
228
|
-
<div class="line"><a name="
|
|
229
|
-
<div class="line"><a name="
|
|
230
|
-
<div class="line"><a name="
|
|
231
|
-
<div class="line"><a name="
|
|
232
|
-
<div class="line"><a name="
|
|
233
|
-
<div class="line"><a name="
|
|
234
|
-
<div class="line"><a name="
|
|
235
|
-
<div class="line"><a name="
|
|
236
|
-
<div class="line"><a name="
|
|
237
|
-
<div class="line"><a name="
|
|
238
|
-
<div class="line"><a name="
|
|
239
|
-
<div class="line"><a name="
|
|
240
|
-
<div class="line"><a name="
|
|
241
|
-
<div class="line"><a name="
|
|
242
|
-
<div class="line"><a name="
|
|
243
|
-
<div class="line"><a name="
|
|
244
|
-
<div class="line"><a name="
|
|
245
|
-
<div class="line"><a name="
|
|
246
|
-
<div class="line"><a name="
|
|
247
|
-
<div class="line"><a name="
|
|
248
|
-
<div class="line"><a name="
|
|
249
|
-
<div class="line"><a name="
|
|
250
|
-
<div class="line"><a name="
|
|
251
|
-
<div class="line"><a name="
|
|
252
|
-
<div class="line"><a name="
|
|
253
|
-
<div class="line"><a name="
|
|
254
|
-
<div class="line"><a name="
|
|
255
|
-
<div class="line"><a name="
|
|
256
|
-
<div class="line"><a name="
|
|
257
|
-
<div class="line"><a name="
|
|
258
|
-
<div class="line"><a name="
|
|
259
|
-
<div class="line"><a name="
|
|
260
|
-
<div class="line"><a name="
|
|
261
|
-
<div class="line"><a name="
|
|
262
|
-
<div class="line"><a name="
|
|
263
|
-
<div class="line"><a name="
|
|
264
|
-
<div class="line"><a name="
|
|
265
|
-
<div class="line"><a name="
|
|
266
|
-
<div class="line"><a name="
|
|
267
|
-
<div class="line"><a name="
|
|
268
|
-
<div class="line"><a name="
|
|
269
|
-
<div class="line"><a name="
|
|
270
|
-
<div class="line"><a name="
|
|
271
|
-
<div class="line"><a name="
|
|
272
|
-
<div class="line"><a name="
|
|
273
|
-
<div class="line"><a name="
|
|
274
|
-
<div class="line"><a name="
|
|
275
|
-
<div class="line"><a name="
|
|
276
|
-
<div class="line"><a name="
|
|
277
|
-
<div class="line"><a name="
|
|
278
|
-
<div class="line"><a name="
|
|
279
|
-
<div class="line"><a name="
|
|
280
|
-
<div class="line"><a name="
|
|
281
|
-
<div class="line"><a name="
|
|
282
|
-
<div class="line"><a name="
|
|
283
|
-
<div class="line"><a name="
|
|
284
|
-
<div class="line"><a name="
|
|
219
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00689">689</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
220
|
+
<div class="fragment"><div class="line"><a name="l00690"></a><span class="lineno"> 690</span> {</div>
|
|
221
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">llvm::CallInst</a>* callInst = llvm::dyn_cast<llvm::CallInst>(val))</div>
|
|
222
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  {</div>
|
|
223
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">llvm::Function</a>* calledFunction =</div>
|
|
224
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  callInst->getCalledFunction())</div>
|
|
225
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  {</div>
|
|
226
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfFunction =</div>
|
|
227
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(</div>
|
|
228
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  calledFunction);</div>
|
|
229
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  std::vector<const Value*> args;</div>
|
|
230
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="comment">// Heap alloc functions have annoation like "AllocSize:Arg1"</span></div>
|
|
231
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">for</span> (<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> annotation : svfFunction-><a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>())</div>
|
|
232
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  {</div>
|
|
233
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keywordflow">if</span> (annotation.find(<span class="stringliteral">"AllocSize:"</span>) != std::string::npos)</div>
|
|
234
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  {</div>
|
|
235
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> allocSize = annotation.substr(10);</div>
|
|
236
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  std::stringstream ss(allocSize);</div>
|
|
237
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> token;</div>
|
|
238
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="comment">// Analyaze annotation string and attract Arg list</span></div>
|
|
239
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">while</span> (std::getline(ss, token, <span class="charliteral">'*'</span>))</div>
|
|
240
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  {</div>
|
|
241
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordflow">if</span> (token.rfind(<span class="stringliteral">"Arg"</span>, 0) == 0)</div>
|
|
242
|
+
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  {</div>
|
|
243
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> argIndex;</div>
|
|
244
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  std::istringstream(token.substr(3)) >> argIndex;</div>
|
|
245
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">if</span> (argIndex < callInst->getNumOperands() - 1)</div>
|
|
246
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  {</div>
|
|
247
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  args.push_back(</div>
|
|
248
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  callInst->getArgOperand(argIndex));</div>
|
|
249
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  }</div>
|
|
250
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  }</div>
|
|
251
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  }</div>
|
|
252
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  }</div>
|
|
253
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div>
|
|
254
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> product = 1;</div>
|
|
255
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">if</span> (args.size() > 0)</div>
|
|
256
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  {</div>
|
|
257
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="comment">// for annotations like "AllocSize:Arg0*Arg1"</span></div>
|
|
258
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">llvm::Value</a>* arg : args)</div>
|
|
259
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  {</div>
|
|
260
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">llvm::ConstantInt</a>* constIntArg =</div>
|
|
261
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  llvm::dyn_cast<llvm::ConstantInt>(arg))</div>
|
|
262
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  {</div>
|
|
263
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="comment">// Multiply the constant Value if all Args are const</span></div>
|
|
264
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  product *= constIntArg->getZExtValue();</div>
|
|
265
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  }</div>
|
|
266
|
+
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keywordflow">else</span></div>
|
|
267
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  {</div>
|
|
268
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="comment">// if Arg list has non-const value, return 0 to indicate it is non const byte size</span></div>
|
|
269
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">return</span> 0;</div>
|
|
270
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  }</div>
|
|
271
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  }</div>
|
|
272
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="comment">// If all the Args are const, return product</span></div>
|
|
273
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">return</span> product;</div>
|
|
274
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  }</div>
|
|
275
|
+
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordflow">else</span></div>
|
|
276
|
+
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  {</div>
|
|
277
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="comment">// for annotations like "AllocSize:UNKNOWN"</span></div>
|
|
278
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">return</span> 0;</div>
|
|
279
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  }</div>
|
|
280
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  }</div>
|
|
281
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  }</div>
|
|
282
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="comment">// if it is not CallInst or CallInst has no CalledFunction, return 0 to indicate it is non const byte size</span></div>
|
|
283
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordflow">return</span> 0;</div>
|
|
284
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> }</div>
|
|
285
285
|
</div><!-- fragment -->
|
|
286
286
|
</div>
|
|
287
287
|
</div>
|
|
@@ -323,31 +323,31 @@ Friends</h2></td></tr>
|
|
|
323
323
|
<p>Analyse types of heap and static objects </p>
|
|
324
324
|
<p>For an C++ class, it can have variant elements depending on the vtable size, Hence we only handle non-cpp-class object, the type of the cpp class is treated as PointerType at the cast site</p>
|
|
325
325
|
|
|
326
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
327
|
-
<div class="fragment"><div class="line"><a name="
|
|
328
|
-
<div class="line"><a name="
|
|
329
|
-
<div class="line"><a name="
|
|
330
|
-
<div class="line"><a name="
|
|
331
|
-
<div class="line"><a name="
|
|
332
|
-
<div class="line"><a name="
|
|
333
|
-
<div class="line"><a name="
|
|
334
|
-
<div class="line"><a name="
|
|
335
|
-
<div class="line"><a name="
|
|
336
|
-
<div class="line"><a name="
|
|
337
|
-
<div class="line"><a name="
|
|
338
|
-
<div class="line"><a name="
|
|
339
|
-
<div class="line"><a name="
|
|
340
|
-
<div class="line"><a name="
|
|
341
|
-
<div class="line"><a name="
|
|
342
|
-
<div class="line"><a name="
|
|
343
|
-
<div class="line"><a name="
|
|
344
|
-
<div class="line"><a name="
|
|
345
|
-
<div class="line"><a name="
|
|
346
|
-
<div class="line"><a name="
|
|
347
|
-
<div class="line"><a name="
|
|
348
|
-
<div class="line"><a name="
|
|
349
|
-
<div class="line"><a name="
|
|
350
|
-
<div class="line"><a name="
|
|
326
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00759">759</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
327
|
+
<div class="fragment"><div class="line"><a name="l00760"></a><span class="lineno"> 760</span> {</div>
|
|
328
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* castUse = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">getFirstUseViaCastInst</a>(val))</div>
|
|
329
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  {</div>
|
|
330
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a692b4b0df23bad19ea04d18b01bf445c">ObjTypeInfo::HEAP_OBJ</a>);</div>
|
|
331
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* objTy = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">getTypeOfHeapAlloc</a>(SVFUtil::cast<Instruction>(val));</div>
|
|
332
|
+
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ae26937ca2107517e6ede8eb6d76b95d5">resetTypeForHeapStaticObj</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFType(objTy));</div>
|
|
333
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#af5c882c10cd46c669c5aededbdb510d8">analyzeObjType</a>(typeinfo,castUse);</div>
|
|
334
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ArrayType>(objTy))</div>
|
|
335
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a674b84d529c762af3a45e7d4ce4d543d">getNumOfElements</a>(objTy);</div>
|
|
336
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">else</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>(objTy))</div>
|
|
337
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  {</div>
|
|
338
|
+
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a207fe02ded216fd0412fc894e13bee6e">getClassNameFromType</a>(st).empty())</div>
|
|
339
|
+
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a674b84d529c762af3a45e7d4ce4d543d">getNumOfElements</a>(objTy);</div>
|
|
340
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">else</span></div>
|
|
341
|
+
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ae26937ca2107517e6ede8eb6d76b95d5">resetTypeForHeapStaticObj</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFType(castUse->getType()));</div>
|
|
342
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  }</div>
|
|
343
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  }</div>
|
|
344
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">else</span></div>
|
|
345
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div>
|
|
346
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a692b4b0df23bad19ea04d18b01bf445c">ObjTypeInfo::HEAP_OBJ</a>);</div>
|
|
347
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad17b2a35fb492561c4011dbe3880c6c9">ObjTypeInfo::HASPTR_OBJ</a>);</div>
|
|
348
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  }</div>
|
|
349
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <span class="keywordflow">return</span> typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4">getMaxFieldOffsetLimit</a>();</div>
|
|
350
|
+
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> }</div>
|
|
351
351
|
</div><!-- fragment -->
|
|
352
352
|
</div>
|
|
353
353
|
</div>
|
|
@@ -388,52 +388,53 @@ Friends</h2></td></tr>
|
|
|
388
388
|
<p>Analyse types of all flattened fields of this object. </p>
|
|
389
389
|
<p>Analyse types of all flattened fields of this object </p>
|
|
390
390
|
|
|
391
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
392
|
-
<div class="fragment"><div class="line"><a name="
|
|
393
|
-
<div class="line"><a name="
|
|
394
|
-
<div class="line"><a name="
|
|
395
|
-
<div class="line"><a name="
|
|
396
|
-
<div class="line"><a name="
|
|
397
|
-
<div class="line"><a name="
|
|
398
|
-
<div class="line"><a name="
|
|
399
|
-
<div class="line"><a name="
|
|
400
|
-
<div class="line"><a name="
|
|
401
|
-
<div class="line"><a name="
|
|
402
|
-
<div class="line"><a name="
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
405
|
-
<div class="line"><a name="
|
|
406
|
-
<div class="line"><a name="
|
|
407
|
-
<div class="line"><a name="
|
|
408
|
-
<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="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="
|
|
422
|
-
<div class="line"><a name="
|
|
423
|
-
<div class="line"><a name="
|
|
424
|
-
<div class="line"><a name="
|
|
425
|
-
<div class="line"><a name="
|
|
426
|
-
<div class="line"><a name="
|
|
427
|
-
<div class="line"><a name="
|
|
428
|
-
<div class="line"><a name="
|
|
429
|
-
<div class="line"><a name="
|
|
430
|
-
<div class="line"><a name="
|
|
431
|
-
<div class="line"><a name="
|
|
432
|
-
<div class="line"><a name="
|
|
433
|
-
<div class="line"><a name="
|
|
434
|
-
<div class="line"><a name="
|
|
435
|
-
<div class="line"><a name="
|
|
436
|
-
<div class="line"><a name="
|
|
391
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00627">627</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
392
|
+
<div class="fragment"><div class="line"><a name="l00628"></a><span class="lineno"> 628</span> {</div>
|
|
393
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  </div>
|
|
394
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* refty = SVFUtil::dyn_cast<PointerType>(val->getType());</div>
|
|
395
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  assert(refty && <span class="stringliteral">"this value should be a pointer type!"</span>);</div>
|
|
396
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="comment">// TODO: getPtrElementType need type inference</span></div>
|
|
397
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *elemTy = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(refty);</div>
|
|
398
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordtype">bool</span> isPtrObj = <span class="keyword">false</span>;</div>
|
|
399
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="comment">// Find the inter nested array element</span></div>
|
|
400
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* AT = SVFUtil::dyn_cast<ArrayType>(elemTy))</div>
|
|
401
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  {</div>
|
|
402
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  elemTy = AT->getElementType();</div>
|
|
403
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">if</span> (elemTy->isPointerTy())</div>
|
|
404
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  isPtrObj = <span class="keyword">true</span>;</div>
|
|
405
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keywordflow">if</span> (SVFUtil::isa<GlobalVariable>(val) &&</div>
|
|
406
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  SVFUtil::cast<GlobalVariable>(val)->hasInitializer() &&</div>
|
|
407
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  SVFUtil::isa<ConstantArray>(</div>
|
|
408
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  SVFUtil::cast<GlobalVariable>(val)->getInitializer()))</div>
|
|
409
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aff4142c0c411dea07b484a19af514047">ObjTypeInfo::CONST_ARRAY_OBJ</a>);</div>
|
|
410
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">else</span></div>
|
|
411
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830adedc43e0fcaebf433120869aa9307b1c">ObjTypeInfo::VAR_ARRAY_OBJ</a>);</div>
|
|
412
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  }</div>
|
|
413
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</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>(elemTy))</div>
|
|
414
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  {</div>
|
|
415
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keyword">const</span> std::vector<const SVFType*>& flattenFields =</div>
|
|
416
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#af7aae2e2851c948f85600066a5a394ca">getOrAddSVFTypeInfo</a>(ST)-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>();</div>
|
|
417
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  isPtrObj |= std::any_of(flattenFields.begin(), flattenFields.end(),</div>
|
|
418
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  [](<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty)</div>
|
|
419
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  {</div>
|
|
420
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  return ty->isPointerTy();</div>
|
|
421
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  });</div>
|
|
422
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordflow">if</span> (SVFUtil::isa<GlobalVariable>(val) &&</div>
|
|
423
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  SVFUtil::cast<GlobalVariable>(val)->hasInitializer() &&</div>
|
|
424
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  SVFUtil::isa<ConstantStruct>(</div>
|
|
425
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  SVFUtil::cast<GlobalVariable>(val)->getInitializer()))</div>
|
|
426
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a6443b9fadd2d34e00832b2215a120ebd">ObjTypeInfo::CONST_STRUCT_OBJ</a>);</div>
|
|
427
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keywordflow">else</span></div>
|
|
428
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aaf98981bd15b41f543fd99d0c6222f08">ObjTypeInfo::VAR_STRUCT_OBJ</a>);</div>
|
|
429
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  }</div>
|
|
430
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (elemTy->isPointerTy())</div>
|
|
431
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  {</div>
|
|
432
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  isPtrObj = <span class="keyword">true</span>;</div>
|
|
433
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  }</div>
|
|
434
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  </div>
|
|
435
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <span class="keywordflow">if</span>(isPtrObj)</div>
|
|
436
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad17b2a35fb492561c4011dbe3880c6c9">ObjTypeInfo::HASPTR_OBJ</a>);</div>
|
|
437
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> }</div>
|
|
437
438
|
</div><!-- fragment -->
|
|
438
439
|
</div>
|
|
439
440
|
</div>
|
|
@@ -474,20 +475,20 @@ Friends</h2></td></tr>
|
|
|
474
475
|
<p>Analyse types of heap and static objects. </p>
|
|
475
476
|
<p>Analyse types of heap and static objects </p>
|
|
476
477
|
|
|
477
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
478
|
-
<div class="fragment"><div class="line"><a name="
|
|
479
|
-
<div class="line"><a name="
|
|
480
|
-
<div class="line"><a name="
|
|
481
|
-
<div class="line"><a name="
|
|
482
|
-
<div class="line"><a name="
|
|
483
|
-
<div class="line"><a name="
|
|
484
|
-
<div class="line"><a name="
|
|
485
|
-
<div class="line"><a name="
|
|
486
|
-
<div class="line"><a name="
|
|
487
|
-
<div class="line"><a name="
|
|
488
|
-
<div class="line"><a name="
|
|
489
|
-
<div class="line"><a name="
|
|
490
|
-
<div class="line"><a name="
|
|
478
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00790">790</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
479
|
+
<div class="fragment"><div class="line"><a name="l00791"></a><span class="lineno"> 791</span> {</div>
|
|
480
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* castUse = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">getFirstUseViaCastInst</a>(val))</div>
|
|
481
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  {</div>
|
|
482
|
+
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a4e7606afe2dabdef9c9836ae798a9d98">ObjTypeInfo::STATIC_OBJ</a>);</div>
|
|
483
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ae26937ca2107517e6ede8eb6d76b95d5">resetTypeForHeapStaticObj</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFType(castUse->getType()));</div>
|
|
484
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#af5c882c10cd46c669c5aededbdb510d8">analyzeObjType</a>(typeinfo,castUse);</div>
|
|
485
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  }</div>
|
|
486
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keywordflow">else</span></div>
|
|
487
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  {</div>
|
|
488
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a692b4b0df23bad19ea04d18b01bf445c">ObjTypeInfo::HEAP_OBJ</a>);</div>
|
|
489
|
+
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad17b2a35fb492561c4011dbe3880c6c9">ObjTypeInfo::HASPTR_OBJ</a>);</div>
|
|
490
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  }</div>
|
|
491
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> }</div>
|
|
491
492
|
</div><!-- fragment -->
|
|
492
493
|
</div>
|
|
493
494
|
</div>
|
|
@@ -697,38 +698,38 @@ Friends</h2></td></tr>
|
|
|
697
698
|
</div><div class="memdoc">
|
|
698
699
|
<p>Get memory object sym, if not available create a new one </p>
|
|
699
700
|
|
|
700
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
701
|
-
<div class="fragment"><div class="line"><a name="
|
|
702
|
-
<div class="line"><a name="
|
|
703
|
-
<div class="line"><a name="
|
|
704
|
-
<div class="line"><a name="
|
|
705
|
-
<div class="line"><a name="
|
|
706
|
-
<div class="line"><a name="
|
|
707
|
-
<div class="line"><a name="
|
|
708
|
-
<div class="line"><a name="
|
|
709
|
-
<div class="line"><a name="
|
|
710
|
-
<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="
|
|
701
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00318">318</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
702
|
+
<div class="fragment"><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> {</div>
|
|
703
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  val = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">LLVMUtil::getGlobalRep</a>(val);</div>
|
|
704
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  SymbolTableInfo::ValueToIDMapTy::iterator iter = <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>.find(</div>
|
|
705
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFValue(val));</div>
|
|
706
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">if</span> (iter == <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>.end())</div>
|
|
707
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  {</div>
|
|
708
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfVal = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">getSVFValue</a>(val);</div>
|
|
709
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="comment">// if the object pointed by the pointer is a constant data (e.g., i32 0) or a global constant object (e.g. string)</span></div>
|
|
710
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="comment">// then we treat them as one ConstantObj</span></div>
|
|
711
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(val) && !<a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5">getModelConstants</a>())</div>
|
|
712
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div>
|
|
713
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>.insert(std::make_pair(svfVal, <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>()));</div>
|
|
714
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }</div>
|
|
715
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">// otherwise, we will create an object for each abstract memory location</span></div>
|
|
716
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">else</span></div>
|
|
717
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div>
|
|
718
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="comment">// create obj sym and sym type</span></div>
|
|
719
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-><a class="code" href="classSVF_1_1NodeIDAllocator.html#a6ce6b40b8291c6378dda07d943d66e53">allocateObjectId</a>();</div>
|
|
720
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>.insert(std::make_pair(svfVal, <span class="keywordtype">id</span>));</div>
|
|
721
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#ad46a0423f8709692e1bb0f0fa5b1ca2f">DMemModel</a>,</div>
|
|
722
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"create a new obj sym "</span> << <span class="keywordtype">id</span> << <span class="stringliteral">"\n"</span>);</div>
|
|
723
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  </div>
|
|
724
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="comment">// create a memory object</span></div>
|
|
725
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem =</div>
|
|
726
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>(<span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a31190ba1934f945abe8a1b4fcbb636b3">createObjTypeInfo</a>(val),</div>
|
|
727
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFValue(val));</div>
|
|
728
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  assert(<a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>.find(<span class="keywordtype">id</span>) == <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>.end());</div>
|
|
729
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>[id] = mem;</div>
|
|
730
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div>
|
|
731
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</div>
|
|
732
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> }</div>
|
|
732
733
|
</div><!-- fragment -->
|
|
733
734
|
</div>
|
|
734
735
|
</div>
|
|
@@ -757,19 +758,19 @@ Friends</h2></td></tr>
|
|
|
757
758
|
</div><div class="memdoc">
|
|
758
759
|
<p>Create unique return sym, if not available create a new one </p>
|
|
759
760
|
|
|
760
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
761
|
-
<div class="fragment"><div class="line"><a name="
|
|
762
|
-
<div class="line"><a name="
|
|
763
|
-
<div class="line"><a name="
|
|
764
|
-
<div class="line"><a name="
|
|
765
|
-
<div class="line"><a name="
|
|
766
|
-
<div class="line"><a name="
|
|
767
|
-
<div class="line"><a name="
|
|
768
|
-
<div class="line"><a name="
|
|
769
|
-
<div class="line"><a name="
|
|
770
|
-
<div class="line"><a name="
|
|
771
|
-
<div class="line"><a name="
|
|
772
|
-
<div class="line"><a name="
|
|
761
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00354">354</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
762
|
+
<div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> {</div>
|
|
763
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun =</div>
|
|
764
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(val);</div>
|
|
765
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  SymbolTableInfo::FunToIDMapTy::iterator iter =</div>
|
|
766
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>.find(svffun);</div>
|
|
767
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">if</span> (iter == <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>.end())</div>
|
|
768
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  {</div>
|
|
769
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-><a class="code" href="classSVF_1_1NodeIDAllocator.html#a26b5e09e10448694435f74a8b622a7e8">allocateValueId</a>();</div>
|
|
770
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>.insert(std::make_pair(svffun, <span class="keywordtype">id</span>));</div>
|
|
771
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#ad46a0423f8709692e1bb0f0fa5b1ca2f">DMemModel</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"create a return sym "</span> << <span class="keywordtype">id</span> << <span class="stringliteral">"\n"</span>);</div>
|
|
772
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div>
|
|
773
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> }</div>
|
|
773
774
|
</div><!-- fragment -->
|
|
774
775
|
</div>
|
|
775
776
|
</div>
|
|
@@ -804,21 +805,22 @@ Friends</h2></td></tr>
|
|
|
804
805
|
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  (void)<a class="code" href="classSVF_1_1SymbolTableBuilder.html#af7aae2e2851c948f85600066a5a394ca">getOrAddSVFTypeInfo</a>(val->getType());</div>
|
|
805
806
|
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> * ptrType = SVFUtil::dyn_cast<PointerType>(val->getType()))</div>
|
|
806
807
|
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  {</div>
|
|
807
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="
|
|
808
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 
|
|
809
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> 
|
|
810
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> 
|
|
811
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> 
|
|
812
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> 
|
|
813
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> 
|
|
814
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> 
|
|
815
|
-
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> 
|
|
816
|
-
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> 
|
|
817
|
-
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> 
|
|
818
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> 
|
|
819
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> 
|
|
820
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> 
|
|
821
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> }</div>
|
|
808
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// TODO: getPtrElementType to be removed</span></div>
|
|
809
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* objtype = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(ptrType);</div>
|
|
810
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  (void)<a class="code" href="classSVF_1_1SymbolTableBuilder.html#af7aae2e2851c948f85600066a5a394ca">getOrAddSVFTypeInfo</a>(objtype);</div>
|
|
811
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div>
|
|
812
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">isGepConstantExpr</a>(val) || SVFUtil::isa<GetElementPtrInst>(val))</div>
|
|
813
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  {</div>
|
|
814
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1generic__bridge__gep__type__iterator.html">bridge_gep_iterator</a></div>
|
|
815
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  gi = <a class="code" href="namespacellvm.html#acfe99e9d441434240c79f6d76b73fe0a">bridge_gep_begin</a>(SVFUtil::cast<User>(val)),</div>
|
|
816
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  ge = <a class="code" href="namespacellvm.html#a7cfc92a12082d69711c97bb3d1b99c48">bridge_gep_end</a>(SVFUtil::cast<User>(val));</div>
|
|
817
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  gi != ge; ++gi)</div>
|
|
818
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  {</div>
|
|
819
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* gepTy = *gi;</div>
|
|
820
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  (void)<a class="code" href="classSVF_1_1SymbolTableBuilder.html#af7aae2e2851c948f85600066a5a394ca">getOrAddSVFTypeInfo</a>(gepTy);</div>
|
|
821
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  }</div>
|
|
822
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  }</div>
|
|
823
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> }</div>
|
|
822
824
|
</div><!-- fragment -->
|
|
823
825
|
</div>
|
|
824
826
|
</div>
|
|
@@ -847,31 +849,31 @@ Friends</h2></td></tr>
|
|
|
847
849
|
</div><div class="memdoc">
|
|
848
850
|
<p>Collect symbols, including value and object syms </p>
|
|
849
851
|
|
|
850
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
851
|
-
<div class="fragment"><div class="line"><a name="
|
|
852
|
-
<div class="line"><a name="
|
|
853
|
-
<div class="line"><a name="
|
|
854
|
-
<div class="line"><a name="
|
|
855
|
-
<div class="line"><a name="
|
|
856
|
-
<div class="line"><a name="
|
|
857
|
-
<div class="line"><a name="
|
|
858
|
-
<div class="line"><a name="
|
|
859
|
-
<div class="line"><a name="
|
|
860
|
-
<div class="line"><a name="
|
|
861
|
-
<div class="line"><a name="
|
|
862
|
-
<div class="line"><a name="
|
|
863
|
-
<div class="line"><a name="
|
|
864
|
-
<div class="line"><a name="
|
|
865
|
-
<div class="line"><a name="
|
|
866
|
-
<div class="line"><a name="
|
|
867
|
-
<div class="line"><a name="
|
|
868
|
-
<div class="line"><a name="
|
|
869
|
-
<div class="line"><a name="
|
|
870
|
-
<div class="line"><a name="
|
|
871
|
-
<div class="line"><a name="
|
|
872
|
-
<div class="line"><a name="
|
|
873
|
-
<div class="line"><a name="
|
|
874
|
-
<div class="line"><a name="
|
|
852
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00260">260</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
853
|
+
<div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> {</div>
|
|
854
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
|
|
855
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="comment">//TODO: filter the non-pointer type // if (!SVFUtil::isa<PointerType>(val->getType())) return;</span></div>
|
|
856
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
|
|
857
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#ad46a0423f8709692e1bb0f0fa5b1ca2f">DMemModel</a>,</div>
|
|
858
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>()</div>
|
|
859
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  << <span class="stringliteral">"collect sym from ##"</span></div>
|
|
860
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  << <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFValue(val)->toString()</div>
|
|
861
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  << <span class="stringliteral">" \n"</span>);</div>
|
|
862
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">//TODO handle constant expression value here??</span></div>
|
|
863
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(val);</div>
|
|
864
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
|
|
865
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="comment">// create a value sym</span></div>
|
|
866
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(val);</div>
|
|
867
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  </div>
|
|
868
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a42c69bc9ee71cc0ff322c1701b7e07bd">collectSVFTypeInfo</a>(val);</div>
|
|
869
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a42c69bc9ee71cc0ff322c1701b7e07bd">collectSVFTypeInfo</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">LLVMUtil::getGlobalRep</a>(val));</div>
|
|
870
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
|
|
871
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="comment">// create an object If it is a heap, stack, global, function.</span></div>
|
|
872
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">isObject</a>(val))</div>
|
|
873
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div>
|
|
874
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a891bfea437256d1b7aa957d32797e419">collectObj</a>(val);</div>
|
|
875
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div>
|
|
876
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> }</div>
|
|
875
877
|
</div><!-- fragment -->
|
|
876
878
|
</div>
|
|
877
879
|
</div>
|
|
@@ -901,30 +903,30 @@ Friends</h2></td></tr>
|
|
|
901
903
|
<p>Get value sym, if not available create a new one </p>
|
|
902
904
|
<p>handle global constant expression here</p>
|
|
903
905
|
|
|
904
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
905
|
-
<div class="fragment"><div class="line"><a name="
|
|
906
|
-
<div class="line"><a name="
|
|
907
|
-
<div class="line"><a name="
|
|
908
|
-
<div class="line"><a name="
|
|
909
|
-
<div class="line"><a name="
|
|
910
|
-
<div class="line"><a name="
|
|
911
|
-
<div class="line"><a name="
|
|
912
|
-
<div class="line"><a name="
|
|
913
|
-
<div class="line"><a name="
|
|
914
|
-
<div class="line"><a name="
|
|
915
|
-
<div class="line"><a name="
|
|
916
|
-
<div class="line"><a name="
|
|
917
|
-
<div class="line"><a name="
|
|
918
|
-
<div class="line"><a name="
|
|
919
|
-
<div class="line"><a name="
|
|
920
|
-
<div class="line"><a name="
|
|
921
|
-
<div class="line"><a name="
|
|
922
|
-
<div class="line"><a name="
|
|
923
|
-
<div class="line"><a name="
|
|
924
|
-
<div class="line"><a name="
|
|
925
|
-
<div class="line"><a name="
|
|
926
|
-
<div class="line"><a name="
|
|
927
|
-
<div class="line"><a name="
|
|
906
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00289">289</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
907
|
+
<div class="fragment"><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> {</div>
|
|
908
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="comment">// collect and record special sym here</span></div>
|
|
909
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a847fb0c433b5d3611151636ca4bc5bc5">LLVMUtil::isNullPtrSym</a>(val) || <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abf4e75ba6236136399d45c85be2328fe">LLVMUtil::isBlackholeSym</a>(val))</div>
|
|
910
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  {</div>
|
|
911
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">return</span>;</div>
|
|
912
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div>
|
|
913
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  SymbolTableInfo::ValueToIDMapTy::iterator iter = <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>.find(</div>
|
|
914
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFValue(val));</div>
|
|
915
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">if</span> (iter == <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>.end())</div>
|
|
916
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div>
|
|
917
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="comment">// create val sym and sym type</span></div>
|
|
918
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfVal = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">getSVFValue</a>(val);</div>
|
|
919
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-><a class="code" href="classSVF_1_1NodeIDAllocator.html#a26b5e09e10448694435f74a8b622a7e8">allocateValueId</a>();</div>
|
|
920
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>.insert(std::make_pair(svfVal, <span class="keywordtype">id</span>));</div>
|
|
921
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#ad46a0423f8709692e1bb0f0fa5b1ca2f">DMemModel</a>,</div>
|
|
922
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"create a new value sym "</span> << <span class="keywordtype">id</span> << <span class="stringliteral">"\n"</span>);</div>
|
|
923
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* globalVar = SVFUtil::dyn_cast<GlobalVariable>(val))</div>
|
|
924
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a72732ec0392d9d5b900fc12177890779">handleGlobalCE</a>(globalVar);</div>
|
|
925
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div>
|
|
926
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div>
|
|
927
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(val))</div>
|
|
928
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a891bfea437256d1b7aa957d32797e419">collectObj</a>(val);</div>
|
|
929
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> }</div>
|
|
928
930
|
</div><!-- fragment -->
|
|
929
931
|
</div>
|
|
930
932
|
</div>
|
|
@@ -953,19 +955,19 @@ Friends</h2></td></tr>
|
|
|
953
955
|
</div><div class="memdoc">
|
|
954
956
|
<p>Create vararg sym, if not available create a new one </p>
|
|
955
957
|
|
|
956
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
957
|
-
<div class="fragment"><div class="line"><a name="
|
|
958
|
-
<div class="line"><a name="
|
|
959
|
-
<div class="line"><a name="
|
|
960
|
-
<div class="line"><a name="
|
|
961
|
-
<div class="line"><a name="
|
|
962
|
-
<div class="line"><a name="
|
|
963
|
-
<div class="line"><a name="
|
|
964
|
-
<div class="line"><a name="
|
|
965
|
-
<div class="line"><a name="
|
|
966
|
-
<div class="line"><a name="
|
|
967
|
-
<div class="line"><a name="
|
|
968
|
-
<div class="line"><a name="
|
|
958
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00371">371</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
959
|
+
<div class="fragment"><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> {</div>
|
|
960
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun =</div>
|
|
961
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(val);</div>
|
|
962
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  SymbolTableInfo::FunToIDMapTy::iterator iter =</div>
|
|
963
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>.find(svffun);</div>
|
|
964
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">if</span> (iter == <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>.end())</div>
|
|
965
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  {</div>
|
|
966
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-><a class="code" href="classSVF_1_1NodeIDAllocator.html#a26b5e09e10448694435f74a8b622a7e8">allocateValueId</a>();</div>
|
|
967
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a3100246d9b0a58e53f2dbc8acf231afb">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>.insert(std::make_pair(svffun, <span class="keywordtype">id</span>));</div>
|
|
968
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#ad46a0423f8709692e1bb0f0fa5b1ca2f">DMemModel</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"create a vararg sym "</span> << <span class="keywordtype">id</span> << <span class="stringliteral">"\n"</span>);</div>
|
|
969
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div>
|
|
970
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> }</div>
|
|
969
971
|
</div><!-- fragment -->
|
|
970
972
|
</div>
|
|
971
973
|
</div>
|
|
@@ -1070,52 +1072,53 @@ Friends</h2></td></tr>
|
|
|
1070
1072
|
</div><div class="memdoc">
|
|
1071
1073
|
|
|
1072
1074
|
<p>Create an objectInfo based on LLVM value. </p>
|
|
1075
|
+
<p>TODO: getPtrElementType to be removed</p>
|
|
1073
1076
|
|
|
1074
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
1075
|
-
<div class="fragment"><div class="line"><a name="
|
|
1076
|
-
<div class="line"><a name="
|
|
1077
|
-
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  </div>
|
|
1078
|
-
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* I = SVFUtil::dyn_cast<Instruction>(val);</div>
|
|
1077
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00577">577</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
1078
|
+
<div class="fragment"><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> {</div>
|
|
1079
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* refTy = <span class="keyword">nullptr</span>;</div>
|
|
1079
1080
|
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  </div>
|
|
1080
|
-
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="
|
|
1081
|
-
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> 
|
|
1082
|
-
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="
|
|
1083
|
-
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> 
|
|
1084
|
-
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> 
|
|
1085
|
-
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> 
|
|
1086
|
-
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> 
|
|
1087
|
-
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> 
|
|
1088
|
-
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> 
|
|
1089
|
-
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  </div>
|
|
1090
|
-
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> 
|
|
1091
|
-
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> 
|
|
1092
|
-
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> 
|
|
1093
|
-
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> 
|
|
1094
|
-
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> 
|
|
1095
|
-
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> 
|
|
1096
|
-
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> 
|
|
1097
|
-
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> 
|
|
1098
|
-
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> 
|
|
1099
|
-
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> 
|
|
1100
|
-
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> 
|
|
1101
|
-
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> 
|
|
1102
|
-
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> 
|
|
1103
|
-
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(<span class="stringliteral">"
|
|
1104
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <
|
|
1105
|
-
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> 
|
|
1106
|
-
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> 
|
|
1107
|
-
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> 
|
|
1108
|
-
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> 
|
|
1109
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> 
|
|
1110
|
-
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> 
|
|
1111
|
-
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> 
|
|
1112
|
-
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> 
|
|
1113
|
-
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> 
|
|
1114
|
-
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> 
|
|
1115
|
-
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> 
|
|
1116
|
-
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> 
|
|
1117
|
-
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> 
|
|
1118
|
-
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> }</div>
|
|
1081
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* I = SVFUtil::dyn_cast<Instruction>(val);</div>
|
|
1082
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  </div>
|
|
1083
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="comment">// We consider two types of objects:</span></div>
|
|
1084
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="comment">// (1) A heap/static object from a callsite</span></div>
|
|
1085
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">if</span> (I && <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">isNonInstricCallSite</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFInstruction(I)))</div>
|
|
1086
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  {</div>
|
|
1087
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  refTy = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">getRefTypeOfHeapAllocOrStatic</a>(I);</div>
|
|
1088
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  }</div>
|
|
1089
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="comment">// (2) Other objects (e.g., alloca, global, etc.)</span></div>
|
|
1090
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">else</span></div>
|
|
1091
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  refTy = SVFUtil::dyn_cast<PointerType>(val->getType());</div>
|
|
1092
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  </div>
|
|
1093
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">if</span> (refTy)</div>
|
|
1094
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  {</div>
|
|
1095
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* objTy = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(refTy);</div>
|
|
1096
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* typeInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>(</div>
|
|
1097
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFType(objTy),</div>
|
|
1098
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>());</div>
|
|
1099
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#ae938564e6a36848cb848a5badc15a1de">initTypeInfo</a>(typeInfo,val, objTy);</div>
|
|
1100
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">return</span> typeInfo;</div>
|
|
1101
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  }</div>
|
|
1102
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">else</span></div>
|
|
1103
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  {</div>
|
|
1104
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(<span class="stringliteral">"try to create an object with a non-pointer type."</span>);</div>
|
|
1105
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(val->getName().str());</div>
|
|
1106
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(<span class="stringliteral">"("</span> + <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFValue(val)-><a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">getSourceLoc</a>() + <span class="stringliteral">")"</span>);</div>
|
|
1107
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(val))</div>
|
|
1108
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  {</div>
|
|
1109
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* typeInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>(</div>
|
|
1110
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFType(val->getType()),</div>
|
|
1111
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  0);</div>
|
|
1112
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#ae938564e6a36848cb848a5badc15a1de">initTypeInfo</a>(typeInfo,val, val->getType());</div>
|
|
1113
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">return</span> typeInfo;</div>
|
|
1114
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  }</div>
|
|
1115
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordflow">else</span></div>
|
|
1116
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  {</div>
|
|
1117
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Memory object must be either (1) held by a pointer-typed ref value or (2) a constant value (e.g., 10)."</span>);</div>
|
|
1118
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  abort();</div>
|
|
1119
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  }</div>
|
|
1120
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  }</div>
|
|
1121
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> }</div>
|
|
1119
1122
|
</div><!-- fragment -->
|
|
1120
1123
|
</div>
|
|
1121
1124
|
</div>
|
|
@@ -1138,16 +1141,16 @@ Friends</h2></td></tr>
|
|
|
1138
1141
|
<p>Return size of this object based on LLVM value. </p>
|
|
1139
1142
|
<p>Return size of this Object </p>
|
|
1140
1143
|
|
|
1141
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
1142
|
-
<div class="fragment"><div class="line"><a name="
|
|
1143
|
-
<div class="line"><a name="
|
|
1144
|
-
<div class="line"><a name="
|
|
1145
|
-
<div class="line"><a name="
|
|
1146
|
-
<div class="line"><a name="
|
|
1147
|
-
<div class="line"><a name="
|
|
1148
|
-
<div class="line"><a name="
|
|
1149
|
-
<div class="line"><a name="
|
|
1150
|
-
<div class="line"><a name="
|
|
1144
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00901">901</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
1145
|
+
<div class="fragment"><div class="line"><a name="l00902"></a><span class="lineno"> 902</span> {</div>
|
|
1146
|
+
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  assert(ety && <span class="stringliteral">"type is null?"</span>);</div>
|
|
1147
|
+
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfFields = 1;</div>
|
|
1148
|
+
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StructType, ArrayType>(ety))</div>
|
|
1149
|
+
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  {</div>
|
|
1150
|
+
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  numOfFields = <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a603cf580467b32df5fad94ade3287b0f">getNumOfFlattenElements</a>(ety);</div>
|
|
1151
|
+
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  }</div>
|
|
1152
|
+
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">return</span> numOfFields;</div>
|
|
1153
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> }</div>
|
|
1151
1154
|
</div><!-- fragment -->
|
|
1152
1155
|
</div>
|
|
1153
1156
|
</div>
|
|
@@ -1178,13 +1181,13 @@ Friends</h2></td></tr>
|
|
|
1178
1181
|
<p>Number of flattened elements of an array or struct. </p>
|
|
1179
1182
|
<p>Get a reference to the components of struct_info. Number of flattened elements of an array or struct </p>
|
|
1180
1183
|
|
|
1181
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
1182
|
-
<div class="fragment"><div class="line"><a name="
|
|
1183
|
-
<div class="line"><a name="
|
|
1184
|
-
<div class="line"><a name="
|
|
1185
|
-
<div class="line"><a name="
|
|
1186
|
-
<div class="line"><a name="
|
|
1187
|
-
<div class="line"><a name="
|
|
1184
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00913">913</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
1185
|
+
<div class="fragment"><div class="line"><a name="l00914"></a><span class="lineno"> 914</span> {</div>
|
|
1186
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a429c3000ee2ac45119b8c241aa06762c">Options::ModelArrays</a>())</div>
|
|
1187
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableBuilder.html#af7aae2e2851c948f85600066a5a394ca">getOrAddSVFTypeInfo</a>(T)-><a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
|
|
1188
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">else</span></div>
|
|
1189
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableBuilder.html#af7aae2e2851c948f85600066a5a394ca">getOrAddSVFTypeInfo</a>(T)-><a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
|
|
1190
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> }</div>
|
|
1188
1191
|
</div><!-- fragment -->
|
|
1189
1192
|
</div>
|
|
1190
1193
|
</div>
|
|
@@ -1214,10 +1217,10 @@ Friends</h2></td></tr>
|
|
|
1214
1217
|
|
|
1215
1218
|
<p>Get a reference to StructInfo. </p>
|
|
1216
1219
|
|
|
1217
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
1218
|
-
<div class="fragment"><div class="line"><a name="
|
|
1219
|
-
<div class="line"><a name="
|
|
1220
|
-
<div class="line"><a name="
|
|
1220
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00921">921</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
1221
|
+
<div class="fragment"><div class="line"><a name="l00922"></a><span class="lineno"> 922</span> {</div>
|
|
1222
|
+
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(T)-><a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>();</div>
|
|
1223
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> }</div>
|
|
1221
1224
|
</div><!-- fragment -->
|
|
1222
1225
|
</div>
|
|
1223
1226
|
</div>
|
|
@@ -1246,94 +1249,94 @@ Friends</h2></td></tr>
|
|
|
1246
1249
|
</div><div class="memdoc">
|
|
1247
1250
|
<p>Handle constant expression </p>
|
|
1248
1251
|
|
|
1249
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
1250
|
-
<div class="fragment"><div class="line"><a name="
|
|
1251
|
-
<div class="line"><a name="
|
|
1252
|
-
<div class="line"><a name="
|
|
1253
|
-
<div class="line"><a name="
|
|
1254
|
-
<div class="line"><a name="
|
|
1255
|
-
<div class="line"><a name="
|
|
1256
|
-
<div class="line"><a name="
|
|
1257
|
-
<div class="line"><a name="
|
|
1258
|
-
<div class="line"><a name="
|
|
1259
|
-
<div class="line"><a name="
|
|
1260
|
-
<div class="line"><a name="
|
|
1261
|
-
<div class="line"><a name="
|
|
1262
|
-
<div class="line"><a name="
|
|
1263
|
-
<div class="line"><a name="
|
|
1264
|
-
<div class="line"><a name="
|
|
1265
|
-
<div class="line"><a name="
|
|
1266
|
-
<div class="line"><a name="
|
|
1267
|
-
<div class="line"><a name="
|
|
1268
|
-
<div class="line"><a name="
|
|
1269
|
-
<div class="line"><a name="
|
|
1270
|
-
<div class="line"><a name="
|
|
1271
|
-
<div class="line"><a name="
|
|
1272
|
-
<div class="line"><a name="
|
|
1273
|
-
<div class="line"><a name="
|
|
1274
|
-
<div class="line"><a name="
|
|
1275
|
-
<div class="line"><a name="
|
|
1276
|
-
<div class="line"><a name="
|
|
1277
|
-
<div class="line"><a name="
|
|
1278
|
-
<div class="line"><a name="
|
|
1279
|
-
<div class="line"><a name="
|
|
1280
|
-
<div class="line"><a name="
|
|
1281
|
-
<div class="line"><a name="
|
|
1282
|
-
<div class="line"><a name="
|
|
1283
|
-
<div class="line"><a name="
|
|
1284
|
-
<div class="line"><a name="
|
|
1285
|
-
<div class="line"><a name="
|
|
1286
|
-
<div class="line"><a name="
|
|
1287
|
-
<div class="line"><a name="
|
|
1288
|
-
<div class="line"><a name="
|
|
1289
|
-
<div class="line"><a name="
|
|
1290
|
-
<div class="line"><a name="
|
|
1291
|
-
<div class="line"><a name="
|
|
1292
|
-
<div class="line"><a name="
|
|
1293
|
-
<div class="line"><a name="
|
|
1294
|
-
<div class="line"><a name="
|
|
1295
|
-
<div class="line"><a name="
|
|
1296
|
-
<div class="line"><a name="
|
|
1297
|
-
<div class="line"><a name="
|
|
1298
|
-
<div class="line"><a name="
|
|
1299
|
-
<div class="line"><a name="
|
|
1300
|
-
<div class="line"><a name="
|
|
1301
|
-
<div class="line"><a name="
|
|
1302
|
-
<div class="line"><a name="
|
|
1303
|
-
<div class="line"><a name="
|
|
1304
|
-
<div class="line"><a name="
|
|
1305
|
-
<div class="line"><a name="
|
|
1306
|
-
<div class="line"><a name="
|
|
1307
|
-
<div class="line"><a name="
|
|
1308
|
-
<div class="line"><a name="
|
|
1309
|
-
<div class="line"><a name="
|
|
1310
|
-
<div class="line"><a name="
|
|
1311
|
-
<div class="line"><a name="
|
|
1312
|
-
<div class="line"><a name="
|
|
1313
|
-
<div class="line"><a name="
|
|
1314
|
-
<div class="line"><a name="
|
|
1315
|
-
<div class="line"><a name="
|
|
1316
|
-
<div class="line"><a name="
|
|
1317
|
-
<div class="line"><a name="
|
|
1318
|
-
<div class="line"><a name="
|
|
1319
|
-
<div class="line"><a name="
|
|
1320
|
-
<div class="line"><a name="
|
|
1321
|
-
<div class="line"><a name="
|
|
1322
|
-
<div class="line"><a name="
|
|
1323
|
-
<div class="line"><a name="
|
|
1324
|
-
<div class="line"><a name="
|
|
1325
|
-
<div class="line"><a name="
|
|
1326
|
-
<div class="line"><a name="
|
|
1327
|
-
<div class="line"><a name="
|
|
1328
|
-
<div class="line"><a name="
|
|
1329
|
-
<div class="line"><a name="
|
|
1330
|
-
<div class="line"><a name="
|
|
1331
|
-
<div class="line"><a name="
|
|
1332
|
-
<div class="line"><a name="
|
|
1333
|
-
<div class="line"><a name="
|
|
1334
|
-
<div class="line"><a name="
|
|
1335
|
-
<div class="line"><a name="
|
|
1336
|
-
<div class="line"><a name="
|
|
1252
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00388">388</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
1253
|
+
<div class="fragment"><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> {</div>
|
|
1254
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* ref = SVFUtil::dyn_cast<Constant>(val))</div>
|
|
1255
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  {</div>
|
|
1256
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* ce = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">isGepConstantExpr</a>(ref))</div>
|
|
1257
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div>
|
|
1258
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#aaff570bb354b8519a4852ffda413af7c">DMemModelCE</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"handle constant expression "</span></div>
|
|
1259
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  << <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()</div>
|
|
1260
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  ->getSVFValue(ref)</div>
|
|
1261
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  ->toString()</div>
|
|
1262
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  << <span class="stringliteral">"\n"</span>);</div>
|
|
1263
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ce);</div>
|
|
1264
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  </div>
|
|
1265
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="comment">// handle the recursive constant express case</span></div>
|
|
1266
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="comment">// like (gep (bitcast (gep X 1)) 1); the inner gep is ce->getOperand(0)</span></div>
|
|
1267
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < ce->getNumOperands(); ++i)</div>
|
|
1268
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  {</div>
|
|
1269
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ce->getOperand(i));</div>
|
|
1270
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(ce->getOperand(i));</div>
|
|
1271
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  }</div>
|
|
1272
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  }</div>
|
|
1273
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* ce = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">isCastConstantExpr</a>(ref))</div>
|
|
1274
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  {</div>
|
|
1275
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#aaff570bb354b8519a4852ffda413af7c">DMemModelCE</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"handle constant expression "</span></div>
|
|
1276
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  << <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()</div>
|
|
1277
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  ->getSVFValue(ref)</div>
|
|
1278
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  ->toString()</div>
|
|
1279
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  << <span class="stringliteral">"\n"</span>);</div>
|
|
1280
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ce);</div>
|
|
1281
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ce->getOperand(0));</div>
|
|
1282
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="comment">// handle the recursive constant express case</span></div>
|
|
1283
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="comment">// like (gep (bitcast (gep X 1)) 1); the inner gep is ce->getOperand(0)</span></div>
|
|
1284
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(ce->getOperand(0));</div>
|
|
1285
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  }</div>
|
|
1286
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* ce = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">isSelectConstantExpr</a>(ref))</div>
|
|
1287
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div>
|
|
1288
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#aaff570bb354b8519a4852ffda413af7c">DMemModelCE</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"handle constant expression "</span></div>
|
|
1289
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  << <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()</div>
|
|
1290
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  ->getSVFValue(ref)</div>
|
|
1291
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  ->toString()</div>
|
|
1292
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  << <span class="stringliteral">"\n"</span>);</div>
|
|
1293
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ce);</div>
|
|
1294
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ce->getOperand(0));</div>
|
|
1295
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ce->getOperand(1));</div>
|
|
1296
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ce->getOperand(2));</div>
|
|
1297
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="comment">// handle the recursive constant express case</span></div>
|
|
1298
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="comment">// like (gep (bitcast (gep X 1)) 1); the inner gep is ce->getOperand(0)</span></div>
|
|
1299
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(ce->getOperand(0));</div>
|
|
1300
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(ce->getOperand(1));</div>
|
|
1301
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(ce->getOperand(2));</div>
|
|
1302
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div>
|
|
1303
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="comment">// if we meet a int2ptr, then it points-to black hole</span></div>
|
|
1304
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* int2Ptrce = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">isInt2PtrConstantExpr</a>(ref))</div>
|
|
1305
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  {</div>
|
|
1306
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(int2Ptrce);</div>
|
|
1307
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  }</div>
|
|
1308
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* ptr2Intce = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">isPtr2IntConstantExpr</a>(ref))</div>
|
|
1309
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  {</div>
|
|
1310
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ptr2Intce);</div>
|
|
1311
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* opnd = ptr2Intce->getOperand(0);</div>
|
|
1312
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(opnd);</div>
|
|
1313
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  }</div>
|
|
1314
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">isTruncConstantExpr</a>(ref) || <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">isCmpConstantExpr</a>(ref))</div>
|
|
1315
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div>
|
|
1316
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ref);</div>
|
|
1317
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  }</div>
|
|
1318
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">isBinaryConstantExpr</a>(ref))</div>
|
|
1319
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  {</div>
|
|
1320
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ref);</div>
|
|
1321
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div>
|
|
1322
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">isUnaryConstantExpr</a>(ref))</div>
|
|
1323
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  {</div>
|
|
1324
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="comment">// we don't handle unary constant expression like fneg(x) now</span></div>
|
|
1325
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ref);</div>
|
|
1326
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div>
|
|
1327
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ConstantAggregate>(ref))</div>
|
|
1328
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  {</div>
|
|
1329
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="comment">// we don't handle constant aggregate like constant vectors</span></div>
|
|
1330
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ref);</div>
|
|
1331
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  }</div>
|
|
1332
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">else</span></div>
|
|
1333
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  {</div>
|
|
1334
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  assert(!SVFUtil::isa<ConstantExpr>(val) &&</div>
|
|
1335
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="stringliteral">"we don't handle all other constant expression for now!"</span>);</div>
|
|
1336
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(ref);</div>
|
|
1337
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  }</div>
|
|
1338
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  }</div>
|
|
1339
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> }</div>
|
|
1337
1340
|
</div><!-- fragment -->
|
|
1338
1341
|
</div>
|
|
1339
1342
|
</div>
|
|
@@ -1364,41 +1367,41 @@ Friends</h2></td></tr>
|
|
|
1364
1367
|
<p>Handle constant expression. </p>
|
|
1365
1368
|
<p>Handle global constant expression </p>
|
|
1366
1369
|
|
|
1367
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
1368
|
-
<div class="fragment"><div class="line"><a name="
|
|
1369
|
-
<div class="line"><a name="
|
|
1370
|
-
<div class="line"><a name="
|
|
1371
|
-
<div class="line"><a name="
|
|
1372
|
-
<div class="line"><a name="
|
|
1373
|
-
<div class="line"><a name="
|
|
1374
|
-
<div class="line"><a name="
|
|
1375
|
-
<div class="line"><a name="
|
|
1376
|
-
<div class="line"><a name="
|
|
1377
|
-
<div class="line"><a name="
|
|
1378
|
-
<div class="line"><a name="
|
|
1379
|
-
<div class="line"><a name="
|
|
1380
|
-
<div class="line"><a name="
|
|
1381
|
-
<div class="line"><a name="
|
|
1382
|
-
<div class="line"><a name="
|
|
1383
|
-
<div class="line"><a name="
|
|
1384
|
-
<div class="line"><a name="
|
|
1385
|
-
<div class="line"><a name="
|
|
1386
|
-
<div class="line"><a name="
|
|
1387
|
-
<div class="line"><a name="
|
|
1388
|
-
<div class="line"><a name="
|
|
1389
|
-
<div class="line"><a name="
|
|
1390
|
-
<div class="line"><a name="
|
|
1391
|
-
<div class="line"><a name="
|
|
1392
|
-
<div class="line"><a name="
|
|
1393
|
-
<div class="line"><a name="
|
|
1394
|
-
<div class="line"><a name="
|
|
1395
|
-
<div class="line"><a name="
|
|
1396
|
-
<div class="line"><a name="
|
|
1397
|
-
<div class="line"><a name="
|
|
1398
|
-
<div class="line"><a name="
|
|
1399
|
-
<div class="line"><a name="
|
|
1400
|
-
<div class="line"><a name="
|
|
1401
|
-
<div class="line"><a name="
|
|
1370
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00480">480</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
1371
|
+
<div class="fragment"><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> {</div>
|
|
1372
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  assert(G);</div>
|
|
1373
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  </div>
|
|
1374
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="comment">//The type this global points to</span></div>
|
|
1375
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T = G->getValueType();</div>
|
|
1376
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordtype">bool</span> is_array = 0;</div>
|
|
1377
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="comment">//An array is considered a single variable of its type.</span></div>
|
|
1378
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* AT = SVFUtil::dyn_cast<ArrayType>(T))</div>
|
|
1379
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  {</div>
|
|
1380
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  T = AT->getElementType();</div>
|
|
1381
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  is_array = <span class="keyword">true</span>;</div>
|
|
1382
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div>
|
|
1383
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div>
|
|
1384
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StructType>(T))</div>
|
|
1385
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  {</div>
|
|
1386
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="comment">//A struct may be used in constant GEP expr.</span></div>
|
|
1387
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#afc1b50355821e7299df03b026e36f1df">User</a>* user : G->users())</div>
|
|
1388
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  {</div>
|
|
1389
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(user);</div>
|
|
1390
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  }</div>
|
|
1391
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div>
|
|
1392
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (is_array)</div>
|
|
1393
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  {</div>
|
|
1394
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#afc1b50355821e7299df03b026e36f1df">User</a>* user : G->users())</div>
|
|
1395
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  {</div>
|
|
1396
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(user);</div>
|
|
1397
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  }</div>
|
|
1398
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div>
|
|
1399
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  </div>
|
|
1400
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">if</span> (G->hasInitializer())</div>
|
|
1401
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  {</div>
|
|
1402
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a1efd9406182eb86b1ee4829c931b566d">handleGlobalInitializerCE</a>(G->getInitializer());</div>
|
|
1403
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div>
|
|
1404
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> }</div>
|
|
1402
1405
|
</div><!-- fragment -->
|
|
1403
1406
|
</div>
|
|
1404
1407
|
</div>
|
|
@@ -1427,60 +1430,60 @@ Friends</h2></td></tr>
|
|
|
1427
1430
|
</div><div class="memdoc">
|
|
1428
1431
|
<p>Handle global variable initialization </p>
|
|
1429
1432
|
|
|
1430
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
1431
|
-
<div class="fragment"><div class="line"><a name="
|
|
1432
|
-
<div class="line"><a name="
|
|
1433
|
-
<div class="line"><a name="
|
|
1434
|
-
<div class="line"><a name="
|
|
1435
|
-
<div class="line"><a name="
|
|
1436
|
-
<div class="line"><a name="
|
|
1437
|
-
<div class="line"><a name="
|
|
1438
|
-
<div class="line"><a name="
|
|
1439
|
-
<div class="line"><a name="
|
|
1440
|
-
<div class="line"><a name="
|
|
1441
|
-
<div class="line"><a name="
|
|
1442
|
-
<div class="line"><a name="
|
|
1443
|
-
<div class="line"><a name="
|
|
1444
|
-
<div class="line"><a name="
|
|
1445
|
-
<div class="line"><a name="
|
|
1446
|
-
<div class="line"><a name="
|
|
1447
|
-
<div class="line"><a name="
|
|
1448
|
-
<div class="line"><a name="
|
|
1449
|
-
<div class="line"><a name="
|
|
1450
|
-
<div class="line"><a name="
|
|
1451
|
-
<div class="line"><a name="
|
|
1452
|
-
<div class="line"><a name="
|
|
1453
|
-
<div class="line"><a name="
|
|
1454
|
-
<div class="line"><a name="
|
|
1455
|
-
<div class="line"><a name="
|
|
1456
|
-
<div class="line"><a name="
|
|
1457
|
-
<div class="line"><a name="
|
|
1458
|
-
<div class="line"><a name="
|
|
1459
|
-
<div class="line"><a name="
|
|
1460
|
-
<div class="line"><a name="
|
|
1461
|
-
<div class="line"><a name="
|
|
1462
|
-
<div class="line"><a name="
|
|
1463
|
-
<div class="line"><a name="
|
|
1464
|
-
<div class="line"><a name="
|
|
1465
|
-
<div class="line"><a name="
|
|
1466
|
-
<div class="line"><a name="
|
|
1467
|
-
<div class="line"><a name="
|
|
1468
|
-
<div class="line"><a name="
|
|
1469
|
-
<div class="line"><a name="
|
|
1470
|
-
<div class="line"><a name="
|
|
1471
|
-
<div class="line"><a name="
|
|
1472
|
-
<div class="line"><a name="
|
|
1473
|
-
<div class="line"><a name="
|
|
1474
|
-
<div class="line"><a name="
|
|
1475
|
-
<div class="line"><a name="
|
|
1476
|
-
<div class="line"><a name="
|
|
1477
|
-
<div class="line"><a name="
|
|
1478
|
-
<div class="line"><a name="
|
|
1479
|
-
<div class="line"><a name="
|
|
1480
|
-
<div class="line"><a name="
|
|
1481
|
-
<div class="line"><a name="
|
|
1482
|
-
<div class="line"><a name="
|
|
1483
|
-
<div class="line"><a name="
|
|
1433
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00519">519</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
1434
|
+
<div class="fragment"><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> {</div>
|
|
1435
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  </div>
|
|
1436
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">if</span> (C->getType()->isSingleValueType())</div>
|
|
1437
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div>
|
|
1438
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* E = SVFUtil::dyn_cast<ConstantExpr>(C))</div>
|
|
1439
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  {</div>
|
|
1440
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">handleCE</a>(E);</div>
|
|
1441
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  }</div>
|
|
1442
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">else</span></div>
|
|
1443
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  {</div>
|
|
1444
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">collectVal</a>(C);</div>
|
|
1445
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div>
|
|
1446
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  }</div>
|
|
1447
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ConstantArray>(C))</div>
|
|
1448
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  {</div>
|
|
1449
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0, e = C->getNumOperands(); i != e; i++)</div>
|
|
1450
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  {</div>
|
|
1451
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a1efd9406182eb86b1ee4829c931b566d">handleGlobalInitializerCE</a>(SVFUtil::cast<Constant>(C->getOperand(i)));</div>
|
|
1452
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div>
|
|
1453
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div>
|
|
1454
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ConstantStruct>(C))</div>
|
|
1455
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div>
|
|
1456
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0, e = C->getNumOperands(); i != e; i++)</div>
|
|
1457
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  {</div>
|
|
1458
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a1efd9406182eb86b1ee4829c931b566d">handleGlobalInitializerCE</a>(SVFUtil::cast<Constant>(C->getOperand(i)));</div>
|
|
1459
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  }</div>
|
|
1460
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  }</div>
|
|
1461
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>* data = SVFUtil::dyn_cast<ConstantData>(C))</div>
|
|
1462
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  {</div>
|
|
1463
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a18dd95e01a50aa82165c46a3801053c5">Options::ModelConsts</a>())</div>
|
|
1464
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  {</div>
|
|
1465
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8ad3aa124fabddc2fdd07c50403d70a9">ConstantDataSequential</a>* seq =</div>
|
|
1466
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  SVFUtil::dyn_cast<ConstantDataSequential>(data))</div>
|
|
1467
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  {</div>
|
|
1468
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < seq->getNumElements(); i++)</div>
|
|
1469
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  {</div>
|
|
1470
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* ct = seq->getElementAsConstant(i);</div>
|
|
1471
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a1efd9406182eb86b1ee4829c931b566d">handleGlobalInitializerCE</a>(ct);</div>
|
|
1472
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  }</div>
|
|
1473
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div>
|
|
1474
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">else</span></div>
|
|
1475
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  {</div>
|
|
1476
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  assert(</div>
|
|
1477
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  (SVFUtil::isa<ConstantAggregateZero, UndefValue>(data)) &&</div>
|
|
1478
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="stringliteral">"Single value type data should have been handled!"</span>);</div>
|
|
1479
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  }</div>
|
|
1480
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  }</div>
|
|
1481
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div>
|
|
1482
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">else</span></div>
|
|
1483
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  {</div>
|
|
1484
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="comment">//TODO:assert(SVFUtil::isa<ConstantVector>(C),"what else do we have");</span></div>
|
|
1485
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  }</div>
|
|
1486
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> }</div>
|
|
1484
1487
|
</div><!-- fragment -->
|
|
1485
1488
|
</div>
|
|
1486
1489
|
</div>
|
|
@@ -1532,86 +1535,86 @@ Friends</h2></td></tr>
|
|
|
1532
1535
|
<p>if val is GlobalVar, byteSize is Type's LLVM ByteSize All GlobalVariable must have constant size</p>
|
|
1533
1536
|
<p>if val is heap alloc</p>
|
|
1534
1537
|
|
|
1535
|
-
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#
|
|
1536
|
-
<div class="fragment"><div class="line"><a name="
|
|
1537
|
-
<div class="line"><a name="
|
|
1538
|
-
<div class="line"><a name="
|
|
1539
|
-
<div class="line"><a name="
|
|
1540
|
-
<div class="line"><a name="
|
|
1541
|
-
<div class="line"><a name="
|
|
1542
|
-
<div class="line"><a name="
|
|
1543
|
-
<div class="line"><a name="
|
|
1544
|
-
<div class="line"><a name="
|
|
1545
|
-
<div class="line"><a name="
|
|
1546
|
-
<div class="line"><a name="
|
|
1547
|
-
<div class="line"><a name="
|
|
1548
|
-
<div class="line"><a name="
|
|
1549
|
-
<div class="line"><a name="
|
|
1550
|
-
<div class="line"><a name="
|
|
1551
|
-
<div class="line"><a name="
|
|
1552
|
-
<div class="line"><a name="
|
|
1553
|
-
<div class="line"><a name="
|
|
1554
|
-
<div class="line"><a name="
|
|
1555
|
-
<div class="line"><a name="
|
|
1556
|
-
<div class="line"><a name="
|
|
1557
|
-
<div class="line"><a name="
|
|
1558
|
-
<div class="line"><a name="
|
|
1559
|
-
<div class="line"><a name="
|
|
1560
|
-
<div class="line"><a name="
|
|
1561
|
-
<div class="line"><a name="
|
|
1562
|
-
<div class="line"><a name="
|
|
1563
|
-
<div class="line"><a name="
|
|
1564
|
-
<div class="line"><a name="
|
|
1565
|
-
<div class="line"><a name="
|
|
1566
|
-
<div class="line"><a name="
|
|
1567
|
-
<div class="line"><a name="
|
|
1568
|
-
<div class="line"><a name="
|
|
1569
|
-
<div class="line"><a name="
|
|
1570
|
-
<div class="line"><a name="
|
|
1571
|
-
<div class="line"><a name="
|
|
1572
|
-
<div class="line"><a name="
|
|
1573
|
-
<div class="line"><a name="
|
|
1574
|
-
<div class="line"><a name="
|
|
1575
|
-
<div class="line"><a name="
|
|
1576
|
-
<div class="line"><a name="
|
|
1577
|
-
<div class="line"><a name="
|
|
1578
|
-
<div class="line"><a name="
|
|
1579
|
-
<div class="line"><a name="
|
|
1580
|
-
<div class="line"><a name="
|
|
1581
|
-
<div class="line"><a name="
|
|
1582
|
-
<div class="line"><a name="
|
|
1583
|
-
<div class="line"><a name="
|
|
1584
|
-
<div class="line"><a name="
|
|
1585
|
-
<div class="line"><a name="
|
|
1586
|
-
<div class="line"><a name="
|
|
1587
|
-
<div class="line"><a name="
|
|
1588
|
-
<div class="line"><a name="
|
|
1589
|
-
<div class="line"><a name="
|
|
1590
|
-
<div class="line"><a name="
|
|
1591
|
-
<div class="line"><a name="
|
|
1592
|
-
<div class="line"><a name="
|
|
1593
|
-
<div class="line"><a name="
|
|
1594
|
-
<div class="line"><a name="
|
|
1595
|
-
<div class="line"><a name="
|
|
1596
|
-
<div class="line"><a name="
|
|
1597
|
-
<div class="line"><a name="
|
|
1598
|
-
<div class="line"><a name="
|
|
1599
|
-
<div class="line"><a name="
|
|
1600
|
-
<div class="line"><a name="
|
|
1601
|
-
<div class="line"><a name="
|
|
1602
|
-
<div class="line"><a name="
|
|
1603
|
-
<div class="line"><a name="
|
|
1604
|
-
<div class="line"><a name="
|
|
1605
|
-
<div class="line"><a name="
|
|
1606
|
-
<div class="line"><a name="
|
|
1607
|
-
<div class="line"><a name="
|
|
1608
|
-
<div class="line"><a name="
|
|
1609
|
-
<div class="line"><a name="
|
|
1610
|
-
<div class="line"><a name="
|
|
1611
|
-
<div class="line"><a name="
|
|
1612
|
-
<div class="line"><a name="
|
|
1613
|
-
<div class="line"><a name="
|
|
1614
|
-
<div class="line"><a name="
|
|
1538
|
+
<p class="definition">Definition at line <a class="el" href="SymbolTableBuilder_8cpp_source.html#l00808">808</a> of file <a class="el" href="SymbolTableBuilder_8cpp_source.html">SymbolTableBuilder.cpp</a>.</p>
|
|
1539
|
+
<div class="fragment"><div class="line"><a name="l00810"></a><span class="lineno"> 810</span> {</div>
|
|
1540
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  </div>
|
|
1541
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemNum = 1;</div>
|
|
1542
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="comment">// init byteSize = 0, If byteSize is changed in the following process,</span></div>
|
|
1543
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="comment">// it means that ObjTypeInfo has a Constant Byte Size</span></div>
|
|
1544
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> byteSize = 0;</div>
|
|
1545
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="comment">// Global variable</span></div>
|
|
1546
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="comment">// if val is Function Obj, byteSize is not set</span></div>
|
|
1547
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">if</span> (SVFUtil::isa<Function>(val))</div>
|
|
1548
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  {</div>
|
|
1549
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830af5f94b2a41dab25fa08c94a989fb9515">ObjTypeInfo::FUNCTION_OBJ</a>);</div>
|
|
1550
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#af5c882c10cd46c669c5aededbdb510d8">analyzeObjType</a>(typeinfo,val);</div>
|
|
1551
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  elemNum = <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a674b84d529c762af3a45e7d4ce4d543d">getNumOfElements</a>(objTy);</div>
|
|
1552
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  }</div>
|
|
1553
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">AllocaInst</a>* allocaInst = SVFUtil::dyn_cast<AllocaInst>(val))</div>
|
|
1554
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  {</div>
|
|
1555
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aad918042d1f04a5e3960817d55ccb5d5">ObjTypeInfo::STACK_OBJ</a>);</div>
|
|
1556
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#af5c882c10cd46c669c5aededbdb510d8">analyzeObjType</a>(typeinfo,val);</div>
|
|
1557
|
+
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* sz = SVFUtil::dyn_cast<ConstantInt>(allocaInst->getArraySize()))</div>
|
|
1558
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  {</div>
|
|
1559
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  elemNum = sz->getZExtValue() * <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a674b84d529c762af3a45e7d4ce4d543d">getNumOfElements</a>(objTy);</div>
|
|
1560
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  byteSize = sz->getZExtValue() * typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#aaffd94b311238f183031a525376c55a2">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
1561
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div>
|
|
1562
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">else</span></div>
|
|
1563
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  {</div>
|
|
1564
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  elemNum = <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a674b84d529c762af3a45e7d4ce4d543d">getNumOfElements</a>(objTy);</div>
|
|
1565
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  byteSize = 0;</div>
|
|
1566
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  }</div>
|
|
1567
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  }</div>
|
|
1568
|
+
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GlobalVariable>(val))</div>
|
|
1569
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  {</div>
|
|
1570
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b">ObjTypeInfo::GLOBVAR_OBJ</a>);</div>
|
|
1571
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(val))</div>
|
|
1572
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a84c1bc6eaff950330a102afca1efc04c">ObjTypeInfo::CONST_GLOBAL_OBJ</a>);</div>
|
|
1573
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#af5c882c10cd46c669c5aededbdb510d8">analyzeObjType</a>(typeinfo,val);</div>
|
|
1574
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  elemNum = <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a674b84d529c762af3a45e7d4ce4d543d">getNumOfElements</a>(objTy);</div>
|
|
1575
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  byteSize = typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#aaffd94b311238f183031a525376c55a2">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
1576
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  }</div>
|
|
1577
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<Instruction>(val) &&</div>
|
|
1578
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(</div>
|
|
1579
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFInstruction(</div>
|
|
1580
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  SVFUtil::cast<Instruction>(val))))</div>
|
|
1581
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  {</div>
|
|
1582
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  elemNum = <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a86e051b7423b9e6cc3c96ccddb0ad345">analyzeHeapObjType</a>(typeinfo,val);</div>
|
|
1583
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="comment">// analyze heap alloc like (malloc/calloc/...), the alloc functions have</span></div>
|
|
1584
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="comment">// annotation like "AllocSize:Arg1". Please refer to extapi.c.</span></div>
|
|
1585
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="comment">// e.g. calloc(4, 10), annotation is "AllocSize:Arg0*Arg1",</span></div>
|
|
1586
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="comment">// it means byteSize = 4 (Arg0) * 10 (Arg1) = 40</span></div>
|
|
1587
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  byteSize = <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a889af96532c273bb91f59abf6433b04c">analyzeHeapAllocByteSize</a>(val);</div>
|
|
1588
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  }</div>
|
|
1589
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">ArgInProgEntryFunction</a>(val))</div>
|
|
1590
|
+
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  {</div>
|
|
1591
|
+
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html#afe2806a0aef240ab313975decfe362f7">analyzeStaticObjType</a>(typeinfo,val);</div>
|
|
1592
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="comment">// user input data, label its field as infinite here</span></div>
|
|
1593
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  elemNum = typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4">getMaxFieldOffsetLimit</a>();</div>
|
|
1594
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  byteSize = typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#aaffd94b311238f183031a525376c55a2">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
1595
|
+
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  }</div>
|
|
1596
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val))</div>
|
|
1597
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  {</div>
|
|
1598
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a5e5bc3a1838476fbd80c52720c9d103e">ObjTypeInfo::CONST_DATA</a>);</div>
|
|
1599
|
+
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  elemNum = <a class="code" href="classSVF_1_1SymbolTableBuilder.html#a603cf580467b32df5fad94ade3287b0f">getNumOfFlattenElements</a>(val->getType());</div>
|
|
1600
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  byteSize = typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#aaffd94b311238f183031a525376c55a2">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
1601
|
+
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  }</div>
|
|
1602
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">else</span></div>
|
|
1603
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  {</div>
|
|
1604
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  assert(<span class="stringliteral">"what other object do we have??"</span>);</div>
|
|
1605
|
+
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  abort();</div>
|
|
1606
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  }</div>
|
|
1607
|
+
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  </div>
|
|
1608
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="comment">// Reset maxOffsetLimit if it is over the total fieldNum of this object</span></div>
|
|
1609
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <span class="keywordflow">if</span>(typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4">getMaxFieldOffsetLimit</a>() > elemNum)</div>
|
|
1610
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#aff17d13e520a731accedd06350af6221">setNumOfElements</a>(elemNum);</div>
|
|
1611
|
+
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  </div>
|
|
1612
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="comment">// set ByteSize. If ByteSize > 0, this typeinfo has constant type.</span></div>
|
|
1613
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="comment">// If ByteSize == 0, this typeinfo has 1) zero byte 2) non-const byte size</span></div>
|
|
1614
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="comment">// If ByteSize>MaxFieldLimit, set MaxFieldLimit to the byteSize;</span></div>
|
|
1615
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  byteSize = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() > byteSize? byteSize: <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1616
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  typeinfo-><a class="code" href="classSVF_1_1ObjTypeInfo.html#ac093156bfb46c07675ae201f449cdca0">setByteSizeOfObj</a>(byteSize);</div>
|
|
1617
|
+
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> }</div>
|
|
1615
1618
|
</div><!-- fragment -->
|
|
1616
1619
|
</div>
|
|
1617
1620
|
</div>
|
|
@@ -1671,12 +1674,12 @@ Friends</h2></td></tr>
|
|
|
1671
1674
|
</ul>
|
|
1672
1675
|
</div><!-- contents -->
|
|
1673
1676
|
<div class="ttc" id="aSVFType_8h_html_ad46a0423f8709692e1bb0f0fa5b1ca2f"><div class="ttname"><a href="SVFType_8h.html#ad46a0423f8709692e1bb0f0fa5b1ca2f">DMemModel</a></div><div class="ttdeci">#define DMemModel</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00585">SVFType.h:585</a></div></div>
|
|
1674
|
-
<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#
|
|
1677
|
+
<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>
|
|
1675
1678
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a95b8031f1e15d49c7d68628be1d05aae"><div class="ttname"><a href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">SVF::SVFType::getByteSize</a></div><div class="ttdeci">u32_t getByteSize() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00323">SVFType.h:323</a></div></div>
|
|
1676
1679
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00101">LLVMModule.h:101</a></div></div>
|
|
1677
1680
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a4af4db2fe43846609d2ed1d7022b1be1"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00188">SVFUtil.h:188</a></div></div>
|
|
1678
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_afe2806a0aef240ab313975decfe362f7"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#afe2806a0aef240ab313975decfe362f7">SVF::SymbolTableBuilder::analyzeStaticObjType</a></div><div class="ttdeci">void analyzeStaticObjType(ObjTypeInfo *typeinfo, const Value *val)</div><div class="ttdoc">Analyse types of heap and static objects.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1679
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a9f4cf6914b400b9f69c7852f13c496a9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a9f4cf6914b400b9f69c7852f13c496a9">SVF::SymbolTableInfo::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Another debug method.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
1681
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_afe2806a0aef240ab313975decfe362f7"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#afe2806a0aef240ab313975decfe362f7">SVF::SymbolTableBuilder::analyzeStaticObjType</a></div><div class="ttdeci">void analyzeStaticObjType(ObjTypeInfo *typeinfo, const Value *val)</div><div class="ttdoc">Analyse types of heap and static objects.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00790">SymbolTableBuilder.cpp:790</a></div></div>
|
|
1682
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a9f4cf6914b400b9f69c7852f13c496a9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a9f4cf6914b400b9f69c7852f13c496a9">SVF::SymbolTableInfo::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Another debug method.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00330">SymbolTableInfo.cpp:330</a></div></div>
|
|
1680
1683
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_aeab14702eabde827923a692cba8f7f8a"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">SVF::SymbolTableInfo::objMap</a></div><div class="ttdeci">IDToMemMapTy objMap</div><div class="ttdoc">map a memory sym id to its obj</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00086">SymbolTableInfo.h:86</a></div></div>
|
|
1681
1684
|
<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>
|
|
1682
1685
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">SVF::SymbolTableInfo::NullPtr</a></div><div class="ttdeci">@ NullPtr</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00058">SymbolTableInfo.h:58</a></div></div>
|
|
@@ -1684,21 +1687,21 @@ Friends</h2></td></tr>
|
|
|
1684
1687
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aca11801ed6ef6ff8d2a1e85bc0fc5794"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">SVF::LLVMUtil::isObject</a></div><div class="ttdeci">bool isObject(const Value *ref)</div><div class="ttdoc">Return true if this value refers to a object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00054">LLVMUtil.cpp:54</a></div></div>
|
|
1685
1688
|
<div class="ttc" id="anamespaceSVF_html_a292a6e8c5b4f2023b5575879c57eca62"><div class="ttname"><a href="namespaceSVF.html#a292a6e8c5b4f2023b5575879c57eca62">SVF::UnaryOperator</a></div><div class="ttdeci">llvm::UnaryOperator UnaryOperator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00178">BasicTypes.h:178</a></div></div>
|
|
1686
1689
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a3ddf7041e685da8ede81cd773dd47761"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3ddf7041e685da8ede81cd773dd47761">SVF::SVFUtil::cast</a></div><div class="ttdeci">std::enable_if_t<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type > cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00360">Casting.h:360</a></div></div>
|
|
1687
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a35b36394af726c679fe2c1b6051db7c4"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">SVF::LLVMUtil::isBinaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isBinaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1690
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a35b36394af726c679fe2c1b6051db7c4"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">SVF::LLVMUtil::isBinaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isBinaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00314">LLVMUtil.h:314</a></div></div>
|
|
1688
1691
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_ae26937ca2107517e6ede8eb6d76b95d5"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#ae26937ca2107517e6ede8eb6d76b95d5">SVF::ObjTypeInfo::resetTypeForHeapStaticObj</a></div><div class="ttdeci">void resetTypeForHeapStaticObj(const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00050">SymbolTableInfo.cpp:50</a></div></div>
|
|
1689
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adad59a953dd81e213db71babbbc9df2f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">SVF::LLVMUtil::ArgInProgEntryFunction</a></div><div class="ttdeci">bool ArgInProgEntryFunction(const Value *val)</div><div class="ttdoc">Return true if this is an argument of a program entry function (e.g. main)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1692
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adad59a953dd81e213db71babbbc9df2f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">SVF::LLVMUtil::ArgInProgEntryFunction</a></div><div class="ttdeci">bool ArgInProgEntryFunction(const Value *val)</div><div class="ttdoc">Return true if this is an argument of a program entry function (e.g. main)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00185">LLVMUtil.h:185</a></div></div>
|
|
1690
1693
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830a5e5bc3a1838476fbd80c52720c9d103e"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a5e5bc3a1838476fbd80c52720c9d103e">SVF::ObjTypeInfo::CONST_DATA</a></div><div class="ttdeci">@ CONST_DATA</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00499">SymbolTableInfo.h:499</a></div></div>
|
|
1691
1694
|
<div class="ttc" id="anamespaceSVF_html_aad5d26ab07a5d1314bdb8f54e0fcdb22"><div class="ttname"><a href="namespaceSVF.html#aad5d26ab07a5d1314bdb8f54e0fcdb22">SVF::BinaryOperator</a></div><div class="ttdeci">llvm::BinaryOperator BinaryOperator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00177">BasicTypes.h:177</a></div></div>
|
|
1692
1695
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a704b917b1e1dbaf9cd758fa9acc1083b"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">SVF::SymbolTableInfo::isConstantObj</a></div><div class="ttdeci">static bool isConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00165">SymbolTableInfo.h:165</a></div></div>
|
|
1693
1696
|
<div class="ttc" id="anamespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
|
|
1694
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a1efd9406182eb86b1ee4829c931b566d"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a1efd9406182eb86b1ee4829c931b566d">SVF::SymbolTableBuilder::handleGlobalInitializerCE</a></div><div class="ttdeci">void handleGlobalInitializerCE(const Constant *C)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1695
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a200539f965bff5627abac41920498ee8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">SVF::LLVMUtil::getFirstUseViaCastInst</a></div><div class="ttdeci">const Value * getFirstUseViaCastInst(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
1697
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a1efd9406182eb86b1ee4829c931b566d"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a1efd9406182eb86b1ee4829c931b566d">SVF::SymbolTableBuilder::handleGlobalInitializerCE</a></div><div class="ttdeci">void handleGlobalInitializerCE(const Constant *C)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00519">SymbolTableBuilder.cpp:519</a></div></div>
|
|
1698
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a200539f965bff5627abac41920498ee8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">SVF::LLVMUtil::getFirstUseViaCastInst</a></div><div class="ttdeci">const Value * getFirstUseViaCastInst(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00414">LLVMUtil.cpp:414</a></div></div>
|
|
1696
1699
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a0d7588578735679773493ff2d5e458e1"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a0d7588578735679773493ff2d5e458e1">SVF::SVFUtil::increaseStackSize</a></div><div class="ttdeci">void increaseStackSize()</div><div class="ttdoc">Increase the stack size limit.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00227">SVFUtil.cpp:227</a></div></div>
|
|
1697
1700
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a518c82138fcadc6634980566c1c0f762"><div class="ttname"><a href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">SVF::StInfo::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements() const</div><div class="ttdoc">Return number of elements after flattening (including array elements)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00225">SVFType.h:225</a></div></div>
|
|
1698
1701
|
<div class="ttc" id="anamespaceSVF_html_a412280b134578905248ce0122c5db7c9"><div class="ttname"><a href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SVF::SwitchInst</a></div><div class="ttdeci">llvm::SwitchInst SwitchInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00153">BasicTypes.h:153</a></div></div>
|
|
1699
1702
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01275">LLVMModule.cpp:1275</a></div></div>
|
|
1700
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
1701
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_abc8b35d432db78bd5282010c7c800d70"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">SVF::SymbolTableBuilder::collectVal</a></div><div class="ttdeci">void collectVal(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1703
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00927">LLVMUtil.cpp:927</a></div></div>
|
|
1704
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_abc8b35d432db78bd5282010c7c800d70"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">SVF::SymbolTableBuilder::collectVal</a></div><div class="ttdeci">void collectVal(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00289">SymbolTableBuilder.cpp:289</a></div></div>
|
|
1702
1705
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00201">LLVMModule.h:201</a></div></div>
|
|
1703
1706
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">SVF::SymbolTableInfo::BlackHole</a></div><div class="ttdeci">@ BlackHole</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00060">SymbolTableInfo.h:60</a></div></div>
|
|
1704
1707
|
<div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
|
|
@@ -1709,17 +1712,17 @@ Friends</h2></td></tr>
|
|
|
1709
1712
|
<div class="ttc" id="anamespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00053">SVFType.h:53</a></div></div>
|
|
1710
1713
|
<div class="ttc" id="anamespacellvm_html_acfe99e9d441434240c79f6d76b73fe0a"><div class="ttname"><a href="namespacellvm.html#acfe99e9d441434240c79f6d76b73fe0a">llvm::bridge_gep_begin</a></div><div class="ttdeci">bridge_gep_iterator bridge_gep_begin(const User *GEP)</div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00149">GEPTypeBridgeIterator.h:149</a></div></div>
|
|
1711
1714
|
<div class="ttc" id="anamespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
|
|
1712
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_af7aae2e2851c948f85600066a5a394ca"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#af7aae2e2851c948f85600066a5a394ca">SVF::SymbolTableBuilder::getOrAddSVFTypeInfo</a></div><div class="ttdeci">StInfo * getOrAddSVFTypeInfo(const Type *T)</div><div class="ttdoc">Get a reference to StructInfo.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1715
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_af7aae2e2851c948f85600066a5a394ca"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#af7aae2e2851c948f85600066a5a394ca">SVF::SymbolTableBuilder::getOrAddSVFTypeInfo</a></div><div class="ttdeci">StInfo * getOrAddSVFTypeInfo(const Type *T)</div><div class="ttdoc">Get a reference to StructInfo.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00921">SymbolTableBuilder.cpp:921</a></div></div>
|
|
1713
1716
|
<div class="ttc" id="anamespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00144">BasicTypes.h:144</a></div></div>
|
|
1714
1717
|
<div class="ttc" id="aclassSVF_1_1Options_html_a52c06ea1c5dd347079f192f0cba3dcd3"><div class="ttname"><a href="classSVF_1_1Options.html#a52c06ea1c5dd347079f192f0cba3dcd3">SVF::Options::SymTabPrint</a></div><div class="ttdeci">static const Option< bool > SymTabPrint</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00221">Options.h:221</a></div></div>
|
|
1715
1718
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a94c06e5ac0b50989743a9e63c9a6d5b9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">SVF::SymbolTableInfo::varargSymMap</a></div><div class="ttdeci">FunToIDMapTy varargSymMap</div><div class="ttdoc">vararg map</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00085">SymbolTableInfo.h:85</a></div></div>
|
|
1716
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a603cf580467b32df5fad94ade3287b0f"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a603cf580467b32df5fad94ade3287b0f">SVF::SymbolTableBuilder::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements(const Type *T)</div><div class="ttdoc">Number of flattened elements of an array or struct.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1719
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a603cf580467b32df5fad94ade3287b0f"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a603cf580467b32df5fad94ade3287b0f">SVF::SymbolTableBuilder::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements(const Type *T)</div><div class="ttdoc">Number of flattened elements of an array or struct.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00913">SymbolTableBuilder.cpp:913</a></div></div>
|
|
1717
1720
|
<div class="ttc" id="anamespacellvm_html_a7cfc92a12082d69711c97bb3d1b99c48"><div class="ttname"><a href="namespacellvm.html#a7cfc92a12082d69711c97bb3d1b99c48">llvm::bridge_gep_end</a></div><div class="ttdeci">bridge_gep_iterator bridge_gep_end(const User *GEP)</div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00157">GEPTypeBridgeIterator.h:157</a></div></div>
|
|
1718
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a674b84d529c762af3a45e7d4ce4d543d"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a674b84d529c762af3a45e7d4ce4d543d">SVF::SymbolTableBuilder::getNumOfElements</a></div><div class="ttdeci">u32_t getNumOfElements(const Type *ety)</div><div class="ttdoc">Return size of this object based on LLVM value.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1721
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a674b84d529c762af3a45e7d4ce4d543d"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a674b84d529c762af3a45e7d4ce4d543d">SVF::SymbolTableBuilder::getNumOfElements</a></div><div class="ttdeci">u32_t getNumOfElements(const Type *ety)</div><div class="ttdoc">Return size of this object based on LLVM value.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00901">SymbolTableBuilder.cpp:901</a></div></div>
|
|
1719
1722
|
<div class="ttc" id="anamespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00081">BasicTypes.h:81</a></div></div>
|
|
1720
1723
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">SVF::SymbolTableInfo::BlkPtr</a></div><div class="ttdeci">@ BlkPtr</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00059">SymbolTableInfo.h:59</a></div></div>
|
|
1721
1724
|
<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>
|
|
1722
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_af983b0e1fbd371d8672e8f03f63084fc"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">SVF::LLVMUtil::isCastConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCastConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1725
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_af983b0e1fbd371d8672e8f03f63084fc"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">SVF::LLVMUtil::isCastConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCastConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00269">LLVMUtil.h:269</a></div></div>
|
|
1723
1726
|
<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>
|
|
1724
1727
|
<div class="ttc" id="anamespaceSVF_html_a0fd33072b099f61eaa642e94ed0c03fc"><div class="ttname"><a href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">SVF::GlobalAlias</a></div><div class="ttdeci">llvm::GlobalAlias GlobalAlias</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00126">BasicTypes.h:126</a></div></div>
|
|
1725
1728
|
<div class="ttc" id="anamespaceSVF_html_ac7dcc6103dee3a0bbc2fd2e02716a154"><div class="ttname"><a href="namespaceSVF.html#ac7dcc6103dee3a0bbc2fd2e02716a154">SVF::ReturnInst</a></div><div class="ttdeci">llvm::ReturnInst ReturnInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00155">BasicTypes.h:155</a></div></div>
|
|
@@ -1735,53 +1738,53 @@ Friends</h2></td></tr>
|
|
|
1735
1738
|
<div class="ttc" id="aSVFType_8h_html_aaff570bb354b8519a4852ffda413af7c"><div class="ttname"><a href="SVFType_8h.html#aaff570bb354b8519a4852ffda413af7c">DMemModelCE</a></div><div class="ttdeci">#define DMemModelCE</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00586">SVFType.h:586</a></div></div>
|
|
1736
1739
|
<div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a2bd3ca30fc9669d9a0327544bdb4557b"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">SVF::NodeIDAllocator::get</a></div><div class="ttdeci">static NodeIDAllocator * get(void)</div><div class="ttdoc">Return (singleton) allocator.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00026">NodeIDAllocator.cpp:26</a></div></div>
|
|
1737
1740
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_ac093156bfb46c07675ae201f449cdca0"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#ac093156bfb46c07675ae201f449cdca0">SVF::ObjTypeInfo::setByteSizeOfObj</a></div><div class="ttdeci">void setByteSizeOfObj(u32_t size)</div><div class="ttdoc">Set the byte size of this object.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00568">SymbolTableInfo.h:568</a></div></div>
|
|
1738
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a891bfea437256d1b7aa957d32797e419"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a891bfea437256d1b7aa957d32797e419">SVF::SymbolTableBuilder::collectObj</a></div><div class="ttdeci">void collectObj(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1741
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a891bfea437256d1b7aa957d32797e419"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a891bfea437256d1b7aa957d32797e419">SVF::SymbolTableBuilder::collectObj</a></div><div class="ttdeci">void collectObj(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00318">SymbolTableBuilder.cpp:318</a></div></div>
|
|
1739
1742
|
<div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
|
|
1740
1743
|
<div class="ttc" id="anamespaceSVF_html_ac8d4990439af7a2ecca7e15383119674"><div class="ttname"><a href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">SVF::PHINode</a></div><div class="ttdeci">llvm::PHINode PHINode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00163">BasicTypes.h:163</a></div></div>
|
|
1741
1744
|
<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>
|
|
1742
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_ac2fa9a797e3e2a8885ccc488030659d5"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#ac2fa9a797e3e2a8885ccc488030659d5">SVF::SymbolTableBuilder::collectSym</a></div><div class="ttdeci">void collectSym(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1745
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_ac2fa9a797e3e2a8885ccc488030659d5"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#ac2fa9a797e3e2a8885ccc488030659d5">SVF::SymbolTableBuilder::collectSym</a></div><div class="ttdeci">void collectSym(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00260">SymbolTableBuilder.cpp:260</a></div></div>
|
|
1743
1746
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a85994a1cdb68036dde589aab0d7b3e82"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a85994a1cdb68036dde589aab0d7b3e82">SVF::SymbolTableBuilder::createConstantObj</a></div><div class="ttdeci">MemObj * createConstantObj(SymID symId)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00058">SymbolTableBuilder.cpp:58</a></div></div>
|
|
1744
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1745
|
-
<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#
|
|
1747
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00289">LLVMUtil.h:289</a></div></div>
|
|
1748
|
+
<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#l00420">LLVMUtil.h:420</a></div></div>
|
|
1746
1749
|
<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>
|
|
1747
1750
|
<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>
|
|
1748
1751
|
<div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a92b053f79cfa1259603836cb0aacad7d"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a92b053f79cfa1259603836cb0aacad7d">SVF::NodeIDAllocator::endSymbolAllocation</a></div><div class="ttdeci">NodeID endSymbolAllocation(void)</div><div class="ttdoc">Notify the allocator that all symbols have had IDs allocated.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00163">NodeIDAllocator.cpp:163</a></div></div>
|
|
1749
1752
|
<div class="ttc" id="anamespaceSVF_html_a3bacb4f95c73e6d794901d01c6b65a83"><div class="ttname"><a href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">SVF::AllocaInst</a></div><div class="ttdeci">llvm::AllocaInst AllocaInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00148">BasicTypes.h:148</a></div></div>
|
|
1750
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae59b0dc7f29dbd2018e819f77465f66e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">SVF::LLVMUtil::isSelectConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isSelectConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1753
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae59b0dc7f29dbd2018e819f77465f66e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">SVF::LLVMUtil::isSelectConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isSelectConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00279">LLVMUtil.h:279</a></div></div>
|
|
1751
1754
|
<div class="ttc" id="anamespaceSVF_html_a5d875a9d726bb9f68a17efa528dec0b4"><div class="ttname"><a href="namespaceSVF.html#a5d875a9d726bb9f68a17efa528dec0b4">SVF::CmpInst</a></div><div class="ttdeci">llvm::CmpInst CmpInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00157">BasicTypes.h:157</a></div></div>
|
|
1752
1755
|
<div class="ttc" id="anamespaceSVF_html_ab7fac9d4a4839be445c89777e21bc307"><div class="ttname"><a href="namespaceSVF.html#ab7fac9d4a4839be445c89777e21bc307">SVF::SelectInst</a></div><div class="ttdeci">llvm::SelectInst SelectInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00172">BasicTypes.h:172</a></div></div>
|
|
1753
1756
|
<div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a6ce6b40b8291c6378dda07d943d66e53"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a6ce6b40b8291c6378dda07d943d66e53">SVF::NodeIDAllocator::allocateObjectId</a></div><div class="ttdeci">NodeID allocateObjectId(void)</div><div class="ttdoc">Allocate an object ID as determined by the strategy.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00050">NodeIDAllocator.cpp:50</a></div></div>
|
|
1754
1757
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830a692b4b0df23bad19ea04d18b01bf445c"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a692b4b0df23bad19ea04d18b01bf445c">SVF::ObjTypeInfo::HEAP_OBJ</a></div><div class="ttdeci">@ HEAP_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00493">SymbolTableInfo.h:493</a></div></div>
|
|
1755
1758
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830aad918042d1f04a5e3960817d55ccb5d5"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aad918042d1f04a5e3960817d55ccb5d5">SVF::ObjTypeInfo::STACK_OBJ</a></div><div class="ttdeci">@ STACK_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00492">SymbolTableInfo.h:492</a></div></div>
|
|
1756
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_add1f3d59a4a8234fb398ed52d4b2115e"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#add1f3d59a4a8234fb398ed52d4b2115e">SVF::SymbolTableBuilder::collectVararg</a></div><div class="ttdeci">void collectVararg(const Function *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1757
|
-
<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#
|
|
1759
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_add1f3d59a4a8234fb398ed52d4b2115e"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#add1f3d59a4a8234fb398ed52d4b2115e">SVF::SymbolTableBuilder::collectVararg</a></div><div class="ttdeci">void collectVararg(const Function *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00371">SymbolTableBuilder.cpp:371</a></div></div>
|
|
1760
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adfa4a4e6d13004d14137d9168bd32463"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">SVF::LLVMUtil::isInt2PtrConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isInt2PtrConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00249">LLVMUtil.h:249</a></div></div>
|
|
1758
1761
|
<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>
|
|
1759
1762
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_ad6fb2bfae3d4b73a6821a87106f65f49"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">SVF::ObjTypeInfo::setFlag</a></div><div class="ttdeci">void setFlag(MEMTYPE mask)</div><div class="ttdoc">Flag for this object type.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00581">SymbolTableInfo.h:581</a></div></div>
|
|
1760
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1761
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1763
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00259">LLVMUtil.h:259</a></div></div>
|
|
1764
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00427">LLVMUtil.h:427</a></div></div>
|
|
1762
1765
|
<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>
|
|
1763
1766
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a05850c17c2dbe42e5602dc8c9a70f3bd"><div class="ttname"><a href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">SVF::SVFType::getTypeInfo</a></div><div class="ttdeci">StInfo * getTypeInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00309">SVFType.h:309</a></div></div>
|
|
1764
1767
|
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
1765
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a2f5321b9a76ea833650f1391ecd8de5f"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a2f5321b9a76ea833650f1391ecd8de5f">SVF::SymbolTableBuilder::collectRet</a></div><div class="ttdeci">void collectRet(const Function *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1766
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a86e051b7423b9e6cc3c96ccddb0ad345"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a86e051b7423b9e6cc3c96ccddb0ad345">SVF::SymbolTableBuilder::analyzeHeapObjType</a></div><div class="ttdeci">u32_t analyzeHeapObjType(ObjTypeInfo *typeinfo, const Value *val)</div><div class="ttdoc">Analyse types of heap and static objects.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1768
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a2f5321b9a76ea833650f1391ecd8de5f"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a2f5321b9a76ea833650f1391ecd8de5f">SVF::SymbolTableBuilder::collectRet</a></div><div class="ttdeci">void collectRet(const Function *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00354">SymbolTableBuilder.cpp:354</a></div></div>
|
|
1769
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a86e051b7423b9e6cc3c96ccddb0ad345"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a86e051b7423b9e6cc3c96ccddb0ad345">SVF::SymbolTableBuilder::analyzeHeapObjType</a></div><div class="ttdeci">u32_t analyzeHeapObjType(ObjTypeInfo *typeinfo, const Value *val)</div><div class="ttdoc">Analyse types of heap and static objects.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00759">SymbolTableBuilder.cpp:759</a></div></div>
|
|
1767
1770
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830aff4142c0c411dea07b484a19af514047"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aff4142c0c411dea07b484a19af514047">SVF::ObjTypeInfo::CONST_ARRAY_OBJ</a></div><div class="ttdeci">@ CONST_ARRAY_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00497">SymbolTableInfo.h:497</a></div></div>
|
|
1768
1771
|
<div class="ttc" id="aclassSVF_1_1Options_html_a429c3000ee2ac45119b8c241aa06762c"><div class="ttname"><a href="classSVF_1_1Options.html#a429c3000ee2ac45119b8c241aa06762c">SVF::Options::ModelArrays</a></div><div class="ttdeci">static const Option< bool > ModelArrays</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00219">Options.h:219</a></div></div>
|
|
1769
1772
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a5840b742ed8c73ece548b9b4aede07ec"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">SVF::SymbolTableInfo::objSymMap</a></div><div class="ttdeci">ValueToIDMapTy objSymMap</div><div class="ttdoc">map a obj reference to its sym id</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00083">SymbolTableInfo.h:83</a></div></div>
|
|
1770
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_af5c882c10cd46c669c5aededbdb510d8"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#af5c882c10cd46c669c5aededbdb510d8">SVF::SymbolTableBuilder::analyzeObjType</a></div><div class="ttdeci">void analyzeObjType(ObjTypeInfo *typeinfo, const Value *val)</div><div class="ttdoc">Analyse types of all flattened fields of this object.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1773
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_af5c882c10cd46c669c5aededbdb510d8"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#af5c882c10cd46c669c5aededbdb510d8">SVF::SymbolTableBuilder::analyzeObjType</a></div><div class="ttdeci">void analyzeObjType(ObjTypeInfo *typeinfo, const Value *val)</div><div class="ttdoc">Analyse types of all flattened fields of this object.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00627">SymbolTableBuilder.cpp:627</a></div></div>
|
|
1771
1774
|
<div class="ttc" id="anamespaceSVF_html_ac4e93e1fec646ff222940a663843921b"><div class="ttname"><a href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">SVF::GetElementPtrInst</a></div><div class="ttdeci">llvm::GetElementPtrInst GetElementPtrInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00160">BasicTypes.h:160</a></div></div>
|
|
1772
1775
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830af5f94b2a41dab25fa08c94a989fb9515"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830af5f94b2a41dab25fa08c94a989fb9515">SVF::ObjTypeInfo::FUNCTION_OBJ</a></div><div class="ttdeci">@ FUNCTION_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00489">SymbolTableInfo.h:489</a></div></div>
|
|
1773
1776
|
<div class="ttc" id="anamespaceSVF_html_a8ad3aa124fabddc2fdd07c50403d70a9"><div class="ttname"><a href="namespaceSVF.html#a8ad3aa124fabddc2fdd07c50403d70a9">SVF::ConstantDataSequential</a></div><div class="ttdeci">llvm::ConstantDataSequential ConstantDataSequential</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00117">BasicTypes.h:117</a></div></div>
|
|
1774
1777
|
<div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a26b5e09e10448694435f74a8b622a7e8"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a26b5e09e10448694435f74a8b622a7e8">SVF::NodeIDAllocator::allocateValueId</a></div><div class="ttdeci">NodeID allocateValueId(void)</div><div class="ttdoc">Allocate a value ID as determined by the strategy.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00128">NodeIDAllocator.cpp:128</a></div></div>
|
|
1775
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a31190ba1934f945abe8a1b4fcbb636b3"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a31190ba1934f945abe8a1b4fcbb636b3">SVF::SymbolTableBuilder::createObjTypeInfo</a></div><div class="ttdeci">ObjTypeInfo * createObjTypeInfo(const Value *val)</div><div class="ttdoc">Create an objectInfo based on LLVM value.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1778
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a31190ba1934f945abe8a1b4fcbb636b3"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a31190ba1934f945abe8a1b4fcbb636b3">SVF::SymbolTableBuilder::createObjTypeInfo</a></div><div class="ttdeci">ObjTypeInfo * createObjTypeInfo(const Value *val)</div><div class="ttdoc">Create an objectInfo based on LLVM value.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00577">SymbolTableBuilder.cpp:577</a></div></div>
|
|
1776
1779
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a5db9e476132b0a653c7995b61def4065"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a5db9e476132b0a653c7995b61def4065">SVF::SymbolTableBuilder::createBlkObj</a></div><div class="ttdeci">MemObj * createBlkObj(SymID symId)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00046">SymbolTableBuilder.cpp:46</a></div></div>
|
|
1777
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_abe39a7a3557899b4991bcc60d436dc50"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">SVF::SymbolTableBuilder::handleCE</a></div><div class="ttdeci">void handleCE(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1780
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_abe39a7a3557899b4991bcc60d436dc50"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#abe39a7a3557899b4991bcc60d436dc50">SVF::SymbolTableBuilder::handleCE</a></div><div class="ttdeci">void handleCE(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00388">SymbolTableBuilder.cpp:388</a></div></div>
|
|
1778
1781
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_ad9cdb21e20182f3bc95f04bbb97712f3"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">SVF::SymbolTableInfo::isBlkObj</a></div><div class="ttdeci">static bool isBlkObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00161">SymbolTableInfo.h:161</a></div></div>
|
|
1779
1782
|
<div class="ttc" id="anamespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00122">BasicTypes.h:122</a></div></div>
|
|
1780
1783
|
<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>
|
|
1781
1784
|
<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>
|
|
1782
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a72732ec0392d9d5b900fc12177890779"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a72732ec0392d9d5b900fc12177890779">SVF::SymbolTableBuilder::handleGlobalCE</a></div><div class="ttdeci">void handleGlobalCE(const GlobalVariable *G)</div><div class="ttdoc">Handle constant expression.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1785
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a72732ec0392d9d5b900fc12177890779"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a72732ec0392d9d5b900fc12177890779">SVF::SymbolTableBuilder::handleGlobalCE</a></div><div class="ttdeci">void handleGlobalCE(const GlobalVariable *G)</div><div class="ttdoc">Handle constant expression.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00480">SymbolTableBuilder.cpp:480</a></div></div>
|
|
1783
1786
|
<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>
|
|
1784
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a889af96532c273bb91f59abf6433b04c"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a889af96532c273bb91f59abf6433b04c">SVF::SymbolTableBuilder::analyzeHeapAllocByteSize</a></div><div class="ttdeci">u32_t analyzeHeapAllocByteSize(const Value *val)</div><div class="ttdoc">Analyze byte size of heap alloc function (e.g. malloc/calloc/...)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1787
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a889af96532c273bb91f59abf6433b04c"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a889af96532c273bb91f59abf6433b04c">SVF::SymbolTableBuilder::analyzeHeapAllocByteSize</a></div><div class="ttdeci">u32_t analyzeHeapAllocByteSize(const Value *val)</div><div class="ttdoc">Analyze byte size of heap alloc function (e.g. malloc/calloc/...)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00689">SymbolTableBuilder.cpp:689</a></div></div>
|
|
1785
1788
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830a84c1bc6eaff950330a102afca1efc04c"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a84c1bc6eaff950330a102afca1efc04c">SVF::ObjTypeInfo::CONST_GLOBAL_OBJ</a></div><div class="ttdeci">@ CONST_GLOBAL_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00498">SymbolTableInfo.h:498</a></div></div>
|
|
1786
1789
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a42c69bc9ee71cc0ff322c1701b7e07bd"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a42c69bc9ee71cc0ff322c1701b7e07bd">SVF::SymbolTableBuilder::collectSVFTypeInfo</a></div><div class="ttdeci">void collectSVFTypeInfo(const Value *val)</div><div class="ttdoc">collect the syms</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00235">SymbolTableBuilder.cpp:235</a></div></div>
|
|
1787
1790
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
@@ -1793,26 +1796,26 @@ Friends</h2></td></tr>
|
|
|
1793
1796
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html">SVF::LLVMModuleSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00044">LLVMModule.h:44</a></div></div>
|
|
1794
1797
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830ad17b2a35fb492561c4011dbe3880c6c9"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad17b2a35fb492561c4011dbe3880c6c9">SVF::ObjTypeInfo::HASPTR_OBJ</a></div><div class="ttdeci">@ HASPTR_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00500">SymbolTableInfo.h:500</a></div></div>
|
|
1795
1798
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_aff17d13e520a731accedd06350af6221"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#aff17d13e520a731accedd06350af6221">SVF::ObjTypeInfo::setNumOfElements</a></div><div class="ttdeci">void setNumOfElements(u32_t num)</div><div class="ttdoc">Set the number of elements of this object.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00548">SymbolTableInfo.h:548</a></div></div>
|
|
1796
|
-
<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#
|
|
1797
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae368713463c84425f9a1ad27ff401a47"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">SVF::LLVMUtil::getTypeOfHeapAlloc</a></div><div class="ttdeci">const Type * getTypeOfHeapAlloc(const Instruction *inst)</div><div class="ttdoc">Get the type of the heap allocation.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
1799
|
+
<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#l01240">LLVMUtil.cpp:1240</a></div></div>
|
|
1800
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae368713463c84425f9a1ad27ff401a47"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">SVF::LLVMUtil::getTypeOfHeapAlloc</a></div><div class="ttdeci">const Type * getTypeOfHeapAlloc(const Instruction *inst)</div><div class="ttdoc">Get the type of the heap allocation.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00441">LLVMUtil.cpp:441</a></div></div>
|
|
1798
1801
|
<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>
|
|
1799
1802
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b">SVF::ObjTypeInfo::GLOBVAR_OBJ</a></div><div class="ttdeci">@ GLOBVAR_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00490">SymbolTableInfo.h:490</a></div></div>
|
|
1800
1803
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a89e9c6da843e5eef25c51afd5d0937e5"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5">SVF::SymbolTableInfo::getModelConstants</a></div><div class="ttdeci">bool getModelConstants() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00134">SymbolTableInfo.h:134</a></div></div>
|
|
1801
1804
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a93ac673b885633849fa484938405ca75"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">SVF::SVFUtil::isHeapAllocExtCall</a></div><div class="ttdeci">bool isHeapAllocExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00454">SVFUtil.h:454</a></div></div>
|
|
1802
1805
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01238">LLVMModule.cpp:1238</a></div></div>
|
|
1803
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6c5f2f951463494af2e7b0d3267f2772"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">SVF::LLVMUtil::getRefTypeOfHeapAllocOrStatic</a></div><div class="ttdeci">const PointerType * getRefTypeOfHeapAllocOrStatic(const CallBase *cs)</div><div class="ttdoc">Get the reference type of heap/static object from an allocation site.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1804
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab5fc50624b5fe83b676b14bec4b99685"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil::isGepConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isGepConstantExpr(const Value *val)</div><div class="ttdoc">Return corresponding constant expression, otherwise return nullptr.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1806
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6c5f2f951463494af2e7b0d3267f2772"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">SVF::LLVMUtil::getRefTypeOfHeapAllocOrStatic</a></div><div class="ttdeci">const PointerType * getRefTypeOfHeapAllocOrStatic(const CallBase *cs)</div><div class="ttdoc">Get the reference type of heap/static object from an allocation site.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00135">LLVMUtil.h:135</a></div></div>
|
|
1807
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab5fc50624b5fe83b676b14bec4b99685"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil::isGepConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isGepConstantExpr(const Value *val)</div><div class="ttdoc">Return corresponding constant expression, otherwise return nullptr.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00239">LLVMUtil.h:239</a></div></div>
|
|
1805
1808
|
<div class="ttc" id="aclassSVF_1_1Options_html_aaab923c093730b1670a54f09340b1bd5"><div class="ttname"><a href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const Option< u32_t > MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00038">Options.h:38</a></div></div>
|
|
1806
1809
|
<div class="ttc" id="aclassSVF_1_1Options_html_a18dd95e01a50aa82165c46a3801053c5"><div class="ttname"><a href="classSVF_1_1Options.html#a18dd95e01a50aa82165c46a3801053c5">SVF::Options::ModelConsts</a></div><div class="ttdeci">static const Option< bool > ModelConsts</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00218">Options.h:218</a></div></div>
|
|
1807
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a215cc9fd716798bbb7f96f5b64e01349"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">SVF::LLVMUtil::isUnaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isUnaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1810
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a215cc9fd716798bbb7f96f5b64e01349"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">SVF::LLVMUtil::isUnaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isUnaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00325">LLVMUtil.h:325</a></div></div>
|
|
1808
1811
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830adedc43e0fcaebf433120869aa9307b1c"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830adedc43e0fcaebf433120869aa9307b1c">SVF::ObjTypeInfo::VAR_ARRAY_OBJ</a></div><div class="ttdeci">@ VAR_ARRAY_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00495">SymbolTableInfo.h:495</a></div></div>
|
|
1809
1812
|
<div class="ttc" id="aSVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DBUG model of each pass.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00576">SVFType.h:576</a></div></div>
|
|
1810
1813
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a5054f95a7b77257ffb283044aab17b08"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">SVF::SymbolTableInfo::valSymMap</a></div><div class="ttdeci">ValueToIDMapTy valSymMap</div><div class="ttdoc">map a value to its sym id</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00082">SymbolTableInfo.h:82</a></div></div>
|
|
1811
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_ae938564e6a36848cb848a5badc15a1de"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#ae938564e6a36848cb848a5badc15a1de">SVF::SymbolTableBuilder::initTypeInfo</a></div><div class="ttdeci">void initTypeInfo(ObjTypeInfo *typeinfo, const Value *value, const Type *ty)</div><div class="ttdoc">Initialize TypeInfo based on LLVM Value.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#
|
|
1814
|
+
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_ae938564e6a36848cb848a5badc15a1de"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#ae938564e6a36848cb848a5badc15a1de">SVF::SymbolTableBuilder::initTypeInfo</a></div><div class="ttdeci">void initTypeInfo(ObjTypeInfo *typeinfo, const Value *value, const Type *ty)</div><div class="ttdoc">Initialize TypeInfo based on LLVM Value.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00808">SymbolTableBuilder.cpp:808</a></div></div>
|
|
1812
1815
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830aaf98981bd15b41f543fd99d0c6222f08"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aaf98981bd15b41f543fd99d0c6222f08">SVF::ObjTypeInfo::VAR_STRUCT_OBJ</a></div><div class="ttdeci">@ VAR_STRUCT_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00494">SymbolTableInfo.h:494</a></div></div>
|
|
1813
1816
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abf4e75ba6236136399d45c85be2328fe"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abf4e75ba6236136399d45c85be2328fe">SVF::LLVMUtil::isBlackholeSym</a></div><div class="ttdeci">bool isBlackholeSym(const Value *val)</div><div class="ttdoc">Check whether this value is a black hole.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00108">LLVMUtil.h:108</a></div></div>
|
|
1814
1817
|
<div class="ttc" id="aclassSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00380">SymbolTableInfo.h:380</a></div></div>
|
|
1815
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa0b3e34188f721ff7145e47cb607c79a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">SVF::LLVMUtil::isCmpConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCmpConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1818
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa0b3e34188f721ff7145e47cb607c79a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">SVF::LLVMUtil::isCmpConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCmpConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00303">LLVMUtil.h:303</a></div></div>
|
|
1816
1819
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_ae6f8a4dbe09ff4756983ffdbed6d0681"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">SVF::SymbolTableInfo::returnSymMap</a></div><div class="ttdeci">FunToIDMapTy returnSymMap</div><div class="ttdoc">return map</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00084">SymbolTableInfo.h:84</a></div></div>
|
|
1817
1820
|
<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>
|
|
1818
1821
|
<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>
|