svf-tools 1.0.769 → 1.0.770
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/html/AddressValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +60 -67
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +9 -9
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IntervalValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1107 -1110
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +45 -46
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/RelExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFFileSystem_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +10 -11
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFType_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h.html +0 -12
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +300 -333
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +50 -60
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/WTO_8h_source.html +1 -1
- package/SVF-doxygen/html/html/cJSON_8cpp.html +3 -2
- package/SVF-doxygen/html/html/cJSON_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/classOption.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTO.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +51 -56
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +16 -17
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +49 -59
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +1 -1
- package/SVF-doxygen/html/html/extapi_8c.html +1487 -302
- package/SVF-doxygen/html/html/extapi_8c_source.html +1120 -1164
- package/SVF-doxygen/html/html/functions_func_h.html +1 -1
- package/SVF-doxygen/html/html/functions_h.html +1 -1
- package/SVF-doxygen/html/html/globals.html +20 -2
- package/SVF-doxygen/html/html/globals_a.html +3 -0
- package/SVF-doxygen/html/html/globals_b.html +10 -4
- package/SVF-doxygen/html/html/globals_c.html +8 -4
- package/SVF-doxygen/html/html/globals_d.html +9 -0
- package/SVF-doxygen/html/html/globals_defs.html +3 -0
- package/SVF-doxygen/html/html/globals_func.html +18 -399
- package/SVF-doxygen/html/html/globals_func_a.html +91 -0
- package/SVF-doxygen/html/html/globals_func_b.html +14 -20
- package/SVF-doxygen/html/html/globals_func_c.html +16 -849
- package/SVF-doxygen/html/html/globals_func_d.html +14 -275
- package/SVF-doxygen/html/html/globals_func_e.html +8 -97
- package/SVF-doxygen/html/html/globals_func_f.html +17 -20
- package/SVF-doxygen/html/html/globals_func_g.html +72 -25
- package/SVF-doxygen/html/html/globals_func_h.html +9 -6
- package/SVF-doxygen/html/html/globals_func_i.html +49 -31
- package/SVF-doxygen/html/html/globals_func_j.html +79 -0
- package/SVF-doxygen/html/html/globals_func_l.html +15 -9
- package/SVF-doxygen/html/html/globals_func_m.html +13 -87
- package/SVF-doxygen/html/html/globals_func_n.html +79 -0
- package/SVF-doxygen/html/html/globals_func_p.html +13 -22
- package/SVF-doxygen/html/html/globals_func_r.html +16 -28
- package/SVF-doxygen/html/html/globals_func_s.html +32 -128
- package/SVF-doxygen/html/html/globals_func_t.html +18 -9
- package/SVF-doxygen/html/html/globals_func_u.html +8 -18
- package/SVF-doxygen/html/html/globals_func_w.html +8 -5
- package/SVF-doxygen/html/html/globals_func_z.html +10 -73
- package/SVF-doxygen/html/html/globals_g.html +54 -0
- package/SVF-doxygen/html/html/globals_l.html +6 -0
- package/SVF-doxygen/html/html/globals_n.html +5 -2
- package/SVF-doxygen/html/html/globals_p.html +4 -1
- package/SVF-doxygen/html/html/globals_r.html +11 -8
- package/SVF-doxygen/html/html/globals_s.html +6 -0
- package/SVF-doxygen/html/html/globals_t.html +6 -0
- package/SVF-doxygen/html/html/globals_z.html +3 -0
- package/SVF-doxygen/html/html/iterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/iterator__range_8h_source.html +1 -1
- package/SVF-doxygen/html/html/menudata.js +20 -17
- package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +981 -984
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +206 -383
- package/SVF-doxygen/html/html/namespacemembers_func_i.html +2 -11
- package/SVF-doxygen/html/html/namespacemembers_i.html +5 -14
- package/SVF-doxygen/html/html/search/all_0.js +158 -152
- package/SVF-doxygen/html/html/search/all_1.js +478 -477
- package/SVF-doxygen/html/html/search/all_10.js +324 -323
- package/SVF-doxygen/html/html/search/all_11.js +213 -212
- package/SVF-doxygen/html/html/search/all_12.js +539 -537
- package/SVF-doxygen/html/html/search/all_13.js +190 -188
- package/SVF-doxygen/html/html/search/all_14.js +66 -66
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +60 -60
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +11 -10
- package/SVF-doxygen/html/html/search/all_1a.js +169 -169
- package/SVF-doxygen/html/html/search/all_2.js +161 -159
- package/SVF-doxygen/html/html/search/all_3.js +628 -627
- package/SVF-doxygen/html/html/search/all_4.js +229 -226
- package/SVF-doxygen/html/html/search/all_5.js +117 -117
- package/SVF-doxygen/html/html/search/all_6.js +224 -224
- package/SVF-doxygen/html/html/search/all_7.js +1020 -1002
- package/SVF-doxygen/html/html/search/all_8.js +191 -191
- package/SVF-doxygen/html/html/search/all_9.js +602 -605
- package/SVF-doxygen/html/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +116 -114
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +206 -205
- package/SVF-doxygen/html/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/html/search/classes_2.js +76 -76
- package/SVF-doxygen/html/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/html/search/classes_4.js +8 -8
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/html/search/defines_e.js +7 -6
- package/SVF-doxygen/html/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/html/search/files_2.js +49 -49
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/html/search/functions_0.js +12 -6
- package/SVF-doxygen/html/html/search/functions_1.js +350 -349
- package/SVF-doxygen/html/html/search/functions_10.js +140 -139
- package/SVF-doxygen/html/html/search/functions_11.js +127 -126
- package/SVF-doxygen/html/html/search/functions_12.js +275 -274
- package/SVF-doxygen/html/html/search/functions_13.js +58 -56
- package/SVF-doxygen/html/html/search/functions_14.js +38 -38
- package/SVF-doxygen/html/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/html/search/functions_16.js +29 -29
- package/SVF-doxygen/html/html/search/functions_17.js +3 -2
- package/SVF-doxygen/html/html/search/functions_18.js +169 -169
- package/SVF-doxygen/html/html/search/functions_2.js +84 -82
- package/SVF-doxygen/html/html/search/functions_3.js +253 -252
- package/SVF-doxygen/html/html/search/functions_4.js +74 -71
- package/SVF-doxygen/html/html/search/functions_5.js +51 -51
- package/SVF-doxygen/html/html/search/functions_6.js +58 -58
- package/SVF-doxygen/html/html/search/functions_7.js +840 -822
- package/SVF-doxygen/html/html/search/functions_8.js +143 -143
- package/SVF-doxygen/html/html/search/functions_9.js +422 -425
- package/SVF-doxygen/html/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/html/search/functions_c.js +26 -24
- package/SVF-doxygen/html/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/html/search/functions_e.js +35 -34
- package/SVF-doxygen/html/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/html/search/related_1.js +1 -1
- package/SVF-doxygen/html/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
- package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
- package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/html/search/variables_0.js +147 -147
- package/SVF-doxygen/html/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +34 -34
- package/SVF-doxygen/html/html/search/variables_3.js +141 -141
- package/SVF-doxygen/html/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/html/search/variables_5.js +38 -38
- package/SVF-doxygen/html/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable_3_01T_00_01void__t_3_01decltype_07std_1_1begin_07std_1_1dec794949348c8e1e00603fd8633b6dd1f3.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1unordered__map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1deque_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1list_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1vector_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1unordered__set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1make__void.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/package.json +1 -1
- package/svf/include/Util/SVFUtil.h +0 -34
- package/svf/lib/Util/ExtAPI.cpp +0 -6
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +2 -2
- package/svf-llvm/lib/LLVMUtil.cpp +0 -2
- package/svf-llvm/lib/SVFIRExtAPI.cpp +1 -1
- package/svf-llvm/lib/SymbolTableBuilder.cpp +0 -9
- package/svf-llvm/lib/extapi.c +210 -295
|
@@ -358,40 +358,40 @@ Functions</h2></td></tr>
|
|
|
358
358
|
</div><div class="memdoc">
|
|
359
359
|
<p>Return true if the function has a return instruction reachable from function entry </p>
|
|
360
360
|
|
|
361
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
362
|
-
<div class="fragment"><div class="line"><a name="
|
|
363
|
-
<div class="line"><a name="
|
|
364
|
-
<div class="line"><a name="
|
|
365
|
-
<div class="line"><a name="
|
|
366
|
-
<div class="line"><a name="
|
|
367
|
-
<div class="line"><a name="
|
|
368
|
-
<div class="line"><a name="
|
|
369
|
-
<div class="line"><a name="
|
|
370
|
-
<div class="line"><a name="
|
|
371
|
-
<div class="line"><a name="
|
|
372
|
-
<div class="line"><a name="
|
|
373
|
-
<div class="line"><a name="
|
|
374
|
-
<div class="line"><a name="
|
|
375
|
-
<div class="line"><a name="
|
|
376
|
-
<div class="line"><a name="
|
|
377
|
-
<div class="line"><a name="
|
|
378
|
-
<div class="line"><a name="
|
|
379
|
-
<div class="line"><a name="
|
|
380
|
-
<div class="line"><a name="
|
|
381
|
-
<div class="line"><a name="
|
|
382
|
-
<div class="line"><a name="
|
|
383
|
-
<div class="line"><a name="
|
|
384
|
-
<div class="line"><a name="
|
|
385
|
-
<div class="line"><a name="
|
|
386
|
-
<div class="line"><a name="
|
|
387
|
-
<div class="line"><a name="
|
|
388
|
-
<div class="line"><a name="
|
|
389
|
-
<div class="line"><a name="
|
|
390
|
-
<div class="line"><a name="
|
|
391
|
-
<div class="line"><a name="
|
|
392
|
-
<div class="line"><a name="
|
|
393
|
-
<div class="line"><a name="
|
|
394
|
-
<div class="line"><a name="
|
|
361
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00104">104</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
362
|
+
<div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> {</div>
|
|
363
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(fun);</div>
|
|
364
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(svffun))</div>
|
|
365
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div>
|
|
366
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> fun-><a class="code" href="classSVF_1_1SVFFunction.html#af264312f0020bde9151697bccfde3263">getReturnType</a>()->isVoidTy();</div>
|
|
367
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div>
|
|
368
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  std::vector<const BasicBlock*> bbVec;</div>
|
|
369
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const BasicBlock*></a> visited;</div>
|
|
370
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  bbVec.push_back(&fun->getEntryBlock());</div>
|
|
371
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">while</span>(!bbVec.empty())</div>
|
|
372
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  {</div>
|
|
373
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = bbVec.back();</div>
|
|
374
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  bbVec.pop_back();</div>
|
|
375
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">for</span> (BasicBlock::const_iterator it = bb->begin(), eit = bb->end();</div>
|
|
376
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  it != eit; ++it)</div>
|
|
377
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div>
|
|
378
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ReturnInst>(*it))</div>
|
|
379
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
380
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div>
|
|
381
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
|
|
382
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> sit = succ_begin(bb), esit = succ_end(bb);</div>
|
|
383
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  sit != esit; ++sit)</div>
|
|
384
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div>
|
|
385
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succbb = (*sit);</div>
|
|
386
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">if</span>(visited.find(succbb)==visited.end())</div>
|
|
387
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  visited.insert(succbb);</div>
|
|
388
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">else</span></div>
|
|
389
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">continue</span>;</div>
|
|
390
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  bbVec.push_back(succbb);</div>
|
|
391
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div>
|
|
392
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div>
|
|
393
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
394
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div>
|
|
395
395
|
</div><!-- fragment -->
|
|
396
396
|
</div>
|
|
397
397
|
</div>
|
|
@@ -414,13 +414,13 @@ Functions</h2></td></tr>
|
|
|
414
414
|
<p>Get num of BB's predecessors. </p>
|
|
415
415
|
<p>Get the num of BB's predecessors </p>
|
|
416
416
|
|
|
417
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
418
|
-
<div class="fragment"><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="
|
|
417
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00387">387</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
418
|
+
<div class="fragment"><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> {</div>
|
|
419
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div>
|
|
420
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">const_pred_iterator</a> it = pred_begin(BB), et = pred_end(BB); it != et; ++it)</div>
|
|
421
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  num++;</div>
|
|
422
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">return</span> num;</div>
|
|
423
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> }</div>
|
|
424
424
|
</div><!-- fragment -->
|
|
425
425
|
</div>
|
|
426
426
|
</div>
|
|
@@ -442,24 +442,24 @@ Functions</h2></td></tr>
|
|
|
442
442
|
|
|
443
443
|
<p>Get all called funcions in a parent function. </p>
|
|
444
444
|
|
|
445
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
446
|
-
<div class="fragment"><div class="line"><a name="
|
|
447
|
-
<div class="line"><a name="
|
|
448
|
-
<div class="line"><a name="
|
|
449
|
-
<div class="line"><a name="
|
|
450
|
-
<div class="line"><a name="
|
|
451
|
-
<div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="
|
|
453
|
-
<div class="line"><a name="
|
|
454
|
-
<div class="line"><a name="
|
|
455
|
-
<div class="line"><a name="
|
|
456
|
-
<div class="line"><a name="
|
|
457
|
-
<div class="line"><a name="
|
|
458
|
-
<div class="line"><a name="
|
|
459
|
-
<div class="line"><a name="
|
|
460
|
-
<div class="line"><a name="
|
|
461
|
-
<div class="line"><a name="
|
|
462
|
-
<div class="line"><a name="
|
|
445
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00547">547</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
446
|
+
<div class="fragment"><div class="line"><a name="l00548"></a><span class="lineno"> 548</span> {</div>
|
|
447
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  std::vector<const Function *> calledFunctions;</div>
|
|
448
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> &I : instructions(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>))</div>
|
|
449
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  {</div>
|
|
450
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a> *callInst = SVFUtil::dyn_cast<CallBase>(&I))</div>
|
|
451
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  {</div>
|
|
452
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *calledFunction = callInst->getCalledFunction();</div>
|
|
453
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">if</span> (calledFunction)</div>
|
|
454
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  {</div>
|
|
455
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  calledFunctions.push_back(calledFunction);</div>
|
|
456
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  std::vector<const Function *> nestedCalledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">getCalledFunctions</a>(calledFunction);</div>
|
|
457
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  calledFunctions.insert(calledFunctions.end(), nestedCalledFunctions.begin(), nestedCalledFunctions.end());</div>
|
|
458
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  }</div>
|
|
459
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  }</div>
|
|
460
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div>
|
|
461
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">return</span> calledFunctions;</div>
|
|
462
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> }</div>
|
|
463
463
|
</div><!-- fragment -->
|
|
464
464
|
</div>
|
|
465
465
|
</div>
|
|
@@ -512,29 +512,29 @@ Functions</h2></td></tr>
|
|
|
512
512
|
</table>
|
|
513
513
|
</div><div class="memdoc">
|
|
514
514
|
|
|
515
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
516
|
-
<div class="fragment"><div class="line"><a name="
|
|
517
|
-
<div class="line"><a name="
|
|
518
|
-
<div class="line"><a name="
|
|
519
|
-
<div class="line"><a name="
|
|
520
|
-
<div class="line"><a name="
|
|
521
|
-
<div class="line"><a name="
|
|
522
|
-
<div class="line"><a name="
|
|
523
|
-
<div class="line"><a name="
|
|
524
|
-
<div class="line"><a name="
|
|
525
|
-
<div class="line"><a name="
|
|
526
|
-
<div class="line"><a name="
|
|
527
|
-
<div class="line"><a name="
|
|
528
|
-
<div class="line"><a name="
|
|
529
|
-
<div class="line"><a name="
|
|
530
|
-
<div class="line"><a name="
|
|
531
|
-
<div class="line"><a name="
|
|
532
|
-
<div class="line"><a name="
|
|
533
|
-
<div class="line"><a name="
|
|
534
|
-
<div class="line"><a name="
|
|
535
|
-
<div class="line"><a name="
|
|
536
|
-
<div class="line"><a name="
|
|
537
|
-
<div class="line"><a name="
|
|
515
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01070">1070</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
516
|
+
<div class="fragment"><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> {</div>
|
|
517
|
+
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> className = <span class="stringliteral">""</span>;</div>
|
|
518
|
+
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</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>(ty))</div>
|
|
519
|
+
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  {</div>
|
|
520
|
+
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemType = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(ptrType);</div>
|
|
521
|
+
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StructType>(elemType) &&</div>
|
|
522
|
+
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  !((SVFUtil::cast<StructType>(elemType))->isLiteral()))</div>
|
|
523
|
+
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  {</div>
|
|
524
|
+
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> elemTypeName = elemType->getStructName().str();</div>
|
|
525
|
+
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="keywordflow">if</span> (elemTypeName.compare(0, <a class="code" href="LLVMUtil_8cpp.html#a5f8da60b0fcc28445f508f4e42513a82">clsName</a>.size(), <a class="code" href="LLVMUtil_8cpp.html#a5f8da60b0fcc28445f508f4e42513a82">clsName</a>) == 0)</div>
|
|
526
|
+
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  {</div>
|
|
527
|
+
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  className = elemTypeName.substr(<a class="code" href="LLVMUtil_8cpp.html#a5f8da60b0fcc28445f508f4e42513a82">clsName</a>.size());</div>
|
|
528
|
+
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  }</div>
|
|
529
|
+
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (elemTypeName.compare(0, <a class="code" href="LLVMUtil_8cpp.html#a61c158146c07e77234eb4a2f9b940821">structName</a>.size(), <a class="code" href="LLVMUtil_8cpp.html#a61c158146c07e77234eb4a2f9b940821">structName</a>) ==</div>
|
|
530
|
+
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  0)</div>
|
|
531
|
+
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  {</div>
|
|
532
|
+
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  className = elemTypeName.substr(<a class="code" href="LLVMUtil_8cpp.html#a61c158146c07e77234eb4a2f9b940821">structName</a>.size());</div>
|
|
533
|
+
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  }</div>
|
|
534
|
+
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  }</div>
|
|
535
|
+
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  }</div>
|
|
536
|
+
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <span class="keywordflow">return</span> className;</div>
|
|
537
|
+
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> }</div>
|
|
538
538
|
</div><!-- fragment -->
|
|
539
539
|
</div>
|
|
540
540
|
</div>
|
|
@@ -554,32 +554,32 @@ Functions</h2></td></tr>
|
|
|
554
554
|
</table>
|
|
555
555
|
</div><div class="memdoc">
|
|
556
556
|
|
|
557
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
558
|
-
<div class="fragment"><div class="line"><a name="
|
|
559
|
-
<div class="line"><a name="
|
|
560
|
-
<div class="line"><a name="
|
|
561
|
-
<div class="line"><a name="
|
|
562
|
-
<div class="line"><a name="
|
|
563
|
-
<div class="line"><a name="
|
|
564
|
-
<div class="line"><a name="
|
|
565
|
-
<div class="line"><a name="
|
|
566
|
-
<div class="line"><a name="
|
|
567
|
-
<div class="line"><a name="
|
|
568
|
-
<div class="line"><a name="
|
|
569
|
-
<div class="line"><a name="
|
|
570
|
-
<div class="line"><a name="
|
|
571
|
-
<div class="line"><a name="
|
|
572
|
-
<div class="line"><a name="
|
|
573
|
-
<div class="line"><a name="
|
|
574
|
-
<div class="line"><a name="
|
|
575
|
-
<div class="line"><a name="
|
|
576
|
-
<div class="line"><a name="
|
|
577
|
-
<div class="line"><a name="
|
|
578
|
-
<div class="line"><a name="
|
|
579
|
-
<div class="line"><a name="
|
|
580
|
-
<div class="line"><a name="
|
|
581
|
-
<div class="line"><a name="
|
|
582
|
-
<div class="line"><a name="
|
|
557
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01094">1094</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
558
|
+
<div class="fragment"><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> {</div>
|
|
559
|
+
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> thisPtrClassName;</div>
|
|
560
|
+
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a>* N = inst->getMetadata(<span class="stringliteral">"VCallPtrType"</span>))</div>
|
|
561
|
+
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  {</div>
|
|
562
|
+
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">MDString</a>* mdstr = SVFUtil::cast<MDString>(N->getOperand(0).get());</div>
|
|
563
|
+
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  thisPtrClassName = mdstr->getString().str();</div>
|
|
564
|
+
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  }</div>
|
|
565
|
+
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  <span class="keywordflow">if</span> (thisPtrClassName.size() == 0)</div>
|
|
566
|
+
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  {</div>
|
|
567
|
+
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* thisPtr = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">LLVMUtil::getVCallThisPtr</a>(inst);</div>
|
|
568
|
+
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  thisPtrClassName = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a416bcb6da0650f546cb7d83e6be850b6">getClassNameFromType</a>(thisPtr->getType());</div>
|
|
569
|
+
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  }</div>
|
|
570
|
+
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  </div>
|
|
571
|
+
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  <span class="keywordtype">size_t</span> found = thisPtrClassName.find_last_not_of(<span class="stringliteral">"0123456789"</span>);</div>
|
|
572
|
+
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  <span class="keywordflow">if</span> (found != std::string::npos)</div>
|
|
573
|
+
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  {</div>
|
|
574
|
+
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <span class="keywordflow">if</span> (found != thisPtrClassName.size() - 1 &&</div>
|
|
575
|
+
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  thisPtrClassName[found] == <span class="charliteral">'.'</span>)</div>
|
|
576
|
+
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  {</div>
|
|
577
|
+
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  <span class="keywordflow">return</span> thisPtrClassName.substr(0, found);</div>
|
|
578
|
+
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  }</div>
|
|
579
|
+
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  }</div>
|
|
580
|
+
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  </div>
|
|
581
|
+
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="keywordflow">return</span> thisPtrClassName;</div>
|
|
582
|
+
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> }</div>
|
|
583
583
|
</div><!-- fragment -->
|
|
584
584
|
</div>
|
|
585
585
|
</div>
|
|
@@ -599,14 +599,14 @@ Functions</h2></td></tr>
|
|
|
599
599
|
</table>
|
|
600
600
|
</div><div class="memdoc">
|
|
601
601
|
|
|
602
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
603
|
-
<div class="fragment"><div class="line"><a name="
|
|
604
|
-
<div class="line"><a name="
|
|
605
|
-
<div class="line"><a name="
|
|
606
|
-
<div class="line"><a name="
|
|
607
|
-
<div class="line"><a name="
|
|
608
|
-
<div class="line"><a name="
|
|
609
|
-
<div class="line"><a name="
|
|
602
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00962">962</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
603
|
+
<div class="fragment"><div class="line"><a name="l00963"></a><span class="lineno"> 963</span> {</div>
|
|
604
|
+
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  assert((<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">LLVMUtil::isConstructor</a>(fun) || <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">LLVMUtil::isDestructor</a>(fun)) &&</div>
|
|
605
|
+
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="stringliteral">"not a constructor?"</span>);</div>
|
|
606
|
+
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  assert(fun->arg_size() >= 1 && <span class="stringliteral">"argument size >= 1?"</span>);</div>
|
|
607
|
+
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* thisPtr = &*(fun->arg_begin());</div>
|
|
608
|
+
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keywordflow">return</span> thisPtr;</div>
|
|
609
|
+
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> }</div>
|
|
610
610
|
</div><!-- fragment -->
|
|
611
611
|
</div>
|
|
612
612
|
</div>
|
|
@@ -698,46 +698,46 @@ Functions</h2></td></tr>
|
|
|
698
698
|
</table>
|
|
699
699
|
</div><div class="memdoc">
|
|
700
700
|
|
|
701
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
702
|
-
<div class="fragment"><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="
|
|
732
|
-
<div class="line"><a name="
|
|
733
|
-
<div class="line"><a name="
|
|
734
|
-
<div class="line"><a name="
|
|
735
|
-
<div class="line"><a name="
|
|
736
|
-
<div class="line"><a name="
|
|
737
|
-
<div class="line"><a name="
|
|
738
|
-
<div class="line"><a name="
|
|
739
|
-
<div class="line"><a name="
|
|
740
|
-
<div class="line"><a name="
|
|
701
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00444">444</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
702
|
+
<div class="fragment"><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> {</div>
|
|
703
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  std::vector<std::string> annotations;</div>
|
|
704
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="comment">// Get annotation variable</span></div>
|
|
705
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *glob = fun->getParent()->getGlobalVariable(<span class="stringliteral">"llvm.global.annotations"</span>);</div>
|
|
706
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">if</span> (glob == <span class="keyword">nullptr</span> || !glob->hasInitializer())</div>
|
|
707
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">return</span> annotations;</div>
|
|
708
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  </div>
|
|
709
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="namespaceSVF.html#a5ae718cba37d8e34d2946530dc098c8e">ConstantArray</a> *ca = SVFUtil::dyn_cast<ConstantArray>(glob->getInitializer());</div>
|
|
710
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">if</span> (ca == <span class="keyword">nullptr</span>)</div>
|
|
711
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">return</span> annotations;</div>
|
|
712
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  </div>
|
|
713
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < ca->getNumOperands(); ++i)</div>
|
|
714
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  {</div>
|
|
715
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <a class="code" href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">ConstantStruct</a> *structAn = SVFUtil::dyn_cast<ConstantStruct>(ca->getOperand(i));</div>
|
|
716
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">if</span> (structAn == <span class="keyword">nullptr</span>)</div>
|
|
717
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">continue</span>;</div>
|
|
718
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  </div>
|
|
719
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *expr = SVFUtil::dyn_cast<ConstantExpr>(structAn->getOperand(0));</div>
|
|
720
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">if</span> (expr == <span class="keyword">nullptr</span> || expr->getOpcode() != Instruction::BitCast || expr->getOperand(0) != fun)</div>
|
|
721
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">continue</span>;</div>
|
|
722
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  </div>
|
|
723
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *note = SVFUtil::cast<ConstantExpr>(structAn->getOperand(1));</div>
|
|
724
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">if</span> (note->getOpcode() != Instruction::GetElementPtr)</div>
|
|
725
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">continue</span>;</div>
|
|
726
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  </div>
|
|
727
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *annotateStr = SVFUtil::dyn_cast<GlobalVariable>(note->getOperand(0));</div>
|
|
728
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">if</span> (annotateStr == <span class="keyword">nullptr</span> || !annotateStr->hasInitializer())</div>
|
|
729
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordflow">continue</span>;</div>
|
|
730
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  </div>
|
|
731
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="namespaceSVF.html#a8ad3aa124fabddc2fdd07c50403d70a9">ConstantDataSequential</a> *data = SVFUtil::dyn_cast<ConstantDataSequential>(annotateStr->getInitializer());</div>
|
|
732
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">if</span> (data->isString())</div>
|
|
733
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  {</div>
|
|
734
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> annotation = data->getAsString().str();</div>
|
|
735
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">if</span> (!annotation.empty())</div>
|
|
736
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  annotations.push_back(annotation);</div>
|
|
737
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  }</div>
|
|
738
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  }</div>
|
|
739
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">return</span> annotations;</div>
|
|
740
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> }</div>
|
|
741
741
|
</div><!-- fragment -->
|
|
742
742
|
</div>
|
|
743
743
|
</div>
|
|
@@ -790,16 +790,16 @@ Functions</h2></td></tr>
|
|
|
790
790
|
</table>
|
|
791
791
|
</div><div class="memdoc">
|
|
792
792
|
|
|
793
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
794
|
-
<div class="fragment"><div class="line"><a name="
|
|
795
|
-
<div class="line"><a name="
|
|
796
|
-
<div class="line"><a name="
|
|
797
|
-
<div class="line"><a name="
|
|
798
|
-
<div class="line"><a name="
|
|
799
|
-
<div class="line"><a name="
|
|
800
|
-
<div class="line"><a name="
|
|
801
|
-
<div class="line"><a name="
|
|
802
|
-
<div class="line"><a name="
|
|
793
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01121">1121</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
794
|
+
<div class="fragment"><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> {</div>
|
|
795
|
+
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName;</div>
|
|
796
|
+
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a>* N = inst->getMetadata(<span class="stringliteral">"VCallFunName"</span>))</div>
|
|
797
|
+
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  {</div>
|
|
798
|
+
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">MDString</a>* mdstr = SVFUtil::cast<MDString>(N->getOperand(0).get());</div>
|
|
799
|
+
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  funName = mdstr->getString().str();</div>
|
|
800
|
+
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  }</div>
|
|
801
|
+
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  <span class="keywordflow">return</span> funName;</div>
|
|
802
|
+
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> }</div>
|
|
803
803
|
</div><!-- fragment -->
|
|
804
804
|
</div>
|
|
805
805
|
</div>
|
|
@@ -832,37 +832,37 @@ Functions</h2></td></tr>
|
|
|
832
832
|
<p>Get reachable basic block from function entry. </p>
|
|
833
833
|
<p>Return reachable bbs from function entry </p>
|
|
834
834
|
|
|
835
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
836
|
-
<div class="fragment"><div class="line"><a name="
|
|
837
|
-
<div class="line"><a name="
|
|
838
|
-
<div class="line"><a name="
|
|
839
|
-
<div class="line"><a name="
|
|
840
|
-
<div class="line"><a name="
|
|
841
|
-
<div class="line"><a name="
|
|
842
|
-
<div class="line"><a name="
|
|
843
|
-
<div class="line"><a name="
|
|
844
|
-
<div class="line"><a name="
|
|
845
|
-
<div class="line"><a name="
|
|
846
|
-
<div class="line"><a name="
|
|
847
|
-
<div class="line"><a name="
|
|
848
|
-
<div class="line"><a name="
|
|
849
|
-
<div class="line"><a name="
|
|
850
|
-
<div class="line"><a name="
|
|
851
|
-
<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="
|
|
835
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00069">69</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
836
|
+
<div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> {</div>
|
|
837
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  assert(!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(fun)) && <span class="stringliteral">"The calling function cannot be an external function."</span>);</div>
|
|
838
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">//initial DominatorTree</span></div>
|
|
839
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a> dt;</div>
|
|
840
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  dt.recalculate(<span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&<span class="keyword">></span>(*fun));</div>
|
|
841
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
|
842
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const BasicBlock*></a> visited;</div>
|
|
843
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  std::vector<const BasicBlock*> bbVec;</div>
|
|
844
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  bbVec.push_back(&fun->getEntryBlock());</div>
|
|
845
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">while</span>(!bbVec.empty())</div>
|
|
846
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div>
|
|
847
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = bbVec.back();</div>
|
|
848
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  bbVec.pop_back();</div>
|
|
849
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* svfbb = LLVMModuleSet::getLLVMModuleSet()->getSVFBasicBlock(bb);</div>
|
|
850
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  reachableBBs.push_back(svfbb);</div>
|
|
851
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">DomTreeNode</a> *dtNode = dt.getNode(<span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>*<span class="keyword">></span>(bb)))</div>
|
|
852
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  {</div>
|
|
853
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">for</span> (DomTreeNode::iterator DI = dtNode->begin(), DE = dtNode->end();</div>
|
|
854
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  DI != DE; ++DI)</div>
|
|
855
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div>
|
|
856
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succbb = (*DI)->getBlock();</div>
|
|
857
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span>(visited.find(succbb)==visited.end())</div>
|
|
858
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  visited.insert(succbb);</div>
|
|
859
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">else</span></div>
|
|
860
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">continue</span>;</div>
|
|
861
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  bbVec.push_back(succbb);</div>
|
|
862
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div>
|
|
863
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div>
|
|
864
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div>
|
|
865
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }</div>
|
|
866
866
|
</div><!-- fragment -->
|
|
867
867
|
</div>
|
|
868
868
|
</div>
|
|
@@ -999,30 +999,30 @@ Functions</h2></td></tr>
|
|
|
999
999
|
|
|
1000
1000
|
<p>Get the next instructions following control flow. </p>
|
|
1001
1001
|
|
|
1002
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1003
|
-
<div class="fragment"><div class="line"><a name="
|
|
1004
|
-
<div class="line"><a name="
|
|
1005
|
-
<div class="line"><a name="
|
|
1006
|
-
<div class="line"><a name="
|
|
1007
|
-
<div class="line"><a name="
|
|
1008
|
-
<div class="line"><a name="
|
|
1009
|
-
<div class="line"><a name="
|
|
1010
|
-
<div class="line"><a name="
|
|
1011
|
-
<div class="line"><a name="
|
|
1012
|
-
<div class="line"><a name="
|
|
1013
|
-
<div class="line"><a name="
|
|
1014
|
-
<div class="line"><a name="
|
|
1015
|
-
<div class="line"><a name="
|
|
1016
|
-
<div class="line"><a name="
|
|
1017
|
-
<div class="line"><a name="
|
|
1018
|
-
<div class="line"><a name="
|
|
1019
|
-
<div class="line"><a name="
|
|
1020
|
-
<div class="line"><a name="
|
|
1021
|
-
<div class="line"><a name="
|
|
1022
|
-
<div class="line"><a name="
|
|
1023
|
-
<div class="line"><a name="
|
|
1024
|
-
<div class="line"><a name="
|
|
1025
|
-
<div class="line"><a name="
|
|
1002
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00711">711</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1003
|
+
<div class="fragment"><div class="line"><a name="l00712"></a><span class="lineno"> 712</span> {</div>
|
|
1004
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">if</span> (!curInst->isTerminator())</div>
|
|
1005
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  {</div>
|
|
1006
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* nextInst = curInst->getNextNode();</div>
|
|
1007
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">LLVMUtil::isIntrinsicInst</a>(nextInst))</div>
|
|
1008
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">getNextInsts</a>(nextInst, instList);</div>
|
|
1009
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">else</span></div>
|
|
1010
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  instList.push_back(nextInst);</div>
|
|
1011
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  }</div>
|
|
1012
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keywordflow">else</span></div>
|
|
1013
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  {</div>
|
|
1014
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *BB = curInst->getParent();</div>
|
|
1015
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="comment">// Visit all successors of BB in the CFG</span></div>
|
|
1016
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> it = succ_begin(BB), ie = succ_end(BB); it != ie; ++it)</div>
|
|
1017
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  {</div>
|
|
1018
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* nextInst = &((*it)->front());</div>
|
|
1019
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">LLVMUtil::isIntrinsicInst</a>(nextInst))</div>
|
|
1020
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">getNextInsts</a>(nextInst, instList);</div>
|
|
1021
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">else</span></div>
|
|
1022
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  instList.push_back(nextInst);</div>
|
|
1023
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  }</div>
|
|
1024
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  }</div>
|
|
1025
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> }</div>
|
|
1026
1026
|
</div><!-- fragment -->
|
|
1027
1027
|
</div>
|
|
1028
1028
|
</div>
|
|
@@ -1054,32 +1054,32 @@ Functions</h2></td></tr>
|
|
|
1054
1054
|
|
|
1055
1055
|
<p>Get the next instructions following control flow. </p>
|
|
1056
1056
|
|
|
1057
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1058
|
-
<div class="fragment"><div class="line"><a name="
|
|
1059
|
-
<div class="line"><a name="
|
|
1060
|
-
<div class="line"><a name="
|
|
1061
|
-
<div class="line"><a name="
|
|
1062
|
-
<div class="line"><a name="
|
|
1063
|
-
<div class="line"><a name="
|
|
1064
|
-
<div class="line"><a name="
|
|
1065
|
-
<div class="line"><a name="
|
|
1066
|
-
<div class="line"><a name="
|
|
1067
|
-
<div class="line"><a name="
|
|
1068
|
-
<div class="line"><a name="
|
|
1069
|
-
<div class="line"><a name="
|
|
1070
|
-
<div class="line"><a name="
|
|
1071
|
-
<div class="line"><a name="
|
|
1072
|
-
<div class="line"><a name="
|
|
1073
|
-
<div class="line"><a name="
|
|
1074
|
-
<div class="line"><a name="
|
|
1075
|
-
<div class="line"><a name="
|
|
1076
|
-
<div class="line"><a name="
|
|
1077
|
-
<div class="line"><a name="
|
|
1078
|
-
<div class="line"><a name="
|
|
1079
|
-
<div class="line"><a name="
|
|
1080
|
-
<div class="line"><a name="
|
|
1081
|
-
<div class="line"><a name="
|
|
1082
|
-
<div class="line"><a name="
|
|
1057
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00275">275</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1058
|
+
<div class="fragment"><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> {</div>
|
|
1059
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">if</span> (!curInst->isTerminator())</div>
|
|
1060
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div>
|
|
1061
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* nextInst = curInst->getNextNode();</div>
|
|
1062
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfNextInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(nextInst);</div>
|
|
1063
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">LLVMUtil::isIntrinsicInst</a>(nextInst))</div>
|
|
1064
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">getNextInsts</a>(nextInst, instList);</div>
|
|
1065
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">else</span></div>
|
|
1066
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  instList.push_back(svfNextInst);</div>
|
|
1067
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div>
|
|
1068
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">else</span></div>
|
|
1069
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  {</div>
|
|
1070
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* BB = curInst->getParent();</div>
|
|
1071
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="comment">// Visit all successors of BB in the CFG</span></div>
|
|
1072
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> it = succ_begin(BB), ie = succ_end(BB); it != ie; ++it)</div>
|
|
1073
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  {</div>
|
|
1074
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* nextInst = &((*it)->front());</div>
|
|
1075
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfNextInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(nextInst);</div>
|
|
1076
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">LLVMUtil::isIntrinsicInst</a>(nextInst))</div>
|
|
1077
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">getNextInsts</a>(nextInst, instList);</div>
|
|
1078
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">else</span></div>
|
|
1079
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  instList.push_back(svfNextInst);</div>
|
|
1080
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  }</div>
|
|
1081
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div>
|
|
1082
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> }</div>
|
|
1083
1083
|
</div><!-- fragment -->
|
|
1084
1084
|
</div>
|
|
1085
1085
|
</div>
|
|
@@ -1111,30 +1111,30 @@ Functions</h2></td></tr>
|
|
|
1111
1111
|
|
|
1112
1112
|
<p>Get the previous instructions following control flow. </p>
|
|
1113
1113
|
|
|
1114
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1115
|
-
<div class="fragment"><div class="line"><a name="
|
|
1116
|
-
<div class="line"><a name="
|
|
1117
|
-
<div class="line"><a name="
|
|
1118
|
-
<div class="line"><a name="
|
|
1119
|
-
<div class="line"><a name="
|
|
1120
|
-
<div class="line"><a name="
|
|
1121
|
-
<div class="line"><a name="
|
|
1122
|
-
<div class="line"><a name="
|
|
1123
|
-
<div class="line"><a name="
|
|
1124
|
-
<div class="line"><a name="
|
|
1125
|
-
<div class="line"><a name="
|
|
1126
|
-
<div class="line"><a name="
|
|
1127
|
-
<div class="line"><a name="
|
|
1128
|
-
<div class="line"><a name="
|
|
1129
|
-
<div class="line"><a name="
|
|
1130
|
-
<div class="line"><a name="
|
|
1131
|
-
<div class="line"><a name="
|
|
1132
|
-
<div class="line"><a name="
|
|
1133
|
-
<div class="line"><a name="
|
|
1134
|
-
<div class="line"><a name="
|
|
1135
|
-
<div class="line"><a name="
|
|
1136
|
-
<div class="line"><a name="
|
|
1137
|
-
<div class="line"><a name="
|
|
1114
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00738">738</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1115
|
+
<div class="fragment"><div class="line"><a name="l00739"></a><span class="lineno"> 739</span> {</div>
|
|
1116
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keywordflow">if</span> (curInst != &(curInst->getParent()->front()))</div>
|
|
1117
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  {</div>
|
|
1118
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* prevInst = curInst->getPrevNode();</div>
|
|
1119
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">LLVMUtil::isIntrinsicInst</a>(prevInst))</div>
|
|
1120
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">getPrevInsts</a>(prevInst, instList);</div>
|
|
1121
|
+
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordflow">else</span></div>
|
|
1122
|
+
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  instList.push_back(prevInst);</div>
|
|
1123
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  }</div>
|
|
1124
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">else</span></div>
|
|
1125
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  {</div>
|
|
1126
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *BB = curInst->getParent();</div>
|
|
1127
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="comment">// Visit all successors of BB in the CFG</span></div>
|
|
1128
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">const_pred_iterator</a> it = pred_begin(BB), ie = pred_end(BB); it != ie; ++it)</div>
|
|
1129
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  {</div>
|
|
1130
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* prevInst = &((*it)->back());</div>
|
|
1131
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">LLVMUtil::isIntrinsicInst</a>(prevInst))</div>
|
|
1132
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">getPrevInsts</a>(prevInst, instList);</div>
|
|
1133
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">else</span></div>
|
|
1134
|
+
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  instList.push_back(prevInst);</div>
|
|
1135
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div>
|
|
1136
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  }</div>
|
|
1137
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> }</div>
|
|
1138
1138
|
</div><!-- fragment -->
|
|
1139
1139
|
</div>
|
|
1140
1140
|
</div>
|
|
@@ -1166,33 +1166,33 @@ Functions</h2></td></tr>
|
|
|
1166
1166
|
|
|
1167
1167
|
<p>Get the previous instructions following control flow. </p>
|
|
1168
1168
|
|
|
1169
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1170
|
-
<div class="fragment"><div class="line"><a name="
|
|
1171
|
-
<div class="line"><a name="
|
|
1172
|
-
<div class="line"><a name="
|
|
1173
|
-
<div class="line"><a name="
|
|
1174
|
-
<div class="line"><a name="
|
|
1175
|
-
<div class="line"><a name="
|
|
1176
|
-
<div class="line"><a name="
|
|
1177
|
-
<div class="line"><a name="
|
|
1178
|
-
<div class="line"><a name="
|
|
1179
|
-
<div class="line"><a name="
|
|
1180
|
-
<div class="line"><a name="
|
|
1181
|
-
<div class="line"><a name="
|
|
1182
|
-
<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="
|
|
1188
|
-
<div class="line"><a name="
|
|
1189
|
-
<div class="line"><a name="
|
|
1190
|
-
<div class="line"><a name="
|
|
1191
|
-
<div class="line"><a name="
|
|
1192
|
-
<div class="line"><a name="
|
|
1193
|
-
<div class="line"><a name="
|
|
1194
|
-
<div class="line"><a name="
|
|
1195
|
-
<div class="line"><a name="
|
|
1169
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00304">304</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1170
|
+
<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> {</div>
|
|
1171
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  </div>
|
|
1172
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (curInst != &(curInst->getParent()->front()))</div>
|
|
1173
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  {</div>
|
|
1174
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* prevInst = curInst->getPrevNode();</div>
|
|
1175
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfPrevInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(prevInst);</div>
|
|
1176
|
+
<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#a003b769751b93b94bdb011bd704cfde1">LLVMUtil::isIntrinsicInst</a>(prevInst))</div>
|
|
1177
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">getPrevInsts</a>(prevInst, instList);</div>
|
|
1178
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">else</span></div>
|
|
1179
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  instList.push_back(svfPrevInst);</div>
|
|
1180
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div>
|
|
1181
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">else</span></div>
|
|
1182
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div>
|
|
1183
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* BB = curInst->getParent();</div>
|
|
1184
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="comment">// Visit all successors of BB in the CFG</span></div>
|
|
1185
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">const_pred_iterator</a> it = pred_begin(BB), ie = pred_end(BB); it != ie; ++it)</div>
|
|
1186
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  {</div>
|
|
1187
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* prevInst = &((*it)->back());</div>
|
|
1188
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfPrevInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(prevInst);</div>
|
|
1189
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">LLVMUtil::isIntrinsicInst</a>(prevInst))</div>
|
|
1190
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">getPrevInsts</a>(prevInst, instList);</div>
|
|
1191
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">else</span></div>
|
|
1192
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  instList.push_back(svfPrevInst);</div>
|
|
1193
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  }</div>
|
|
1194
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  }</div>
|
|
1195
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> }</div>
|
|
1196
1196
|
</div><!-- fragment -->
|
|
1197
1197
|
</div>
|
|
1198
1198
|
</div>
|
|
@@ -1312,10 +1312,10 @@ Functions</h2></td></tr>
|
|
|
1312
1312
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *argType = SVFUtil::dyn_cast<PointerType>(arg->getType()))</div>
|
|
1313
1313
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  refType = SVFUtil::dyn_cast<PointerType>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(argType));</div>
|
|
1314
1314
|
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div>
|
|
1315
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// Case 2: heap
|
|
1315
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// Case 2: heap object held by return value.</span></div>
|
|
1316
1316
|
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">else</span></div>
|
|
1317
1317
|
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  {</div>
|
|
1318
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  assert(
|
|
1318
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(svfcs)</div>
|
|
1319
1319
|
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  && <span class="stringliteral">"Must be heap alloc via ret, or static allocation site"</span>);</div>
|
|
1320
1320
|
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  refType = SVFUtil::dyn_cast<PointerType>(cs->getType());</div>
|
|
1321
1321
|
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div>
|
|
@@ -1374,105 +1374,105 @@ Functions</h2></td></tr>
|
|
|
1374
1374
|
</div><div class="memdoc">
|
|
1375
1375
|
<p>Get the meta data (line number and file name) info of a LLVM value </p>
|
|
1376
1376
|
|
|
1377
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1378
|
-
<div class="fragment"><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="
|
|
1402
|
-
<div class="line"><a name="
|
|
1403
|
-
<div class="line"><a name="
|
|
1404
|
-
<div class="line"><a name="
|
|
1405
|
-
<div class="line"><a name="
|
|
1406
|
-
<div class="line"><a name="
|
|
1407
|
-
<div class="line"><a name="
|
|
1408
|
-
<div class="line"><a name="
|
|
1409
|
-
<div class="line"><a name="
|
|
1410
|
-
<div class="line"><a name="
|
|
1411
|
-
<div class="line"><a name="
|
|
1412
|
-
<div class="line"><a name="
|
|
1413
|
-
<div class="line"><a name="
|
|
1414
|
-
<div class="line"><a name="
|
|
1415
|
-
<div class="line"><a name="
|
|
1416
|
-
<div class="line"><a name="
|
|
1417
|
-
<div class="line"><a name="
|
|
1418
|
-
<div class="line"><a name="
|
|
1419
|
-
<div class="line"><a name="
|
|
1420
|
-
<div class="line"><a name="
|
|
1421
|
-
<div class="line"><a name="
|
|
1422
|
-
<div class="line"><a name="
|
|
1423
|
-
<div class="line"><a name="
|
|
1424
|
-
<div class="line"><a name="
|
|
1425
|
-
<div class="line"><a name="
|
|
1426
|
-
<div class="line"><a name="
|
|
1427
|
-
<div class="line"><a name="
|
|
1428
|
-
<div class="line"><a name="
|
|
1429
|
-
<div class="line"><a name="
|
|
1430
|
-
<div class="line"><a name="
|
|
1431
|
-
<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="
|
|
1377
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00590">590</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1378
|
+
<div class="fragment"><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> {</div>
|
|
1379
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">if</span>(val==<span class="keyword">nullptr</span>) <span class="keywordflow">return</span> <span class="stringliteral">"{ empty val }"</span>;</div>
|
|
1380
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  </div>
|
|
1381
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
1382
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  std::stringstream rawstr(str);</div>
|
|
1383
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  rawstr << <span class="stringliteral">"{ "</span>;</div>
|
|
1384
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  </div>
|
|
1385
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast<Instruction>(val))</div>
|
|
1386
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div>
|
|
1387
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">if</span> (SVFUtil::isa<AllocaInst>(inst))</div>
|
|
1388
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  {</div>
|
|
1389
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">for</span> (llvm::DbgInfoIntrinsic *DII : FindDbgAddrUses(<span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>*<span class="keyword">></span>(inst)))</div>
|
|
1390
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  {</div>
|
|
1391
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">if</span> (llvm::DbgDeclareInst *DDI = SVFUtil::dyn_cast<llvm::DbgDeclareInst>(DII))</div>
|
|
1392
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  {</div>
|
|
1393
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  llvm::DIVariable *DIVar = SVFUtil::cast<llvm::DIVariable>(DDI->getVariable());</div>
|
|
1394
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  rawstr << <span class="stringliteral">"\"ln\": "</span> << DIVar->getLine() << <span class="stringliteral">", \"fl\": \""</span> << DIVar->getFilename().str() << <span class="stringliteral">"\""</span>;</div>
|
|
1395
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">break</span>;</div>
|
|
1396
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div>
|
|
1397
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  }</div>
|
|
1398
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  }</div>
|
|
1399
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *N = inst->getMetadata(<span class="stringliteral">"dbg"</span>)) <span class="comment">// Here I is an LLVM instruction</span></div>
|
|
1400
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  {</div>
|
|
1401
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  llvm::DILocation* Loc = SVFUtil::cast<llvm::DILocation>(N); <span class="comment">// DILocation is in DebugInfo.h</span></div>
|
|
1402
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordtype">unsigned</span> Line = Loc->getLine();</div>
|
|
1403
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordtype">unsigned</span> Column = Loc->getColumn();</div>
|
|
1404
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> File = Loc->getFilename().str();</div>
|
|
1405
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="comment">//StringRef Dir = Loc.getDirectory();</span></div>
|
|
1406
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordflow">if</span>(File.empty() || Line == 0)</div>
|
|
1407
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  {</div>
|
|
1408
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keyword">auto</span> inlineLoc = Loc->getInlinedAt();</div>
|
|
1409
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">if</span>(inlineLoc)</div>
|
|
1410
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  {</div>
|
|
1411
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  Line = inlineLoc->getLine();</div>
|
|
1412
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  Column = inlineLoc->getColumn();</div>
|
|
1413
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  File = inlineLoc->getFilename().str();</div>
|
|
1414
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  }</div>
|
|
1415
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  }</div>
|
|
1416
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  rawstr << <span class="stringliteral">"\"ln\": "</span> << Line << <span class="stringliteral">", \"cl\": "</span> << Column << <span class="stringliteral">", \"fl\": \""</span> << File << <span class="stringliteral">"\""</span>;</div>
|
|
1417
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  }</div>
|
|
1418
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  }</div>
|
|
1419
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* argument = SVFUtil::dyn_cast<Argument>(val))</div>
|
|
1420
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  {</div>
|
|
1421
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">if</span> (argument->getArgNo()%10 == 1)</div>
|
|
1422
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"st"</span>;</div>
|
|
1423
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument->getArgNo()%10 == 2)</div>
|
|
1424
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"nd"</span>;</div>
|
|
1425
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument->getArgNo()%10 == 3)</div>
|
|
1426
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"rd"</span>;</div>
|
|
1427
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">else</span></div>
|
|
1428
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"th"</span>;</div>
|
|
1429
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  rawstr << <span class="stringliteral">" arg "</span> << argument->getParent()->getName().str() << <span class="stringliteral">" "</span></div>
|
|
1430
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  << <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">getSourceLocOfFunction</a>(argument->getParent());</div>
|
|
1431
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  }</div>
|
|
1432
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast<GlobalVariable>(val))</div>
|
|
1433
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  {</div>
|
|
1434
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  rawstr << <span class="stringliteral">"Glob "</span>;</div>
|
|
1435
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <a class="code" href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">NamedMDNode</a>* CU_Nodes = gvar->getParent()->getNamedMetadata(<span class="stringliteral">"llvm.dbg.cu"</span>);</div>
|
|
1436
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keywordflow">if</span>(CU_Nodes)</div>
|
|
1437
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  {</div>
|
|
1438
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i)</div>
|
|
1439
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  {</div>
|
|
1440
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  llvm::DICompileUnit *CUNode = SVFUtil::cast<llvm::DICompileUnit>(CU_Nodes->getOperand(i));</div>
|
|
1441
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keywordflow">for</span> (llvm::DIGlobalVariableExpression *GV : CUNode->getGlobalVariables())</div>
|
|
1442
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  {</div>
|
|
1443
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  llvm::DIGlobalVariable * DGV = GV->getVariable();</div>
|
|
1444
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  </div>
|
|
1445
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordflow">if</span>(DGV->getName() == gvar->getName())</div>
|
|
1446
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  {</div>
|
|
1447
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  rawstr << <span class="stringliteral">"\"ln\": "</span> << DGV->getLine() << <span class="stringliteral">", \"fl\": \""</span> << DGV->getFilename().str() << <span class="stringliteral">"\""</span>;</div>
|
|
1448
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  }</div>
|
|
1449
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  </div>
|
|
1450
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  }</div>
|
|
1451
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  }</div>
|
|
1452
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  }</div>
|
|
1453
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  }</div>
|
|
1454
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::dyn_cast<Function>(val))</div>
|
|
1455
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  {</div>
|
|
1456
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  rawstr << <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">getSourceLocOfFunction</a>(func);</div>
|
|
1457
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  }</div>
|
|
1458
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = SVFUtil::dyn_cast<BasicBlock>(val))</div>
|
|
1459
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  {</div>
|
|
1460
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  rawstr << <span class="stringliteral">"\"basic block\": "</span> << bb->getName().str() << <span class="stringliteral">", \"location\": "</span> << <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">getSourceLoc</a>(bb->getFirstNonPHI());</div>
|
|
1461
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  }</div>
|
|
1462
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</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>
|
|
1463
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  {</div>
|
|
1464
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  rawstr << <span class="stringliteral">"constant data"</span>;</div>
|
|
1465
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div>
|
|
1466
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">else</span></div>
|
|
1467
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  {</div>
|
|
1468
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  rawstr << <span class="stringliteral">"N/A"</span>;</div>
|
|
1469
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  }</div>
|
|
1470
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  rawstr << <span class="stringliteral">" }"</span>;</div>
|
|
1471
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  </div>
|
|
1472
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">if</span>(rawstr.str()==<span class="stringliteral">"{ }"</span>)</div>
|
|
1473
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div>
|
|
1474
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
1475
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> }</div>
|
|
1476
1476
|
</div><!-- fragment -->
|
|
1477
1477
|
</div>
|
|
1478
1478
|
</div>
|
|
@@ -1493,21 +1493,21 @@ Functions</h2></td></tr>
|
|
|
1493
1493
|
</div><div class="memdoc">
|
|
1494
1494
|
<p>Get source code line number of a function according to debug info </p>
|
|
1495
1495
|
|
|
1496
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1497
|
-
<div class="fragment"><div class="line"><a name="
|
|
1498
|
-
<div class="line"><a name="
|
|
1499
|
-
<div class="line"><a name="
|
|
1500
|
-
<div class="line"><a name="
|
|
1501
|
-
<div class="line"><a name="
|
|
1502
|
-
<div class="line"><a name="
|
|
1503
|
-
<div class="line"><a name="
|
|
1504
|
-
<div class="line"><a name="
|
|
1505
|
-
<div class="line"><a name="
|
|
1506
|
-
<div class="line"><a name="
|
|
1507
|
-
<div class="line"><a name="
|
|
1508
|
-
<div class="line"><a name="
|
|
1509
|
-
<div class="line"><a name="
|
|
1510
|
-
<div class="line"><a name="
|
|
1496
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00694">694</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1497
|
+
<div class="fragment"><div class="line"><a name="l00695"></a><span class="lineno"> 695</span> {</div>
|
|
1498
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
1499
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  std::stringstream rawstr(str);</div>
|
|
1500
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="comment">/*</span></div>
|
|
1501
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="comment"> * https://reviews.llvm.org/D18074?id=50385</span></div>
|
|
1502
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="comment"> * looks like the relevant</span></div>
|
|
1503
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="comment"> */</span></div>
|
|
1504
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a89c7208bfc0b57873dfa574f52050295">llvm::DISubprogram</a> *SP = <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getSubprogram())</div>
|
|
1505
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  {</div>
|
|
1506
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keywordflow">if</span> (SP->describes(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>))</div>
|
|
1507
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  rawstr << <span class="stringliteral">"\"ln\": "</span> << SP->getLine() << <span class="stringliteral">", \"file\": \""</span> << SP->getFilename().str() << <span class="stringliteral">"\""</span>;</div>
|
|
1508
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  }</div>
|
|
1509
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
1510
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> }</div>
|
|
1511
1511
|
</div><!-- fragment -->
|
|
1512
1512
|
</div>
|
|
1513
1513
|
</div>
|
|
@@ -1527,27 +1527,27 @@ Functions</h2></td></tr>
|
|
|
1527
1527
|
</table>
|
|
1528
1528
|
</div><div class="memdoc">
|
|
1529
1529
|
|
|
1530
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1531
|
-
<div class="fragment"><div class="line"><a name="
|
|
1532
|
-
<div class="line"><a name="
|
|
1533
|
-
<div class="line"><a name="
|
|
1534
|
-
<div class="line"><a name="
|
|
1535
|
-
<div class="line"><a name="
|
|
1536
|
-
<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="
|
|
1530
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00890">890</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1531
|
+
<div class="fragment"><div class="line"><a name="l00891"></a><span class="lineno"> 891</span> {</div>
|
|
1532
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* ret = <span class="keyword">nullptr</span>;</div>
|
|
1533
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  </div>
|
|
1534
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& bb : *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
1535
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  {</div>
|
|
1536
|
+
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& inst : bb)</div>
|
|
1537
|
+
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  {</div>
|
|
1538
|
+
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* callbase = SVFUtil::dyn_cast<CallBase>(&inst))</div>
|
|
1539
|
+
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  {</div>
|
|
1540
|
+
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  <span class="comment">// assert(cs.getCalledFunction() &&</span></div>
|
|
1541
|
+
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <span class="comment">// "Indirect call detected in thunk func");</span></div>
|
|
1542
|
+
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <span class="comment">// assert(ret == nullptr && "multiple callsites in thunk func");</span></div>
|
|
1543
|
+
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  </div>
|
|
1544
|
+
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  ret = callbase->getCalledFunction();</div>
|
|
1545
|
+
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  }</div>
|
|
1546
|
+
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  }</div>
|
|
1547
|
+
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  }</div>
|
|
1548
|
+
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  </div>
|
|
1549
|
+
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">return</span> ret;</div>
|
|
1550
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> }</div>
|
|
1551
1551
|
</div><!-- fragment -->
|
|
1552
1552
|
</div>
|
|
1553
1553
|
</div>
|
|
@@ -1570,33 +1570,33 @@ Functions</h2></td></tr>
|
|
|
1570
1570
|
<p>Get the type of the heap allocation. </p>
|
|
1571
1571
|
<p>Return the type of the object from a heap allocation </p>
|
|
1572
1572
|
|
|
1573
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1574
|
-
<div class="fragment"><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="
|
|
1573
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00356">356</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1574
|
+
<div class="fragment"><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> {</div>
|
|
1575
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = SVFUtil::dyn_cast<PointerType>(inst->getType());</div>
|
|
1576
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfinst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(inst);</div>
|
|
1577
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(svfinst))</div>
|
|
1578
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  {</div>
|
|
1579
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">getUniqueUseViaCastInst</a>(inst))</div>
|
|
1580
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  {</div>
|
|
1581
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* newTy = SVFUtil::dyn_cast<PointerType>(v->getType()))</div>
|
|
1582
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = newTy;</div>
|
|
1583
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div>
|
|
1584
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div>
|
|
1585
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(svfinst))</div>
|
|
1586
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div>
|
|
1587
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">LLVMUtil::getLLVMCallSite</a>(inst);</div>
|
|
1588
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordtype">int</span> arg_pos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(svfinst));</div>
|
|
1589
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* arg = cs->getArgOperand(arg_pos);</div>
|
|
1590
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = SVFUtil::dyn_cast<PointerType>(arg->getType());</div>
|
|
1591
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  }</div>
|
|
1592
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">else</span></div>
|
|
1593
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  {</div>
|
|
1594
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  assert( <span class="keyword">false</span> && <span class="stringliteral">"not a heap allocation instruction?"</span>);</div>
|
|
1595
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  }</div>
|
|
1596
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  </div>
|
|
1597
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  assert(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> && <span class="stringliteral">"not a pointer type?"</span>);</div>
|
|
1598
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
|
|
1599
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> }</div>
|
|
1600
1600
|
</div><!-- fragment -->
|
|
1601
1601
|
</div>
|
|
1602
1602
|
</div>
|
|
@@ -1627,15 +1627,15 @@ Functions</h2></td></tr>
|
|
|
1627
1627
|
</div><div class="memdoc">
|
|
1628
1628
|
<p>if this struct type does not have any element, i.e., opaque</p>
|
|
1629
1629
|
|
|
1630
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1631
|
-
<div class="fragment"><div class="line"><a name="
|
|
1632
|
-
<div class="line"><a name="
|
|
1633
|
-
<div class="line"><a name="
|
|
1634
|
-
<div class="line"><a name="
|
|
1635
|
-
<div class="line"><a name="
|
|
1636
|
-
<div class="line"><a name="
|
|
1637
|
-
<div class="line"><a name="
|
|
1638
|
-
<div class="line"><a name="
|
|
1630
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00576">576</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1631
|
+
<div class="fragment"><div class="line"><a name="l00577"></a><span class="lineno"> 577</span> {</div>
|
|
1632
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  </div>
|
|
1633
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a52c8654c221bb53a59f70ea3cb1e5c45">StructLayout</a> *stTySL = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">getDataLayout</a>(LLVMModuleSet::getLLVMModuleSet()->getMainLLVMModule())->getStructLayout( <span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a> *<span class="keyword">></span>(sty) );</div>
|
|
1634
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">if</span>(sty->isOpaque())</div>
|
|
1635
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordflow">return</span> 0;</div>
|
|
1636
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">else</span></div>
|
|
1637
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">return</span> stTySL->getElementOffset(field_idx);</div>
|
|
1638
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> }</div>
|
|
1639
1639
|
</div><!-- fragment -->
|
|
1640
1640
|
</div>
|
|
1641
1641
|
</div>
|
|
@@ -1657,15 +1657,15 @@ Functions</h2></td></tr>
|
|
|
1657
1657
|
|
|
1658
1658
|
<p>Helper method to get the size of the type from target data layout. </p>
|
|
1659
1659
|
|
|
1660
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1661
|
-
<div class="fragment"><div class="line"><a name="
|
|
1662
|
-
<div class="line"><a name="
|
|
1663
|
-
<div class="line"><a name="
|
|
1664
|
-
<div class="line"><a name="
|
|
1665
|
-
<div class="line"><a name="
|
|
1666
|
-
<div class="line"><a name="
|
|
1667
|
-
<div class="line"><a name="
|
|
1668
|
-
<div class="line"><a name="
|
|
1660
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00566">566</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1661
|
+
<div class="fragment"><div class="line"><a name="l00567"></a><span class="lineno"> 567</span> {</div>
|
|
1662
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  </div>
|
|
1663
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="comment">// if the type has size then simply return it, otherwise just return 0</span></div>
|
|
1664
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->isSized())</div>
|
|
1665
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">getDataLayout</a>(LLVMModuleSet::getLLVMModuleSet()->getMainLLVMModule())->getTypeStoreSize(<span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>*<span class="keyword">></span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>));</div>
|
|
1666
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">else</span></div>
|
|
1667
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">return</span> 0;</div>
|
|
1668
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> }</div>
|
|
1669
1669
|
</div><!-- fragment -->
|
|
1670
1670
|
</div>
|
|
1671
1671
|
</div>
|
|
@@ -1687,20 +1687,20 @@ Functions</h2></td></tr>
|
|
|
1687
1687
|
<p>Return the bitcast instruction which is val's only use site, otherwise return nullptr </p>
|
|
1688
1688
|
<p>If type is void* (i8*) and val is only used at a bitcast instruction</p>
|
|
1689
1689
|
|
|
1690
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1691
|
-
<div class="fragment"><div class="line"><a name="
|
|
1692
|
-
<div class="line"><a name="
|
|
1693
|
-
<div class="line"><a name="
|
|
1694
|
-
<div class="line"><a name="
|
|
1695
|
-
<div class="line"><a name="
|
|
1696
|
-
<div class="line"><a name="
|
|
1697
|
-
<div class="line"><a name="
|
|
1698
|
-
<div class="line"><a name="
|
|
1699
|
-
<div class="line"><a name="
|
|
1700
|
-
<div class="line"><a name="
|
|
1701
|
-
<div class="line"><a name="
|
|
1702
|
-
<div class="line"><a name="
|
|
1703
|
-
<div class="line"><a name="
|
|
1690
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00337">337</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1691
|
+
<div class="fragment"><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> {</div>
|
|
1692
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> * <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = SVFUtil::dyn_cast<PointerType>(val->getType());</div>
|
|
1693
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  assert(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> && <span class="stringliteral">"this value should be a pointer type!"</span>);</div>
|
|
1694
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">IntegerType</a> *IT = SVFUtil::dyn_cast<IntegerType>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)))</div>
|
|
1695
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div>
|
|
1696
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">if</span> (IT->getBitWidth() == 8 && val->getNumUses()==1)</div>
|
|
1697
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {</div>
|
|
1698
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">Use</a> *u = &*val->use_begin();</div>
|
|
1699
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">return</span> SVFUtil::dyn_cast<BitCastInst>(u->getUser());</div>
|
|
1700
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</div>
|
|
1701
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div>
|
|
1702
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
1703
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> }</div>
|
|
1704
1704
|
</div><!-- fragment -->
|
|
1705
1705
|
</div>
|
|
1706
1706
|
</div>
|
|
@@ -1720,28 +1720,28 @@ Functions</h2></td></tr>
|
|
|
1720
1720
|
</table>
|
|
1721
1721
|
</div><div class="memdoc">
|
|
1722
1722
|
|
|
1723
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1724
|
-
<div class="fragment"><div class="line"><a name="
|
|
1725
|
-
<div class="line"><a name="
|
|
1726
|
-
<div class="line"><a name="
|
|
1727
|
-
<div class="line"><a name="
|
|
1728
|
-
<div class="line"><a name="
|
|
1729
|
-
<div class="line"><a name="
|
|
1730
|
-
<div class="line"><a name="
|
|
1731
|
-
<div class="line"><a name="
|
|
1732
|
-
<div class="line"><a name="
|
|
1733
|
-
<div class="line"><a name="
|
|
1734
|
-
<div class="line"><a name="
|
|
1735
|
-
<div class="line"><a name="
|
|
1736
|
-
<div class="line"><a name="
|
|
1737
|
-
<div class="line"><a name="
|
|
1738
|
-
<div class="line"><a name="
|
|
1739
|
-
<div class="line"><a name="
|
|
1740
|
-
<div class="line"><a name="
|
|
1741
|
-
<div class="line"><a name="
|
|
1742
|
-
<div class="line"><a name="
|
|
1743
|
-
<div class="line"><a name="
|
|
1744
|
-
<div class="line"><a name="
|
|
1723
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01132">1132</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1724
|
+
<div class="fragment"><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> {</div>
|
|
1725
|
+
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* vfuncloadinst =</div>
|
|
1726
|
+
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  SVFUtil::dyn_cast<LoadInst>(cs->getCalledOperand());</div>
|
|
1727
|
+
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  assert(vfuncloadinst != <span class="keyword">nullptr</span>);</div>
|
|
1728
|
+
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfuncptr = vfuncloadinst->getPointerOperand();</div>
|
|
1729
|
+
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* vfuncptrgepinst =</div>
|
|
1730
|
+
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr);</div>
|
|
1731
|
+
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  User::const_op_iterator oi = vfuncptrgepinst->idx_begin();</div>
|
|
1732
|
+
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* idx = SVFUtil::dyn_cast<ConstantInt>(oi->get());</div>
|
|
1733
|
+
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> idx_value;</div>
|
|
1734
|
+
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  <span class="keywordflow">if</span> (idx == <span class="keyword">nullptr</span>)</div>
|
|
1735
|
+
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  {</div>
|
|
1736
|
+
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"vcall gep idx not constantint\n"</span>;</div>
|
|
1737
|
+
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  idx_value = 0;</div>
|
|
1738
|
+
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  }</div>
|
|
1739
|
+
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  <span class="keywordflow">else</span></div>
|
|
1740
|
+
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  {</div>
|
|
1741
|
+
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  idx_value = (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)idx->getSExtValue();</div>
|
|
1742
|
+
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  }</div>
|
|
1743
|
+
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  <span class="keywordflow">return</span> idx_value;</div>
|
|
1744
|
+
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> }</div>
|
|
1745
1745
|
</div><!-- fragment -->
|
|
1746
1746
|
</div>
|
|
1747
1747
|
</div>
|
|
@@ -1761,17 +1761,17 @@ Functions</h2></td></tr>
|
|
|
1761
1761
|
</table>
|
|
1762
1762
|
</div><div class="memdoc">
|
|
1763
1763
|
|
|
1764
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1765
|
-
<div class="fragment"><div class="line"><a name="
|
|
1766
|
-
<div class="line"><a name="
|
|
1767
|
-
<div class="line"><a name="
|
|
1768
|
-
<div class="line"><a name="
|
|
1769
|
-
<div class="line"><a name="
|
|
1770
|
-
<div class="line"><a name="
|
|
1771
|
-
<div class="line"><a name="
|
|
1772
|
-
<div class="line"><a name="
|
|
1773
|
-
<div class="line"><a name="
|
|
1774
|
-
<div class="line"><a name="
|
|
1764
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00912">912</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1765
|
+
<div class="fragment"><div class="line"><a name="l00913"></a><span class="lineno"> 913</span> {</div>
|
|
1766
|
+
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keywordflow">if</span> (cs->paramHasAttr(0, llvm::Attribute::StructRet))</div>
|
|
1767
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  {</div>
|
|
1768
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keywordflow">return</span> cs->getArgOperand(1);</div>
|
|
1769
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  }</div>
|
|
1770
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keywordflow">else</span></div>
|
|
1771
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  {</div>
|
|
1772
|
+
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keywordflow">return</span> cs->getArgOperand(0);</div>
|
|
1773
|
+
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  }</div>
|
|
1774
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> }</div>
|
|
1775
1775
|
</div><!-- fragment -->
|
|
1776
1776
|
</div>
|
|
1777
1777
|
</div>
|
|
@@ -1791,18 +1791,18 @@ Functions</h2></td></tr>
|
|
|
1791
1791
|
</table>
|
|
1792
1792
|
</div><div class="memdoc">
|
|
1793
1793
|
|
|
1794
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1795
|
-
<div class="fragment"><div class="line"><a name="
|
|
1796
|
-
<div class="line"><a name="
|
|
1797
|
-
<div class="line"><a name="
|
|
1798
|
-
<div class="line"><a name="
|
|
1799
|
-
<div class="line"><a name="
|
|
1800
|
-
<div class="line"><a name="
|
|
1801
|
-
<div class="line"><a name="
|
|
1802
|
-
<div class="line"><a name="
|
|
1803
|
-
<div class="line"><a name="
|
|
1804
|
-
<div class="line"><a name="
|
|
1805
|
-
<div class="line"><a name="
|
|
1794
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01041">1041</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1795
|
+
<div class="fragment"><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> {</div>
|
|
1796
|
+
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* loadInst =</div>
|
|
1797
|
+
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  SVFUtil::dyn_cast<LoadInst>(cs->getCalledOperand());</div>
|
|
1798
|
+
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  assert(loadInst != <span class="keyword">nullptr</span>);</div>
|
|
1799
|
+
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfuncptr = loadInst->getPointerOperand();</div>
|
|
1800
|
+
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* gepInst =</div>
|
|
1801
|
+
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr);</div>
|
|
1802
|
+
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  assert(gepInst != <span class="keyword">nullptr</span>);</div>
|
|
1803
|
+
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vtbl = gepInst->getPointerOperand();</div>
|
|
1804
|
+
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keywordflow">return</span> vtbl;</div>
|
|
1805
|
+
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> }</div>
|
|
1806
1806
|
</div><!-- fragment -->
|
|
1807
1807
|
</div>
|
|
1808
1808
|
</div>
|
|
@@ -1822,18 +1822,18 @@ Functions</h2></td></tr>
|
|
|
1822
1822
|
</table>
|
|
1823
1823
|
</div><div class="memdoc">
|
|
1824
1824
|
|
|
1825
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1826
|
-
<div class="fragment"><div class="line"><a name="
|
|
1827
|
-
<div class="line"><a name="
|
|
1828
|
-
<div class="line"><a name="
|
|
1829
|
-
<div class="line"><a name="
|
|
1830
|
-
<div class="line"><a name="
|
|
1831
|
-
<div class="line"><a name="
|
|
1832
|
-
<div class="line"><a name="
|
|
1833
|
-
<div class="line"><a name="
|
|
1834
|
-
<div class="line"><a name="
|
|
1835
|
-
<div class="line"><a name="
|
|
1836
|
-
<div class="line"><a name="
|
|
1825
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00800">800</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
1826
|
+
<div class="fragment"><div class="line"><a name="l00801"></a><span class="lineno"> 801</span> {</div>
|
|
1827
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">ConstantStruct</a> *vtblStruct = SVFUtil::dyn_cast<ConstantStruct>(vtbl->getOperand(0));</div>
|
|
1828
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  assert(vtblStruct && <span class="stringliteral">"Initializer of a vtable not a struct?"</span>);</div>
|
|
1829
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  </div>
|
|
1830
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keywordflow">if</span> (vtblStruct->getNumOperands() == 2 &&</div>
|
|
1831
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  SVFUtil::isa<ConstantStruct>(vtblStruct->getOperand(0)) &&</div>
|
|
1832
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  vtblStruct->getOperand(1)->getType()->isArrayTy())</div>
|
|
1833
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">return</span> SVFUtil::cast<ConstantStruct>(vtblStruct->getOperand(0));</div>
|
|
1834
|
+
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  </div>
|
|
1835
|
+
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">return</span> vtblStruct;</div>
|
|
1836
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> }</div>
|
|
1837
1837
|
</div><!-- fragment -->
|
|
1838
1838
|
</div>
|
|
1839
1839
|
</div>
|
|
@@ -2098,10 +2098,10 @@ Functions</h2></td></tr>
|
|
|
2098
2098
|
|
|
2099
2099
|
<p>Check whether this value points-to a constant object. </p>
|
|
2100
2100
|
|
|
2101
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2102
|
-
<div class="fragment"><div class="line"><a name="
|
|
2103
|
-
<div class="line"><a name="
|
|
2104
|
-
<div class="line"><a name="
|
|
2101
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00764">764</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2102
|
+
<div class="fragment"><div class="line"><a name="l00765"></a><span class="lineno"> 765</span> {</div>
|
|
2103
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(LLVMModuleSet::getLLVMModuleSet()->getLLVMValue(val));</div>
|
|
2104
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> }</div>
|
|
2105
2105
|
</div><!-- fragment -->
|
|
2106
2106
|
</div>
|
|
2107
2107
|
</div>
|
|
@@ -2124,33 +2124,33 @@ Functions</h2></td></tr>
|
|
|
2124
2124
|
<p>Check whether this value points-to a constant object. </p>
|
|
2125
2125
|
<p>Check whether this value points-to a constant object </p>
|
|
2126
2126
|
|
|
2127
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2128
|
-
<div class="fragment"><div class="line"><a name="
|
|
2129
|
-
<div class="line"><a name="
|
|
2130
|
-
<div class="line"><a name="
|
|
2131
|
-
<div class="line"><a name="
|
|
2132
|
-
<div class="line"><a name="
|
|
2133
|
-
<div class="line"><a name="
|
|
2134
|
-
<div class="line"><a name="
|
|
2135
|
-
<div class="line"><a name="
|
|
2136
|
-
<div class="line"><a name="
|
|
2137
|
-
<div class="line"><a name="
|
|
2138
|
-
<div class="line"><a name="
|
|
2139
|
-
<div class="line"><a name="
|
|
2140
|
-
<div class="line"><a name="
|
|
2141
|
-
<div class="line"><a name="
|
|
2142
|
-
<div class="line"><a name="
|
|
2143
|
-
<div class="line"><a name="
|
|
2144
|
-
<div class="line"><a name="
|
|
2145
|
-
<div class="line"><a name="
|
|
2146
|
-
<div class="line"><a name="
|
|
2147
|
-
<div class="line"><a name="
|
|
2148
|
-
<div class="line"><a name="
|
|
2149
|
-
<div class="line"><a name="
|
|
2150
|
-
<div class="line"><a name="
|
|
2151
|
-
<div class="line"><a name="
|
|
2152
|
-
<div class="line"><a name="
|
|
2153
|
-
<div class="line"><a name="
|
|
2127
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00772">772</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2128
|
+
<div class="fragment"><div class="line"><a name="l00773"></a><span class="lineno"> 773</span> {</div>
|
|
2129
|
+
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* v = SVFUtil::dyn_cast<GlobalVariable>(val))</div>
|
|
2130
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  {</div>
|
|
2131
|
+
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">LLVMUtil::isValVtbl</a>(v))</div>
|
|
2132
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2133
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!v->hasInitializer())</div>
|
|
2134
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  {</div>
|
|
2135
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordflow">return</span> !v->isExternalLinkage(v->getLinkage());</div>
|
|
2136
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  }</div>
|
|
2137
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keywordflow">else</span></div>
|
|
2138
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  {</div>
|
|
2139
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a> *stInfo = LLVMModuleSet::getLLVMModuleSet()->getSVFType(v->getInitializer()->getType())->getTypeInfo();</div>
|
|
2140
|
+
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <span class="keyword">const</span> std::vector<const SVFType*> &fields = stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>();</div>
|
|
2141
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <span class="keywordflow">for</span> (std::vector<const SVFType*>::const_iterator it = fields.begin(), eit = fields.end(); it != eit; ++it)</div>
|
|
2142
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  {</div>
|
|
2143
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemTy = *it;</div>
|
|
2144
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  assert(!SVFUtil::isa<SVFFunctionType>(elemTy) && <span class="stringliteral">"Initializer of a global is a function?"</span>);</div>
|
|
2145
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(elemTy))</div>
|
|
2146
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2147
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  }</div>
|
|
2148
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  </div>
|
|
2149
|
+
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="keywordflow">return</span> v->isConstant();</div>
|
|
2150
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  }</div>
|
|
2151
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  }</div>
|
|
2152
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val);</div>
|
|
2153
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> }</div>
|
|
2154
2154
|
</div><!-- fragment -->
|
|
2155
2155
|
</div>
|
|
2156
2156
|
</div>
|
|
@@ -2205,35 +2205,35 @@ Functions</h2></td></tr>
|
|
|
2205
2205
|
</div><div class="memdoc">
|
|
2206
2206
|
<p>TODO: on mac os function name is an empty string after demangling</p>
|
|
2207
2207
|
|
|
2208
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2209
|
-
<div class="fragment"><div class="line"><a name="
|
|
2210
|
-
<div class="line"><a name="
|
|
2211
|
-
<div class="line"><a name="
|
|
2212
|
-
<div class="line"><a name="
|
|
2213
|
-
<div class="line"><a name="
|
|
2214
|
-
<div class="line"><a name="
|
|
2215
|
-
<div class="line"><a name="
|
|
2216
|
-
<div class="line"><a name="
|
|
2217
|
-
<div class="line"><a name="
|
|
2218
|
-
<div class="line"><a name="
|
|
2219
|
-
<div class="line"><a name="
|
|
2220
|
-
<div class="line"><a name="
|
|
2221
|
-
<div class="line"><a name="
|
|
2222
|
-
<div class="line"><a name="
|
|
2223
|
-
<div class="line"><a name="
|
|
2224
|
-
<div class="line"><a name="
|
|
2225
|
-
<div class="line"><a name="
|
|
2226
|
-
<div class="line"><a name="
|
|
2227
|
-
<div class="line"><a name="
|
|
2228
|
-
<div class="line"><a name="
|
|
2229
|
-
<div class="line"><a name="
|
|
2230
|
-
<div class="line"><a name="
|
|
2231
|
-
<div class="line"><a name="
|
|
2232
|
-
<div class="line"><a name="
|
|
2233
|
-
<div class="line"><a name="
|
|
2234
|
-
<div class="line"><a name="
|
|
2235
|
-
<div class="line"><a name="
|
|
2236
|
-
<div class="line"><a name="
|
|
2208
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00971">971</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2209
|
+
<div class="fragment"><div class="line"><a name="l00972"></a><span class="lineno"> 972</span> {</div>
|
|
2210
|
+
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isDeclaration())</div>
|
|
2211
|
+
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2212
|
+
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funcName = <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getName().str();</div>
|
|
2213
|
+
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="LLVMUtil_8cpp.html#aff4f7c7a9aacf05a3a3c42ae24ea7d96">vfunPreLabel</a>.size(), <a class="code" href="LLVMUtil_8cpp.html#aff4f7c7a9aacf05a3a3c42ae24ea7d96">vfunPreLabel</a>) != 0)</div>
|
|
2214
|
+
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  {</div>
|
|
2215
|
+
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2216
|
+
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  }</div>
|
|
2217
|
+
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(funcName.c_str());</div>
|
|
2218
|
+
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div>
|
|
2219
|
+
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  {</div>
|
|
2220
|
+
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2221
|
+
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  }</div>
|
|
2222
|
+
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div>
|
|
2223
|
+
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div>
|
|
2224
|
+
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">"::"</span>);</div>
|
|
2225
|
+
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <span class="keywordflow">if</span> (colon == std::string::npos)</div>
|
|
2226
|
+
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  {</div>
|
|
2227
|
+
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div>
|
|
2228
|
+
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  }</div>
|
|
2229
|
+
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">else</span></div>
|
|
2230
|
+
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  {</div>
|
|
2231
|
+
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> =</div>
|
|
2232
|
+
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon + 2));</div>
|
|
2233
|
+
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  }</div>
|
|
2234
|
+
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <span class="keywordflow">return</span> dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() > 0 &&</div>
|
|
2235
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>) == 0;</div>
|
|
2236
|
+
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> }</div>
|
|
2237
2237
|
</div><!-- fragment -->
|
|
2238
2238
|
</div>
|
|
2239
2239
|
</div>
|
|
@@ -2253,11 +2253,11 @@ Functions</h2></td></tr>
|
|
|
2253
2253
|
</table>
|
|
2254
2254
|
</div><div class="memdoc">
|
|
2255
2255
|
|
|
2256
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2257
|
-
<div class="fragment"><div class="line"><a name="
|
|
2258
|
-
<div class="line"><a name="
|
|
2259
|
-
<div class="line"><a name="
|
|
2260
|
-
<div class="line"><a name="
|
|
2256
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00884">884</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2257
|
+
<div class="fragment"><div class="line"><a name="l00885"></a><span class="lineno"> 885</span> {</div>
|
|
2258
|
+
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getName().str());</div>
|
|
2259
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordflow">return</span> dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">isThunkFunc</a>;</div>
|
|
2260
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> }</div>
|
|
2261
2261
|
</div><!-- fragment -->
|
|
2262
2262
|
</div>
|
|
2263
2263
|
</div>
|
|
@@ -2277,37 +2277,37 @@ Functions</h2></td></tr>
|
|
|
2277
2277
|
</table>
|
|
2278
2278
|
</div><div class="memdoc">
|
|
2279
2279
|
|
|
2280
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2281
|
-
<div class="fragment"><div class="line"><a name="
|
|
2282
|
-
<div class="line"><a name="
|
|
2283
|
-
<div class="line"><a name="
|
|
2284
|
-
<div class="line"><a name="
|
|
2285
|
-
<div class="line"><a name="
|
|
2286
|
-
<div class="line"><a name="
|
|
2287
|
-
<div class="line"><a name="
|
|
2288
|
-
<div class="line"><a name="
|
|
2289
|
-
<div class="line"><a name="
|
|
2290
|
-
<div class="line"><a name="
|
|
2291
|
-
<div class="line"><a name="
|
|
2292
|
-
<div class="line"><a name="
|
|
2293
|
-
<div class="line"><a name="
|
|
2294
|
-
<div class="line"><a name="
|
|
2295
|
-
<div class="line"><a name="
|
|
2296
|
-
<div class="line"><a name="
|
|
2297
|
-
<div class="line"><a name="
|
|
2298
|
-
<div class="line"><a name="
|
|
2299
|
-
<div class="line"><a name="
|
|
2300
|
-
<div class="line"><a name="
|
|
2301
|
-
<div class="line"><a name="
|
|
2302
|
-
<div class="line"><a name="
|
|
2303
|
-
<div class="line"><a name="
|
|
2304
|
-
<div class="line"><a name="
|
|
2305
|
-
<div class="line"><a name="
|
|
2306
|
-
<div class="line"><a name="
|
|
2307
|
-
<div class="line"><a name="
|
|
2308
|
-
<div class="line"><a name="
|
|
2309
|
-
<div class="line"><a name="
|
|
2310
|
-
<div class="line"><a name="
|
|
2280
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01002">1002</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2281
|
+
<div class="fragment"><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> {</div>
|
|
2282
|
+
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isDeclaration())</div>
|
|
2283
|
+
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2284
|
+
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funcName = <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getName().str();</div>
|
|
2285
|
+
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="LLVMUtil_8cpp.html#aff4f7c7a9aacf05a3a3c42ae24ea7d96">vfunPreLabel</a>.size(), <a class="code" href="LLVMUtil_8cpp.html#aff4f7c7a9aacf05a3a3c42ae24ea7d96">vfunPreLabel</a>) != 0)</div>
|
|
2286
|
+
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  {</div>
|
|
2287
|
+
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2288
|
+
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  }</div>
|
|
2289
|
+
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(funcName.c_str());</div>
|
|
2290
|
+
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div>
|
|
2291
|
+
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  {</div>
|
|
2292
|
+
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2293
|
+
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  }</div>
|
|
2294
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div>
|
|
2295
|
+
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div>
|
|
2296
|
+
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">"::"</span>);</div>
|
|
2297
|
+
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <span class="keywordflow">if</span> (colon == std::string::npos)</div>
|
|
2298
|
+
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  {</div>
|
|
2299
|
+
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div>
|
|
2300
|
+
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  }</div>
|
|
2301
|
+
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="keywordflow">else</span></div>
|
|
2302
|
+
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  {</div>
|
|
2303
|
+
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> =</div>
|
|
2304
|
+
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">cppUtil::getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon + 2));</div>
|
|
2305
|
+
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  }</div>
|
|
2306
|
+
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  <span class="keywordflow">return</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() > 0 && dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() > 0 &&</div>
|
|
2307
|
+
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() + 1 == dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() &&</div>
|
|
2308
|
+
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.compare(0, 1, <span class="stringliteral">"~"</span>) == 0 &&</div>
|
|
2309
|
+
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.substr(1)) == 0);</div>
|
|
2310
|
+
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> }</div>
|
|
2311
2311
|
</div><!-- fragment -->
|
|
2312
2312
|
</div>
|
|
2313
2313
|
</div>
|
|
@@ -2401,18 +2401,18 @@ Functions</h2></td></tr>
|
|
|
2401
2401
|
</table>
|
|
2402
2402
|
</div><div class="memdoc">
|
|
2403
2403
|
|
|
2404
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2405
|
-
<div class="fragment"><div class="line"><a name="
|
|
2406
|
-
<div class="line"><a name="
|
|
2407
|
-
<div class="line"><a name="
|
|
2408
|
-
<div class="line"><a name="
|
|
2409
|
-
<div class="line"><a name="
|
|
2410
|
-
<div class="line"><a name="
|
|
2411
|
-
<div class="line"><a name="
|
|
2412
|
-
<div class="line"><a name="
|
|
2413
|
-
<div class="line"><a name="
|
|
2414
|
-
<div class="line"><a name="
|
|
2415
|
-
<div class="line"><a name="
|
|
2404
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00190">190</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2405
|
+
<div class="fragment"><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> {</div>
|
|
2406
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">if</span> (func && (func->getIntrinsicID() == llvm::Intrinsic::donothing ||</div>
|
|
2407
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  func->getIntrinsicID() == llvm::Intrinsic::dbg_addr ||</div>
|
|
2408
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  func->getIntrinsicID() == llvm::Intrinsic::dbg_declare ||</div>
|
|
2409
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  func->getIntrinsicID() == llvm::Intrinsic::dbg_label ||</div>
|
|
2410
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  func->getIntrinsicID() == llvm::Intrinsic::dbg_value))</div>
|
|
2411
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div>
|
|
2412
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2413
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div>
|
|
2414
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2415
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> }</div>
|
|
2416
2416
|
</div><!-- fragment -->
|
|
2417
2417
|
</div>
|
|
2418
2418
|
</div>
|
|
@@ -2434,18 +2434,18 @@ Functions</h2></td></tr>
|
|
|
2434
2434
|
|
|
2435
2435
|
<p>Return true if it is an intrinsic instruction. </p>
|
|
2436
2436
|
|
|
2437
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2438
|
-
<div class="fragment"><div class="line"><a name="
|
|
2439
|
-
<div class="line"><a name="
|
|
2440
|
-
<div class="line"><a name="
|
|
2441
|
-
<div class="line"><a name="
|
|
2442
|
-
<div class="line"><a name="
|
|
2443
|
-
<div class="line"><a name="
|
|
2444
|
-
<div class="line"><a name="
|
|
2445
|
-
<div class="line"><a name="
|
|
2446
|
-
<div class="line"><a name="
|
|
2447
|
-
<div class="line"><a name="
|
|
2448
|
-
<div class="line"><a name="
|
|
2437
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00204">204</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2438
|
+
<div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> {</div>
|
|
2439
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* call = SVFUtil::dyn_cast<CallBase>(inst))</div>
|
|
2440
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  {</div>
|
|
2441
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = call->getCalledFunction();</div>
|
|
2442
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">isIntrinsicFun</a>(func))</div>
|
|
2443
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div>
|
|
2444
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2445
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
|
|
2446
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
|
2447
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2448
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> }</div>
|
|
2449
2449
|
</div><!-- fragment -->
|
|
2450
2450
|
</div>
|
|
2451
2451
|
</div>
|
|
@@ -2467,19 +2467,19 @@ Functions</h2></td></tr>
|
|
|
2467
2467
|
|
|
2468
2468
|
<p>Check whether a file is an LLVM IR file. </p>
|
|
2469
2469
|
|
|
2470
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2471
|
-
<div class="fragment"><div class="line"><a name="
|
|
2472
|
-
<div class="line"><a name="
|
|
2473
|
-
<div class="line"><a name="
|
|
2474
|
-
<div class="line"><a name="
|
|
2475
|
-
<div class="line"><a name="
|
|
2476
|
-
<div class="line"><a name="
|
|
2477
|
-
<div class="line"><a name="
|
|
2478
|
-
<div class="line"><a name="
|
|
2479
|
-
<div class="line"><a name="
|
|
2480
|
-
<div class="line"><a name="
|
|
2481
|
-
<div class="line"><a name="
|
|
2482
|
-
<div class="line"><a name="
|
|
2470
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00400">400</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2471
|
+
<div class="fragment"><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> {</div>
|
|
2472
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> FileOrErr = llvm::MemoryBuffer::getFileOrSTDIN(filename);</div>
|
|
2473
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">if</span> (FileOrErr.getError())</div>
|
|
2474
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2475
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  llvm::MemoryBufferRef Buffer = FileOrErr.get()->getMemBufferRef();</div>
|
|
2476
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *bufferStart =</div>
|
|
2477
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  (<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)Buffer.getBufferStart();</div>
|
|
2478
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *bufferEnd =</div>
|
|
2479
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  (<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)Buffer.getBufferEnd();</div>
|
|
2480
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">return</span> llvm::isBitcode(bufferStart, bufferEnd) ? <a class="code" href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a> :</div>
|
|
2481
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  Buffer.getBuffer().startswith(<span class="stringliteral">"; ModuleID ="</span>);</div>
|
|
2482
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> }</div>
|
|
2483
2483
|
</div><!-- fragment -->
|
|
2484
2484
|
</div>
|
|
2485
2485
|
</div>
|
|
@@ -2499,29 +2499,29 @@ Functions</h2></td></tr>
|
|
|
2499
2499
|
</table>
|
|
2500
2500
|
</div><div class="memdoc">
|
|
2501
2501
|
|
|
2502
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2503
|
-
<div class="fragment"><div class="line"><a name="
|
|
2504
|
-
<div class="line"><a name="
|
|
2505
|
-
<div class="line"><a name="
|
|
2506
|
-
<div class="line"><a name="
|
|
2507
|
-
<div class="line"><a name="
|
|
2508
|
-
<div class="line"><a name="
|
|
2509
|
-
<div class="line"><a name="
|
|
2510
|
-
<div class="line"><a name="
|
|
2511
|
-
<div class="line"><a name="
|
|
2512
|
-
<div class="line"><a name="
|
|
2513
|
-
<div class="line"><a name="
|
|
2514
|
-
<div class="line"><a name="
|
|
2515
|
-
<div class="line"><a name="
|
|
2516
|
-
<div class="line"><a name="
|
|
2517
|
-
<div class="line"><a name="
|
|
2518
|
-
<div class="line"><a name="
|
|
2519
|
-
<div class="line"><a name="
|
|
2520
|
-
<div class="line"><a name="
|
|
2521
|
-
<div class="line"><a name="
|
|
2522
|
-
<div class="line"><a name="
|
|
2523
|
-
<div class="line"><a name="
|
|
2524
|
-
<div class="line"><a name="
|
|
2502
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00822">822</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2503
|
+
<div class="fragment"><div class="line"><a name="l00823"></a><span class="lineno"> 823</span> {</div>
|
|
2504
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* loadSrc = loadInst->getPointerOperand();</div>
|
|
2505
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* valTy = loadSrc->getType();</div>
|
|
2506
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = valTy;</div>
|
|
2507
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < 3; ++i)</div>
|
|
2508
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  {</div>
|
|
2509
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* ptrTy = SVFUtil::dyn_cast<PointerType>(elemTy))</div>
|
|
2510
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  elemTy = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(ptrTy);</div>
|
|
2511
|
+
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">else</span></div>
|
|
2512
|
+
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2513
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  }</div>
|
|
2514
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* functy = SVFUtil::dyn_cast<FunctionType>(elemTy))</div>
|
|
2515
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  {</div>
|
|
2516
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* paramty = functy->getParamType(0);</div>
|
|
2517
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> className = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a416bcb6da0650f546cb7d83e6be850b6">LLVMUtil::getClassNameFromType</a>(paramty);</div>
|
|
2518
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">if</span> (className.size() > 0)</div>
|
|
2519
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  {</div>
|
|
2520
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2521
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  }</div>
|
|
2522
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  }</div>
|
|
2523
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2524
|
+
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> }</div>
|
|
2525
2525
|
</div><!-- fragment -->
|
|
2526
2526
|
</div>
|
|
2527
2527
|
</div>
|
|
@@ -2613,17 +2613,15 @@ Functions</h2></td></tr>
|
|
|
2613
2613
|
|
|
2614
2614
|
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00054">54</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2615
2615
|
<div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
|
|
2616
|
-
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span> (SVFUtil::isa<Instruction>(ref) && <a class="code" href="namespaceSVF_1_1SVFUtil.html#
|
|
2616
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span> (SVFUtil::isa<Instruction>(ref) && <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(SVFUtil::cast<Instruction>(ref))))</div>
|
|
2617
2617
|
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2618
|
-
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (SVFUtil::isa<
|
|
2618
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (SVFUtil::isa<GlobalVariable>(ref))</div>
|
|
2619
2619
|
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2620
|
-
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">if</span> (SVFUtil::isa<
|
|
2620
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">if</span> (SVFUtil::isa<Function, AllocaInst>(ref))</div>
|
|
2621
2621
|
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2622
|
-
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> 
|
|
2623
|
-
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> 
|
|
2624
|
-
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> 
|
|
2625
|
-
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2626
|
-
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div>
|
|
2622
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
|
2623
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2624
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div>
|
|
2627
2625
|
</div><!-- fragment -->
|
|
2628
2626
|
</div>
|
|
2629
2627
|
</div>
|
|
@@ -2715,20 +2713,20 @@ Functions</h2></td></tr>
|
|
|
2715
2713
|
<p>Return true if this is value in a dead function (function without any caller) </p>
|
|
2716
2714
|
<p>Return true if this is a value in a dead function (function without any caller) </p>
|
|
2717
2715
|
|
|
2718
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2719
|
-
<div class="fragment"><div class="line"><a name="
|
|
2720
|
-
<div class="line"><a name="
|
|
2721
|
-
<div class="line"><a name="
|
|
2722
|
-
<div class="line"><a name="
|
|
2723
|
-
<div class="line"><a name="
|
|
2724
|
-
<div class="line"><a name="
|
|
2725
|
-
<div class="line"><a name="
|
|
2726
|
-
<div class="line"><a name="
|
|
2727
|
-
<div class="line"><a name="
|
|
2728
|
-
<div class="line"><a name="
|
|
2729
|
-
<div class="line"><a name="
|
|
2730
|
-
<div class="line"><a name="
|
|
2731
|
-
<div class="line"><a name="
|
|
2716
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00175">175</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2717
|
+
<div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> {</div>
|
|
2718
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast<Instruction>(value))</div>
|
|
2719
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  {</div>
|
|
2720
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(inst->getParent()->getParent()))</div>
|
|
2721
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2722
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div>
|
|
2723
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* arg = SVFUtil::dyn_cast<Argument>(value))</div>
|
|
2724
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div>
|
|
2725
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(arg->getParent()))</div>
|
|
2726
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2727
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div>
|
|
2728
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2729
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</div>
|
|
2732
2730
|
</div><!-- fragment -->
|
|
2733
2731
|
</div>
|
|
2734
2732
|
</div>
|
|
@@ -2760,28 +2758,28 @@ Functions</h2></td></tr>
|
|
|
2760
2758
|
<p>Given a inheritance relation B is a child of A We assume B::B(thisPtr1){ A::A(thisPtr2) } such that thisPtr1 == thisPtr2 In the following code thisPtr1 is "%class.B1* %this" and thisPtr2 is "%class.A* %0".</p>
|
|
2761
2759
|
<p>define linkonce_odr dso_local void @B1::B1()(class.B1* this) unnamed_addr #6 comdat this.addr = alloca class.B1*, align 8 store class.B1* this, class.B1** this.addr, align 8 this1 = load class.B1*, class.B1** this.addr, align 8 %0 = bitcast class.B1* this1 to class.A* call void @A::A()(class.A* %0) </p>
|
|
2762
2760
|
|
|
2763
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2764
|
-
<div class="fragment"><div class="line"><a name="
|
|
2765
|
-
<div class="line"><a name="
|
|
2766
|
-
<div class="line"><a name="
|
|
2767
|
-
<div class="line"><a name="
|
|
2768
|
-
<div class="line"><a name="
|
|
2769
|
-
<div class="line"><a name="
|
|
2770
|
-
<div class="line"><a name="
|
|
2771
|
-
<div class="line"><a name="
|
|
2772
|
-
<div class="line"><a name="
|
|
2773
|
-
<div class="line"><a name="
|
|
2774
|
-
<div class="line"><a name="
|
|
2775
|
-
<div class="line"><a name="
|
|
2776
|
-
<div class="line"><a name="
|
|
2777
|
-
<div class="line"><a name="
|
|
2778
|
-
<div class="line"><a name="
|
|
2779
|
-
<div class="line"><a name="
|
|
2780
|
-
<div class="line"><a name="
|
|
2781
|
-
<div class="line"><a name="
|
|
2782
|
-
<div class="line"><a name="
|
|
2783
|
-
<div class="line"><a name="
|
|
2784
|
-
<div class="line"><a name="
|
|
2761
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00938">938</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2762
|
+
<div class="fragment"><div class="line"><a name="l00940"></a><span class="lineno"> 940</span> {</div>
|
|
2763
|
+
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keywordflow">if</span> (thisPtr1 == thisPtr2)</div>
|
|
2764
|
+
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2765
|
+
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* thisU : thisPtr1->users())</div>
|
|
2766
|
+
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  {</div>
|
|
2767
|
+
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a>* store = SVFUtil::dyn_cast<StoreInst>(thisU))</div>
|
|
2768
|
+
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  {</div>
|
|
2769
|
+
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* storeU : store->getPointerOperand()->users())</div>
|
|
2770
|
+
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  {</div>
|
|
2771
|
+
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* load = SVFUtil::dyn_cast<LoadInst>(storeU))</div>
|
|
2772
|
+
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  {</div>
|
|
2773
|
+
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keywordflow">if</span> (load->getNextNode() &&</div>
|
|
2774
|
+
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  SVFUtil::isa<CastInst>(load->getNextNode()))</div>
|
|
2775
|
+
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="keywordflow">return</span> SVFUtil::cast<CastInst>(load->getNextNode()) ==</div>
|
|
2776
|
+
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  (thisPtr2->stripPointerCasts());</div>
|
|
2777
|
+
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  }</div>
|
|
2778
|
+
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  }</div>
|
|
2779
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  }</div>
|
|
2780
|
+
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  }</div>
|
|
2781
|
+
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2782
|
+
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> }</div>
|
|
2785
2783
|
</div><!-- fragment -->
|
|
2786
2784
|
</div>
|
|
2787
2785
|
</div>
|
|
@@ -2918,35 +2916,35 @@ Functions</h2></td></tr>
|
|
|
2918
2916
|
<p>Method for dead function, which does not have any possible caller function address is not taken and never be used in call or invoke instruction</p>
|
|
2919
2917
|
<p>Return true if this is a function without any possible caller </p>
|
|
2920
2918
|
|
|
2921
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2922
|
-
<div class="fragment"><div class="line"><a name="
|
|
2923
|
-
<div class="line"><a name="
|
|
2919
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00142">142</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2920
|
+
<div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div>
|
|
2921
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span>(fun->hasAddressTaken())</div>
|
|
2922
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2923
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ac9d6aff1a5e778e45c51b4f3b6d787e0">LLVMUtil::isProgEntryFunction</a>(fun))</div>
|
|
2924
2924
|
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2925
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">
|
|
2926
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> 
|
|
2927
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> 
|
|
2928
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> 
|
|
2929
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> 
|
|
2930
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> 
|
|
2931
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> 
|
|
2932
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> 
|
|
2933
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> 
|
|
2934
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> 
|
|
2935
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> 
|
|
2936
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> 
|
|
2937
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> 
|
|
2938
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> 
|
|
2939
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">
|
|
2940
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> 
|
|
2941
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> 
|
|
2942
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
2943
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> 
|
|
2944
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> 
|
|
2945
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
2946
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> 
|
|
2947
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> 
|
|
2948
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2949
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div>
|
|
2925
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">for</span> (Value::const_user_iterator i = fun->user_begin(), e = fun->user_end(); i != e; ++i)</div>
|
|
2926
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  {</div>
|
|
2927
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">LLVMUtil::isCallSite</a>(*i))</div>
|
|
2928
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2929
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div>
|
|
2930
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (LLVMModuleSet::getLLVMModuleSet()->hasDeclaration(fun))</div>
|
|
2931
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div>
|
|
2932
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a16d14e6712866d1d710c386c72d67181">LLVMModuleSet::FunctionSetType</a> &decls = LLVMModuleSet::getLLVMModuleSet()->getDeclaration(fun);</div>
|
|
2933
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">for</span> (LLVMModuleSet::FunctionSetType::const_iterator it = decls.begin(),</div>
|
|
2934
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  eit = decls.end(); it != eit; ++it)</div>
|
|
2935
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  {</div>
|
|
2936
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* decl = *it;</div>
|
|
2937
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">if</span>(decl->hasAddressTaken())</div>
|
|
2938
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2939
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">for</span> (Value::const_user_iterator i = decl->user_begin(), e = decl->user_end(); i != e; ++i)</div>
|
|
2940
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  {</div>
|
|
2941
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">LLVMUtil::isCallSite</a>(*i))</div>
|
|
2942
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2943
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div>
|
|
2944
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div>
|
|
2945
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  }</div>
|
|
2946
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2947
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }</div>
|
|
2950
2948
|
</div><!-- fragment -->
|
|
2951
2949
|
</div>
|
|
2952
2950
|
</div>
|
|
@@ -2966,14 +2964,14 @@ Functions</h2></td></tr>
|
|
|
2966
2964
|
</table>
|
|
2967
2965
|
</div><div class="memdoc">
|
|
2968
2966
|
|
|
2969
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2970
|
-
<div class="fragment"><div class="line"><a name="
|
|
2971
|
-
<div class="line"><a name="
|
|
2972
|
-
<div class="line"><a name="
|
|
2973
|
-
<div class="line"><a name="
|
|
2974
|
-
<div class="line"><a name="
|
|
2975
|
-
<div class="line"><a name="
|
|
2976
|
-
<div class="line"><a name="
|
|
2967
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00813">813</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2968
|
+
<div class="fragment"><div class="line"><a name="l00814"></a><span class="lineno"> 814</span> {</div>
|
|
2969
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<GlobalVariable>(val))</div>
|
|
2970
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2971
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> valName = val->getName().str();</div>
|
|
2972
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">return</span> valName.compare(0, <a class="code" href="LLVMUtil_8cpp.html#a211c0223a37893d84fb5e2fd2f9fc76b">vtblLabelBeforeDemangle</a>.size(),</div>
|
|
2973
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <a class="code" href="LLVMUtil_8cpp.html#a211c0223a37893d84fb5e2fd2f9fc76b">vtblLabelBeforeDemangle</a>) == 0;</div>
|
|
2974
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> }</div>
|
|
2977
2975
|
</div><!-- fragment -->
|
|
2978
2976
|
</div>
|
|
2979
2977
|
</div>
|
|
@@ -2993,36 +2991,36 @@ Functions</h2></td></tr>
|
|
|
2993
2991
|
</table>
|
|
2994
2992
|
</div><div class="memdoc">
|
|
2995
2993
|
|
|
2996
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2997
|
-
<div class="fragment"><div class="line"><a name="
|
|
2998
|
-
<div class="line"><a name="
|
|
2999
|
-
<div class="line"><a name="
|
|
3000
|
-
<div class="line"><a name="
|
|
3001
|
-
<div class="line"><a name="
|
|
3002
|
-
<div class="line"><a name="
|
|
3003
|
-
<div class="line"><a name="
|
|
3004
|
-
<div class="line"><a name="
|
|
3005
|
-
<div class="line"><a name="
|
|
3006
|
-
<div class="line"><a name="
|
|
3007
|
-
<div class="line"><a name="
|
|
3008
|
-
<div class="line"><a name="
|
|
3009
|
-
<div class="line"><a name="
|
|
3010
|
-
<div class="line"><a name="
|
|
3011
|
-
<div class="line"><a name="
|
|
3012
|
-
<div class="line"><a name="
|
|
3013
|
-
<div class="line"><a name="
|
|
3014
|
-
<div class="line"><a name="
|
|
3015
|
-
<div class="line"><a name="
|
|
3016
|
-
<div class="line"><a name="
|
|
3017
|
-
<div class="line"><a name="
|
|
3018
|
-
<div class="line"><a name="
|
|
3019
|
-
<div class="line"><a name="
|
|
3020
|
-
<div class="line"><a name="
|
|
3021
|
-
<div class="line"><a name="
|
|
3022
|
-
<div class="line"><a name="
|
|
3023
|
-
<div class="line"><a name="
|
|
3024
|
-
<div class="line"><a name="
|
|
3025
|
-
<div class="line"><a name="
|
|
2994
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00853">853</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
2995
|
+
<div class="fragment"><div class="line"><a name="l00854"></a><span class="lineno"> 854</span> {</div>
|
|
2996
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="comment">// the callsite must be an indirect one with at least one argument (this</span></div>
|
|
2997
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="comment">// ptr)</span></div>
|
|
2998
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">if</span> (cs->getCalledFunction() != <span class="keyword">nullptr</span> || cs->arg_empty())</div>
|
|
2999
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3000
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  </div>
|
|
3001
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="comment">// the first argument (this pointer) must be a pointer type and must be a</span></div>
|
|
3002
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="comment">// class name</span></div>
|
|
3003
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">if</span> (cs->getArgOperand(0)->getType()->isPointerTy() == <span class="keyword">false</span>)</div>
|
|
3004
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3005
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  </div>
|
|
3006
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfunc = cs->getCalledOperand();</div>
|
|
3007
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* vfuncloadinst = SVFUtil::dyn_cast<LoadInst>(vfunc))</div>
|
|
3008
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  {</div>
|
|
3009
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfuncptr = vfuncloadinst->getPointerOperand();</div>
|
|
3010
|
+
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* vfuncptrgepinst =</div>
|
|
3011
|
+
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr))</div>
|
|
3012
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  {</div>
|
|
3013
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keywordflow">if</span> (vfuncptrgepinst->getNumIndices() != 1)</div>
|
|
3014
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3015
|
+
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vtbl = vfuncptrgepinst->getPointerOperand();</div>
|
|
3016
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(vtbl))</div>
|
|
3017
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  {</div>
|
|
3018
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
3019
|
+
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  }</div>
|
|
3020
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  }</div>
|
|
3021
|
+
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  }</div>
|
|
3022
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3023
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> }</div>
|
|
3026
3024
|
</div><!-- fragment -->
|
|
3027
3025
|
</div>
|
|
3028
3026
|
</div>
|
|
@@ -3100,31 +3098,31 @@ template<typename T > </div>
|
|
|
3100
3098
|
<p>Parse argument for multi-module analysis. </p>
|
|
3101
3099
|
<p>Get the names of all modules into a vector And process arguments </p>
|
|
3102
3100
|
|
|
3103
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3104
|
-
<div class="fragment"><div class="line"><a name="
|
|
3105
|
-
<div class="line"><a name="
|
|
3106
|
-
<div class="line"><a name="
|
|
3107
|
-
<div class="line"><a name="
|
|
3108
|
-
<div class="line"><a name="
|
|
3109
|
-
<div class="line"><a name="
|
|
3110
|
-
<div class="line"><a name="
|
|
3111
|
-
<div class="line"><a name="
|
|
3112
|
-
<div class="line"><a name="
|
|
3113
|
-
<div class="line"><a name="
|
|
3114
|
-
<div class="line"><a name="
|
|
3115
|
-
<div class="line"><a name="
|
|
3116
|
-
<div class="line"><a name="
|
|
3117
|
-
<div class="line"><a name="
|
|
3118
|
-
<div class="line"><a name="
|
|
3119
|
-
<div class="line"><a name="
|
|
3120
|
-
<div class="line"><a name="
|
|
3121
|
-
<div class="line"><a name="
|
|
3122
|
-
<div class="line"><a name="
|
|
3123
|
-
<div class="line"><a name="
|
|
3124
|
-
<div class="line"><a name="
|
|
3125
|
-
<div class="line"><a name="
|
|
3126
|
-
<div class="line"><a name="
|
|
3127
|
-
<div class="line"><a name="
|
|
3101
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00417">417</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3102
|
+
<div class="fragment"><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> {</div>
|
|
3103
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordtype">bool</span> first_ir_file = <span class="keyword">true</span>;</div>
|
|
3104
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < argc; ++i)</div>
|
|
3105
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div>
|
|
3106
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> argument(argv[i]);</div>
|
|
3107
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">LLVMUtil::isIRFile</a>(argument))</div>
|
|
3108
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  {</div>
|
|
3109
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">if</span> (find(moduleNameVec.begin(), moduleNameVec.end(), argument)</div>
|
|
3110
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  == moduleNameVec.end())</div>
|
|
3111
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  moduleNameVec.push_back(argument);</div>
|
|
3112
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordflow">if</span> (first_ir_file)</div>
|
|
3113
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  {</div>
|
|
3114
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  arg_value[arg_num] = argv[i];</div>
|
|
3115
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  arg_num++;</div>
|
|
3116
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  first_ir_file = <span class="keyword">false</span>;</div>
|
|
3117
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div>
|
|
3118
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div>
|
|
3119
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">else</span></div>
|
|
3120
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  {</div>
|
|
3121
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  arg_value[arg_num] = argv[i];</div>
|
|
3122
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  arg_num++;</div>
|
|
3123
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div>
|
|
3124
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  }</div>
|
|
3125
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> }</div>
|
|
3128
3126
|
</div><!-- fragment -->
|
|
3129
3127
|
</div>
|
|
3130
3128
|
</div>
|
|
@@ -3144,66 +3142,66 @@ template<typename T > </div>
|
|
|
3144
3142
|
</table>
|
|
3145
3143
|
</div><div class="memdoc">
|
|
3146
3144
|
|
|
3147
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3148
|
-
<div class="fragment"><div class="line"><a name="
|
|
3149
|
-
<div class="line"><a name="
|
|
3150
|
-
<div class="line"><a name="
|
|
3151
|
-
<div class="line"><a name="
|
|
3152
|
-
<div class="line"><a name="
|
|
3153
|
-
<div class="line"><a name="
|
|
3154
|
-
<div class="line"><a name="
|
|
3155
|
-
<div class="line"><a name="
|
|
3156
|
-
<div class="line"><a name="
|
|
3157
|
-
<div class="line"><a name="
|
|
3158
|
-
<div class="line"><a name="
|
|
3159
|
-
<div class="line"><a name="
|
|
3160
|
-
<div class="line"><a name="
|
|
3161
|
-
<div class="line"><a name="
|
|
3162
|
-
<div class="line"><a name="
|
|
3163
|
-
<div class="line"><a name="
|
|
3164
|
-
<div class="line"><a name="
|
|
3165
|
-
<div class="line"><a name="
|
|
3166
|
-
<div class="line"><a name="
|
|
3167
|
-
<div class="line"><a name="
|
|
3168
|
-
<div class="line"><a name="
|
|
3169
|
-
<div class="line"><a name="
|
|
3170
|
-
<div class="line"><a name="
|
|
3171
|
-
<div class="line"><a name="
|
|
3172
|
-
<div class="line"><a name="
|
|
3173
|
-
<div class="line"><a name="
|
|
3174
|
-
<div class="line"><a name="
|
|
3175
|
-
<div class="line"><a name="
|
|
3176
|
-
<div class="line"><a name="
|
|
3177
|
-
<div class="line"><a name="
|
|
3178
|
-
<div class="line"><a name="
|
|
3179
|
-
<div class="line"><a name="
|
|
3180
|
-
<div class="line"><a name="
|
|
3181
|
-
<div class="line"><a name="
|
|
3182
|
-
<div class="line"><a name="
|
|
3183
|
-
<div class="line"><a name="
|
|
3184
|
-
<div class="line"><a name="
|
|
3185
|
-
<div class="line"><a name="
|
|
3186
|
-
<div class="line"><a name="
|
|
3187
|
-
<div class="line"><a name="
|
|
3188
|
-
<div class="line"><a name="
|
|
3189
|
-
<div class="line"><a name="
|
|
3190
|
-
<div class="line"><a name="
|
|
3191
|
-
<div class="line"><a name="
|
|
3192
|
-
<div class="line"><a name="
|
|
3193
|
-
<div class="line"><a name="
|
|
3194
|
-
<div class="line"><a name="
|
|
3195
|
-
<div class="line"><a name="
|
|
3196
|
-
<div class="line"><a name="
|
|
3197
|
-
<div class="line"><a name="
|
|
3198
|
-
<div class="line"><a name="
|
|
3199
|
-
<div class="line"><a name="
|
|
3200
|
-
<div class="line"><a name="
|
|
3201
|
-
<div class="line"><a name="
|
|
3202
|
-
<div class="line"><a name="
|
|
3203
|
-
<div class="line"><a name="
|
|
3204
|
-
<div class="line"><a name="
|
|
3205
|
-
<div class="line"><a name="
|
|
3206
|
-
<div class="line"><a name="
|
|
3145
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00485">485</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3146
|
+
<div class="fragment"><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> {</div>
|
|
3147
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">if</span> (removedFuncList.empty())</div>
|
|
3148
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">return</span>; <span class="comment">// No functions to remove annotations in extapi.bc module</span></div>
|
|
3149
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  </div>
|
|
3150
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* module = removedFuncList[0]->getParent();</div>
|
|
3151
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* glob = module->getGlobalVariable(<span class="stringliteral">"llvm.global.annotations"</span>);</div>
|
|
3152
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">if</span> (glob == <span class="keyword">nullptr</span> || !glob->hasInitializer())</div>
|
|
3153
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">return</span>;</div>
|
|
3154
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  </div>
|
|
3155
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <a class="code" href="namespaceSVF.html#a5ae718cba37d8e34d2946530dc098c8e">ConstantArray</a>* ca = SVFUtil::dyn_cast<ConstantArray>(glob->getInitializer());</div>
|
|
3156
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">if</span> (ca == <span class="keyword">nullptr</span>)</div>
|
|
3157
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">return</span>;</div>
|
|
3158
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  </div>
|
|
3159
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  std::vector<Constant*> newAnnotations;</div>
|
|
3160
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < ca->getNumOperands(); ++i)</div>
|
|
3161
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div>
|
|
3162
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <a class="code" href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">ConstantStruct</a>* structAn = SVFUtil::dyn_cast<ConstantStruct>(ca->getOperand(i));</div>
|
|
3163
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">if</span> (structAn == <span class="keyword">nullptr</span>)</div>
|
|
3164
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">continue</span>;</div>
|
|
3165
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  </div>
|
|
3166
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* expr = SVFUtil::dyn_cast<ConstantExpr>(structAn->getOperand(0));</div>
|
|
3167
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">if</span> (expr == <span class="keyword">nullptr</span> || expr->getOpcode() != Instruction::BitCast)</div>
|
|
3168
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div>
|
|
3169
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="comment">// Keep the annotation if it's not created using BitCast</span></div>
|
|
3170
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  newAnnotations.push_back(structAn);</div>
|
|
3171
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordflow">continue</span>;</div>
|
|
3172
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  }</div>
|
|
3173
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  </div>
|
|
3174
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* annotatedFunc = SVFUtil::dyn_cast<Function>(expr->getOperand(0));</div>
|
|
3175
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">if</span> (annotatedFunc == <span class="keyword">nullptr</span> || std::find(removedFuncList.begin(), removedFuncList.end(), annotatedFunc) != removedFuncList.end())</div>
|
|
3176
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">continue</span>;</div>
|
|
3177
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  </div>
|
|
3178
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="comment">// Keep the annotation for all other functions</span></div>
|
|
3179
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  newAnnotations.push_back(structAn);</div>
|
|
3180
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div>
|
|
3181
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  </div>
|
|
3182
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">if</span> (newAnnotations.size() == ca->getNumOperands())</div>
|
|
3183
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">return</span>; <span class="comment">// No annotations to remove</span></div>
|
|
3184
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  </div>
|
|
3185
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* annotationsType = ArrayType::get(ca->getType()->getElementType(), newAnnotations.size());</div>
|
|
3186
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* newCA = ConstantArray::get(annotationsType, newAnnotations);</div>
|
|
3187
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  </div>
|
|
3188
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="comment">// Check if a global variable with the name llvm.global.annotations already exists</span></div>
|
|
3189
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* existingGlobal = module->getGlobalVariable(<span class="stringliteral">"llvm.global.annotations"</span>);</div>
|
|
3190
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">if</span> (existingGlobal)</div>
|
|
3191
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="comment">// Rename the existing llvm.global.annotations to llvm.global.annotations_old</span></div>
|
|
3192
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  existingGlobal->setName(<span class="stringliteral">"llvm.global.annotations_old"</span>);</div>
|
|
3193
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  </div>
|
|
3194
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="comment">// Create a new global variable with the updated annotations</span></div>
|
|
3195
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* newGlobal = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>(*module, newCA->getType(), glob->isConstant(),</div>
|
|
3196
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  glob->getLinkage(), newCA, <span class="stringliteral">"llvm.global.annotations"</span>, glob, glob->getThreadLocalMode());</div>
|
|
3197
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  </div>
|
|
3198
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="comment">// Copy other properties from the old global variable to the new one</span></div>
|
|
3199
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  newGlobal->setSection(glob->getSection());</div>
|
|
3200
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  newGlobal->setAlignment(llvm::MaybeAlign(glob->getAlignment()));</div>
|
|
3201
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  </div>
|
|
3202
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="comment">// Remove the old global variable</span></div>
|
|
3203
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  glob->eraseFromParent();</div>
|
|
3204
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> }</div>
|
|
3207
3205
|
</div><!-- fragment -->
|
|
3208
3206
|
</div>
|
|
3209
3207
|
</div>
|
|
@@ -3261,28 +3259,28 @@ template<typename T > </div>
|
|
|
3261
3259
|
<p>Strip off the all casts. </p>
|
|
3262
3260
|
<p>Strip all casts </p>
|
|
3263
3261
|
|
|
3264
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3265
|
-
<div class="fragment"><div class="line"><a name="
|
|
3266
|
-
<div class="line"><a name="
|
|
3267
|
-
<div class="line"><a name="
|
|
3268
|
-
<div class="line"><a name="
|
|
3269
|
-
<div class="line"><a name="
|
|
3270
|
-
<div class="line"><a name="
|
|
3271
|
-
<div class="line"><a name="
|
|
3272
|
-
<div class="line"><a name="
|
|
3273
|
-
<div class="line"><a name="
|
|
3274
|
-
<div class="line"><a name="
|
|
3275
|
-
<div class="line"><a name="
|
|
3276
|
-
<div class="line"><a name="
|
|
3277
|
-
<div class="line"><a name="
|
|
3278
|
-
<div class="line"><a name="
|
|
3279
|
-
<div class="line"><a name="
|
|
3280
|
-
<div class="line"><a name="
|
|
3281
|
-
<div class="line"><a name="
|
|
3282
|
-
<div class="line"><a name="
|
|
3283
|
-
<div class="line"><a name="
|
|
3284
|
-
<div class="line"><a name="
|
|
3285
|
-
<div class="line"><a name="
|
|
3262
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00251">251</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3263
|
+
<div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> {</div>
|
|
3264
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
|
|
3265
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  {</div>
|
|
3266
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">CastInst</a> *ci = SVFUtil::dyn_cast<CastInst>(val))</div>
|
|
3267
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  {</div>
|
|
3268
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  val = ci->getOperand(0);</div>
|
|
3269
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div>
|
|
3270
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</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 = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
3271
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div>
|
|
3272
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span>(ce->isCast())</div>
|
|
3273
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  val = ce->getOperand(0);</div>
|
|
3274
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span></div>
|
|
3275
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> val;</div>
|
|
3276
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div>
|
|
3277
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">else</span></div>
|
|
3278
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  {</div>
|
|
3279
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">return</span> val;</div>
|
|
3280
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div>
|
|
3281
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div>
|
|
3282
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
3283
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> }</div>
|
|
3286
3284
|
</div><!-- fragment -->
|
|
3287
3285
|
</div>
|
|
3288
3286
|
</div>
|
|
@@ -3305,17 +3303,17 @@ template<typename T > </div>
|
|
|
3305
3303
|
<p>Strip off the constant casts. </p>
|
|
3306
3304
|
<p>Strip constant casts </p>
|
|
3307
3305
|
|
|
3308
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3309
|
-
<div class="fragment"><div class="line"><a name="
|
|
3310
|
-
<div class="line"><a name="
|
|
3311
|
-
<div class="line"><a name="
|
|
3312
|
-
<div class="line"><a name="
|
|
3313
|
-
<div class="line"><a name="
|
|
3314
|
-
<div class="line"><a name="
|
|
3315
|
-
<div class="line"><a name="
|
|
3316
|
-
<div class="line"><a name="
|
|
3317
|
-
<div class="line"><a name="
|
|
3318
|
-
<div class="line"><a name="
|
|
3306
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00220">220</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3307
|
+
<div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> {</div>
|
|
3308
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span> (SVFUtil::isa<GlobalValue>(val) || <a class="code" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">isInt2PtrConstantExpr</a>(val))</div>
|
|
3309
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> val;</div>
|
|
3310
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</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 = SVFUtil::dyn_cast<ConstantExpr>(val))</div>
|
|
3311
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  {</div>
|
|
3312
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">if</span> (Instruction::isCast(CE->getOpcode()))</div>
|
|
3313
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">stripConstantCasts</a>(CE->getOperand(0));</div>
|
|
3314
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div>
|
|
3315
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">return</span> val;</div>
|
|
3316
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> }</div>
|
|
3319
3317
|
</div><!-- fragment -->
|
|
3320
3318
|
</div>
|
|
3321
3319
|
</div>
|
|
@@ -3378,18 +3376,18 @@ template<typename T > </div>
|
|
|
3378
3376
|
</table>
|
|
3379
3377
|
</div><div class="memdoc">
|
|
3380
3378
|
|
|
3381
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3382
|
-
<div class="fragment"><div class="line"><a name="
|
|
3383
|
-
<div class="line"><a name="
|
|
3384
|
-
<div class="line"><a name="
|
|
3385
|
-
<div class="line"><a name="
|
|
3386
|
-
<div class="line"><a name="
|
|
3387
|
-
<div class="line"><a name="
|
|
3388
|
-
<div class="line"><a name="
|
|
3389
|
-
<div class="line"><a name="
|
|
3390
|
-
<div class="line"><a name="
|
|
3391
|
-
<div class="line"><a name="
|
|
3392
|
-
<div class="line"><a name="
|
|
3379
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l01057">1057</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3380
|
+
<div class="fragment"><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> {</div>
|
|
3381
|
+
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> classNameOfThisPtr = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">LLVMUtil::getClassNameOfThisPtr</a>(cs);</div>
|
|
3382
|
+
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = cs->getCaller();</div>
|
|
3383
|
+
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">LLVMUtil::isConstructor</a>(func) || <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">LLVMUtil::isDestructor</a>(func))</div>
|
|
3384
|
+
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  {</div>
|
|
3385
|
+
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(func->getName().str());</div>
|
|
3386
|
+
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  <span class="keywordflow">if</span> (classNameOfThisPtr.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>) == 0)</div>
|
|
3387
|
+
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
3388
|
+
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  }</div>
|
|
3389
|
+
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
3390
|
+
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> }</div>
|
|
3393
3391
|
</div><!-- fragment -->
|
|
3394
3392
|
</div>
|
|
3395
3393
|
</div>
|
|
@@ -3409,13 +3407,13 @@ template<typename T > </div>
|
|
|
3409
3407
|
</table>
|
|
3410
3408
|
</div><div class="memdoc">
|
|
3411
3409
|
|
|
3412
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3413
|
-
<div class="fragment"><div class="line"><a name="
|
|
3414
|
-
<div class="line"><a name="
|
|
3415
|
-
<div class="line"><a name="
|
|
3416
|
-
<div class="line"><a name="
|
|
3417
|
-
<div class="line"><a name="
|
|
3418
|
-
<div class="line"><a name="
|
|
3410
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00232">232</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3411
|
+
<div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> {</div>
|
|
3412
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">if</span> (fun != <span class="keyword">nullptr</span>)</div>
|
|
3413
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div>
|
|
3414
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  fun->viewCFG();</div>
|
|
3415
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
|
3416
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> }</div>
|
|
3419
3417
|
</div><!-- fragment -->
|
|
3420
3418
|
</div>
|
|
3421
3419
|
</div>
|
|
@@ -3435,29 +3433,29 @@ template<typename T > </div>
|
|
|
3435
3433
|
</table>
|
|
3436
3434
|
</div><div class="memdoc">
|
|
3437
3435
|
|
|
3438
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3439
|
-
<div class="fragment"><div class="line"><a name="
|
|
3440
|
-
<div class="line"><a name="
|
|
3441
|
-
<div class="line"><a name="
|
|
3442
|
-
<div class="line"><a name="
|
|
3443
|
-
<div class="line"><a name="
|
|
3444
|
-
<div class="line"><a name="
|
|
3436
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00240">240</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
|
|
3437
|
+
<div class="fragment"><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> {</div>
|
|
3438
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">if</span> (fun != <span class="keyword">nullptr</span>)</div>
|
|
3439
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  {</div>
|
|
3440
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  fun->viewCFGOnly();</div>
|
|
3441
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div>
|
|
3442
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> }</div>
|
|
3445
3443
|
</div><!-- fragment -->
|
|
3446
3444
|
</div>
|
|
3447
3445
|
</div>
|
|
3448
3446
|
</div><!-- contents -->
|
|
3449
3447
|
<div class="ttc" id="anamespaceSVF_html_a827d09974dc7bf0849f96823cc2fee89"><div class="ttname"><a href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">SVF::DomTreeNode</a></div><div class="ttdeci">llvm::DomTreeNode DomTreeNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
|
|
3450
|
-
<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#
|
|
3448
|
+
<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#l00590">LLVMUtil.cpp:590</a></div></div>
|
|
3451
3449
|
<div class="ttc" id="anamespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdoc">LLVM Dominators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00131">BasicTypes.h:131</a></div></div>
|
|
3452
3450
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aeaa116fd9718c8b31f30d3fe62bb6403"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aeaa116fd9718c8b31f30d3fe62bb6403">SVF::LLVMUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Value *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00051">LLVMUtil.h:51</a></div></div>
|
|
3453
3451
|
<div class="ttc" id="aCommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
|
|
3454
3452
|
<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>
|
|
3455
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2b5fdf455c5dd40c0baa60185e5e41c6"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2b5fdf455c5dd40c0baa60185e5e41c6">SVF::LLVMUtil::getTypeSizeInBytes</a></div><div class="ttdeci">u32_t getTypeSizeInBytes(const StructType *sty, u32_t field_index)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3453
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2b5fdf455c5dd40c0baa60185e5e41c6"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2b5fdf455c5dd40c0baa60185e5e41c6">SVF::LLVMUtil::getTypeSizeInBytes</a></div><div class="ttdeci">u32_t getTypeSizeInBytes(const StructType *sty, u32_t field_index)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00576">LLVMUtil.cpp:576</a></div></div>
|
|
3456
3454
|
<div class="ttc" id="anamespaceSVF_html_a773900ea3c75022657aac1abf59fa51b"><div class="ttname"><a href="namespaceSVF.html#a773900ea3c75022657aac1abf59fa51b">SVF::MetadataAsValue</a></div><div class="ttdeci">llvm::MetadataAsValue MetadataAsValue</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
|
|
3457
3455
|
<div class="ttc" id="anamespaceSVF_html_a6ec0236303089a01fd9da36a8bb84e0a"><div class="ttname"><a href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">SVF::FunctionType</a></div><div class="ttdeci">llvm::FunctionType FunctionType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00096">BasicTypes.h:96</a></div></div>
|
|
3458
3456
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a16d14e6712866d1d710c386c72d67181"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a16d14e6712866d1d710c386c72d67181">SVF::LLVMModuleSet::FunctionSetType</a></div><div class="ttdeci">std::vector< const Function * > FunctionSetType</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00050">LLVMModule.h:50</a></div></div>
|
|
3459
3457
|
<div class="ttc" id="aLLVMUtil_8cpp_html_a5f8da60b0fcc28445f508f4e42513a82"><div class="ttname"><a href="LLVMUtil_8cpp.html#a5f8da60b0fcc28445f508f4e42513a82">clsName</a></div><div class="ttdeci">const std::string clsName</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00043">LLVMUtil.cpp:43</a></div></div>
|
|
3460
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a08fbef6fe3e2af96a49f79ce23accb01"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">SVF::LLVMUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3458
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a08fbef6fe3e2af96a49f79ce23accb01"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">SVF::LLVMUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00813">LLVMUtil.cpp:813</a></div></div>
|
|
3461
3459
|
<div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
|
|
3462
3460
|
<div class="ttc" id="anamespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
|
|
3463
3461
|
<div class="ttc" id="anamespaceSVF_html_a3d9e7f32dc17fe8d40f8d6a011403b91"><div class="ttname"><a href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">SVF::IntegerType</a></div><div class="ttdeci">llvm::IntegerType IntegerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
|
|
@@ -3465,15 +3463,15 @@ template<typename T > </div>
|
|
|
3465
3463
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
|
|
3466
3464
|
<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>
|
|
3467
3465
|
<div class="ttc" id="anamespaceSVF_html_a03db82b8a7914367024723dba4d6ca3c"><div class="ttname"><a href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">SVF::DataLayout</a></div><div class="ttdeci">llvm::DataLayout DataLayout</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00106">BasicTypes.h:106</a></div></div>
|
|
3468
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a07bd47ccfd02c5a2a6db26b537b2184f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">SVF::LLVMUtil::stripConstantCasts</a></div><div class="ttdeci">const Value * stripConstantCasts(const Value *val)</div><div class="ttdoc">Strip off the constant casts.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3469
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller?</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3470
|
-
<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#
|
|
3466
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a07bd47ccfd02c5a2a6db26b537b2184f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">SVF::LLVMUtil::stripConstantCasts</a></div><div class="ttdeci">const Value * stripConstantCasts(const Value *val)</div><div class="ttdoc">Strip off the constant casts.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00220">LLVMUtil.cpp:220</a></div></div>
|
|
3467
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller?</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00142">LLVMUtil.cpp:142</a></div></div>
|
|
3468
|
+
<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#l00764">LLVMUtil.cpp:764</a></div></div>
|
|
3471
3469
|
<div class="ttc" id="anamespaceSVF_html_a52c8654c221bb53a59f70ea3cb1e5c45"><div class="ttname"><a href="namespaceSVF.html#a52c8654c221bb53a59f70ea3cb1e5c45">SVF::StructLayout</a></div><div class="ttdeci">llvm::StructLayout StructLayout</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00103">BasicTypes.h:103</a></div></div>
|
|
3472
3470
|
<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>
|
|
3473
|
-
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#
|
|
3471
|
+
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00442">SVFUtil.h:442</a></div></div>
|
|
3474
3472
|
<div class="ttc" id="anamespaceSVF_html_a7cbe1c6567039e72958fd70e423d3597"><div class="ttname"><a href="namespaceSVF.html#a7cbe1c6567039e72958fd70e423d3597">SVF::ConstantAggregate</a></div><div class="ttdeci">llvm::ConstantAggregate ConstantAggregate</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00115">BasicTypes.h:115</a></div></div>
|
|
3475
3473
|
<div class="ttc" id="acJSON_8h_html_a25d22ecc7e656d2c59332072684e8766"><div class="ttname"><a href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a></div><div class="ttdeci">const char *const name</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00264">cJSON.h:264</a></div></div>
|
|
3476
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a47d2af43ff12d9e1014fa19256619466"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">SVF::LLVMUtil::getCalledFunctions</a></div><div class="ttdeci">std::vector< const Function * > getCalledFunctions(const Function *F)</div><div class="ttdoc">Get all called funcions in a parent function.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3474
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a47d2af43ff12d9e1014fa19256619466"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">SVF::LLVMUtil::getCalledFunctions</a></div><div class="ttdeci">std::vector< const Function * > getCalledFunctions(const Function *F)</div><div class="ttdoc">Get all called funcions in a parent function.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00547">LLVMUtil.cpp:547</a></div></div>
|
|
3477
3475
|
<div class="ttc" id="anamespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00247">BasicTypes.h:247</a></div></div>
|
|
3478
3476
|
<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>
|
|
3479
3477
|
<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>
|
|
@@ -3482,9 +3480,8 @@ template<typename T > </div>
|
|
|
3482
3480
|
<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>
|
|
3483
3481
|
<div class="ttc" id="anamespaceSVF_html_a956458a8554bf734db1194f320fd4b4c"><div class="ttname"><a href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">SVF::BlockAddress</a></div><div class="ttdeci">llvm::BlockAddress BlockAddress</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00089">BasicTypes.h:89</a></div></div>
|
|
3484
3482
|
<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>
|
|
3485
|
-
<div class="ttc" id="
|
|
3486
|
-
<div class="ttc" id="
|
|
3487
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a68e7bad8eb537039559d8ddc851032e0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">SVF::LLVMUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00914">LLVMUtil.cpp:914</a></div></div>
|
|
3483
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a837d19c740902c419206287bdb21273b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">SVF::LLVMUtil::getUniqueUseViaCastInst</a></div><div class="ttdeci">const Value * getUniqueUseViaCastInst(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00337">LLVMUtil.cpp:337</a></div></div>
|
|
3484
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a68e7bad8eb537039559d8ddc851032e0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">SVF::LLVMUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00912">LLVMUtil.cpp:912</a></div></div>
|
|
3488
3485
|
<div class="ttc" id="anamespaceSVF_html_a146d286041987860388da3d8bc85cee3"><div class="ttname"><a href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">SVF::ArrayType</a></div><div class="ttdeci">llvm::ArrayType ArrayType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
|
|
3489
3486
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00490">SVFValue.h:490</a></div></div>
|
|
3490
3487
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
@@ -3493,7 +3490,7 @@ template<typename T > </div>
|
|
|
3493
3490
|
<div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
|
|
3494
3491
|
<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>
|
|
3495
3492
|
<div class="ttc" id="aclassSVF_1_1StInfo_html"><div class="ttname"><a href="classSVF_1_1StInfo.html">SVF::StInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00132">SVFType.h:132</a></div></div>
|
|
3496
|
-
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#
|
|
3493
|
+
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00431">SVFUtil.h:431</a></div></div>
|
|
3497
3494
|
<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>
|
|
3498
3495
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a745a2addadc136075d45c7fb8437af3e"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00153">CppUtil.cpp:153</a></div></div>
|
|
3499
3496
|
<div class="ttc" id="acJSON_8cpp_html_a930920b2bc42824a5c03be681830f4b2"><div class="ttname"><a href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a></div><div class="ttdeci">return true</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02295">cJSON.cpp:2295</a></div></div>
|
|
@@ -3501,13 +3498,13 @@ template<typename T > </div>
|
|
|
3501
3498
|
<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>
|
|
3502
3499
|
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
|
|
3503
3500
|
<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#l00270">SVFValue.h:270</a></div></div>
|
|
3504
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8a8c32a09340f491fffffcb07dd7a41"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">SVF::LLVMUtil::isIRFile</a></div><div class="ttdeci">bool isIRFile(const std::string &filename)</div><div class="ttdoc">Check whether a file is an LLVM IR file.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3501
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8a8c32a09340f491fffffcb07dd7a41"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">SVF::LLVMUtil::isIRFile</a></div><div class="ttdeci">bool isIRFile(const std::string &filename)</div><div class="ttdoc">Check whether a file is an LLVM IR file.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00400">LLVMUtil.cpp:400</a></div></div>
|
|
3505
3502
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a1cf2e4671b16b477cc779c72f2419234"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">SVF::cppUtil::getBeforeBrackets</a></div><div class="ttdeci">std::string getBeforeBrackets(const std::string &name)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00085">CppUtil.cpp:85</a></div></div>
|
|
3506
3503
|
<div class="ttc" id="aLLVMUtil_8cpp_html_a211c0223a37893d84fb5e2fd2f9fc76b"><div class="ttname"><a href="LLVMUtil_8cpp.html#a211c0223a37893d84fb5e2fd2f9fc76b">vtblLabelBeforeDemangle</a></div><div class="ttdeci">const std::string vtblLabelBeforeDemangle</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00038">LLVMUtil.cpp:38</a></div></div>
|
|
3507
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a523a8c3f9bfaea178733822ac598d552"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a523a8c3f9bfaea178733822ac598d552">SVF::LLVMUtil::removeFunAnnotations</a></div><div class="ttdeci">void removeFunAnnotations(std::vector< Function * > &removedFuncList)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3504
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a523a8c3f9bfaea178733822ac598d552"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a523a8c3f9bfaea178733822ac598d552">SVF::LLVMUtil::removeFunAnnotations</a></div><div class="ttdeci">void removeFunAnnotations(std::vector< Function * > &removedFuncList)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00485">LLVMUtil.cpp:485</a></div></div>
|
|
3508
3505
|
<div class="ttc" id="anamespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
|
|
3509
3506
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_af264312f0020bde9151697bccfde3263"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#af264312f0020bde9151697bccfde3263">SVF::SVFFunction::getReturnType</a></div><div class="ttdeci">const SVFType * getReturnType() const</div><div class="ttdoc">Returns the FunctionType.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00361">SVFValue.h:361</a></div></div>
|
|
3510
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a206973624fcc58e6044c884dba23a754"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">SVF::LLVMUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3507
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a206973624fcc58e6044c884dba23a754"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">SVF::LLVMUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01002">LLVMUtil.cpp:1002</a></div></div>
|
|
3511
3508
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a151fd7fb2b2ebe72af7c417defbb4f4d"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">SVF::LLVMUtil::getDataLayout</a></div><div class="ttdeci">static DataLayout * getDataLayout(Module *mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00329">LLVMUtil.h:329</a></div></div>
|
|
3512
3509
|
<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#l00241">LLVMUtil.h:241</a></div></div>
|
|
3513
3510
|
<div class="ttc" id="aLLVMUtil_8cpp_html_a61c158146c07e77234eb4a2f9b940821"><div class="ttname"><a href="LLVMUtil_8cpp.html#a61c158146c07e77234eb4a2f9b940821">structName</a></div><div class="ttdeci">const std::string structName</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00044">LLVMUtil.cpp:44</a></div></div>
|
|
@@ -3526,31 +3523,31 @@ template<typename T > </div>
|
|
|
3526
3523
|
<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>
|
|
3527
3524
|
<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>
|
|
3528
3525
|
<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>
|
|
3529
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa841a295ec803b6a1f2bd248f63f863f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">SVF::LLVMUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3526
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa841a295ec803b6a1f2bd248f63f863f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">SVF::LLVMUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01094">LLVMUtil.cpp:1094</a></div></div>
|
|
3530
3527
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa81614cdb6a2a912638d5dc980480af7"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa81614cdb6a2a912638d5dc980480af7">SVF::LLVMUtil::getRefTypeOfHeapAllocOrStatic</a></div><div class="ttdeci">const PointerType * getRefTypeOfHeapAllocOrStatic(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00155">LLVMUtil.h:155</a></div></div>
|
|
3531
3528
|
<div class="ttc" id="astructSVF_1_1cppUtil_1_1DemangledName_html_a5cd207bce618521166e6fa235014b297"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">SVF::cppUtil::DemangledName::className</a></div><div class="ttdeci">std::string className</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8h_source.html#l00048">CppUtil.h:48</a></div></div>
|
|
3532
3529
|
<div class="ttc" id="anamespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00269">BasicTypes.h:269</a></div></div>
|
|
3533
3530
|
<div class="ttc" id="astructSVF_1_1cppUtil_1_1DemangledName_html_a1dd17b240663bc9412adefde82385e02"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">SVF::cppUtil::DemangledName::funcName</a></div><div class="ttdeci">std::string funcName</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8h_source.html#l00049">CppUtil.h:49</a></div></div>
|
|
3534
3531
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">SVF::LLVMUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const Function * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00057">LLVMUtil.h:57</a></div></div>
|
|
3535
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2b32283ee2dbb9cef1d17ab6f2719e0c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">SVF::LLVMUtil::getSourceLocOfFunction</a></div><div class="ttdeci">const std::string getSourceLocOfFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3532
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2b32283ee2dbb9cef1d17ab6f2719e0c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">SVF::LLVMUtil::getSourceLocOfFunction</a></div><div class="ttdeci">const std::string getSourceLocOfFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00694">LLVMUtil.cpp:694</a></div></div>
|
|
3536
3533
|
<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>
|
|
3537
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4c94a6c02fb89c1a1604c87414956acd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the previous instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3534
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4c94a6c02fb89c1a1604c87414956acd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the previous instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00304">LLVMUtil.cpp:304</a></div></div>
|
|
3538
3535
|
<div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
|
|
3539
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4638a12f5481dff947b59cf8353e619b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">SVF::LLVMUtil::isIntrinsicFun</a></div><div class="ttdeci">bool isIntrinsicFun(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3536
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4638a12f5481dff947b59cf8353e619b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">SVF::LLVMUtil::isIntrinsicFun</a></div><div class="ttdeci">bool isIntrinsicFun(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00190">LLVMUtil.cpp:190</a></div></div>
|
|
3540
3537
|
<div class="ttc" id="anamespaceSVF_html_a3011dbac9102f044ad5f36a4ad3d4a71"><div class="ttname"><a href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">SVF::NamedMDNode</a></div><div class="ttdeci">llvm::NamedMDNode NamedMDNode</div><div class="ttdoc">LLVM metadata and debug information.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00109">BasicTypes.h:109</a></div></div>
|
|
3541
3538
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a5a7dc8680a9714e08b01dd339b85bb20"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">SVF::LLVMUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00046">LLVMUtil.h:46</a></div></div>
|
|
3542
3539
|
<div class="ttc" id="anamespaceSVF_html_a28eec26ec8edaa5e96aecfeb01f6c0d4"><div class="ttname"><a href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">SVF::MDString</a></div><div class="ttdeci">llvm::MDString MDString</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
|
|
3543
3540
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a17cce1a11e1bfc342a9e3e79fe35deef"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">SVF::LLVMUtil::isNoCallerFunction</a></div><div class="ttdeci">bool isNoCallerFunction(const Function *fun)</div><div class="ttdoc">Function does not have any possible caller in the call graph.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00195">LLVMUtil.h:195</a></div></div>
|
|
3544
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_afbd60d5443c7fa1448813d00bb5d0fa7"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">SVF::LLVMUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the next instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3541
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_afbd60d5443c7fa1448813d00bb5d0fa7"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">SVF::LLVMUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the next instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00275">LLVMUtil.cpp:275</a></div></div>
|
|
3545
3542
|
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00593">SVFValue.h:593</a></div></div>
|
|
3546
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a003b769751b93b94bdb011bd704cfde1"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">SVF::LLVMUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3543
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a003b769751b93b94bdb011bd704cfde1"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">SVF::LLVMUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00204">LLVMUtil.cpp:204</a></div></div>
|
|
3547
3544
|
<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>
|
|
3548
3545
|
<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>
|
|
3549
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6dd1590b82d2bd86766886bd21bc2b72"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">SVF::LLVMUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3546
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6dd1590b82d2bd86766886bd21bc2b72"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">SVF::LLVMUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00971">LLVMUtil.cpp:971</a></div></div>
|
|
3550
3547
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
3551
3548
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
|
|
3552
3549
|
<div class="ttc" id="anamespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00143">BasicTypes.h:143</a></div></div>
|
|
3553
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a416bcb6da0650f546cb7d83e6be850b6"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a416bcb6da0650f546cb7d83e6be850b6">SVF::LLVMUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const Type *ty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
3550
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a416bcb6da0650f546cb7d83e6be850b6"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a416bcb6da0650f546cb7d83e6be850b6">SVF::LLVMUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const Type *ty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01070">LLVMUtil.cpp:1070</a></div></div>
|
|
3554
3551
|
<!-- start footer part -->
|
|
3555
3552
|
<hr class="footer"/><address class="footer"><small>
|
|
3556
3553
|
Generated by  <a href="http://www.doxygen.org/index.html">
|