svf-tools 1.0.768 → 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/AccessPath_8cpp_source.html +163 -130
- package/SVF-doxygen/html/html/AccessPath_8h_source.html +47 -45
- 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 +9 -9
- package/SVF-doxygen/html/html/ContextDDA_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 +2 -2
- 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/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
- 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/ICFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
- 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 +19 -19
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1108 -1111
- package/SVF-doxygen/html/html/LLVMUtil_8h.html +2 -0
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +191 -172
- 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/PAGBuilderFromFile_8cpp_source.html +2 -2
- 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 +13 -13
- package/SVF-doxygen/html/html/SVFFileSystem_8h_source.html +13 -13
- 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 +56 -56
- package/SVF-doxygen/html/html/SVFIR2ConsExeState_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +831 -749
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +138 -127
- package/SVF-doxygen/html/html/SVFIR2Relation_8cpp_source.html +33 -33
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +11 -11
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +11 -12
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +11 -11
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +806 -799
- 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 +8 -8
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +2 -2
- 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 +52 -62
- 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/VFGNode_8h_source.html +7 -7
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/VFG_8h_source.html +10 -10
- 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_1AccessPath-members.html +27 -26
- package/SVF-doxygen/html/html/classSVF_1_1AccessPath.html +179 -124
- 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 +69 -69
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +52 -52
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
- 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 +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +98 -98
- 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_1ConstraintGraph.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.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 +2 -2
- 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_1FlowDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.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-members.html +96 -95
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +55 -20
- 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 +3 -3
- 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 +19 -19
- 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_1MultiOpndStmt.html +48 -48
- 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_1PAGBuilderFromFile.html +2 -2
- 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 +47 -47
- 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 +36 -36
- 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 +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ConsExeState.html +49 -49
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState-members.html +45 -42
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +962 -780
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +21 -22
- 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 +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +39 -39
- 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 +51 -61
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +45 -45
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +15 -15
- 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_a.html +14 -11
- package/SVF-doxygen/html/html/functions_c.html +24 -21
- package/SVF-doxygen/html/html/functions_f.html +3 -3
- package/SVF-doxygen/html/html/functions_func.html +9 -6
- package/SVF-doxygen/html/html/functions_func_c.html +19 -16
- package/SVF-doxygen/html/html/functions_func_g.html +24 -15
- package/SVF-doxygen/html/html/functions_func_h.html +1 -1
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_s.html +2 -2
- package/SVF-doxygen/html/html/functions_g.html +24 -15
- package/SVF-doxygen/html/html/functions_h.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +3 -3
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- package/SVF-doxygen/html/html/functions_o.html +7 -7
- package/SVF-doxygen/html/html/functions_p.html +12 -12
- package/SVF-doxygen/html/html/functions_r.html +4 -2
- package/SVF-doxygen/html/html/functions_s.html +18 -18
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_w.html +9 -9
- 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 +1058 -1014
- 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_func_s.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_i.html +5 -14
- package/SVF-doxygen/html/html/namespacemembers_s.html +3 -0
- package/SVF-doxygen/html/html/search/all_0.js +158 -152
- package/SVF-doxygen/html/html/search/all_1.js +478 -476
- 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 -536
- 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 -626
- 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 -999
- 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 -348
- 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 -273
- 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 -251
- 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 -819
- 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_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
- 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/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +8 -8
- 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/AbstractExecution/SVFIR2ItvExeState.h +14 -0
- package/svf/include/MemoryModel/AccessPath.h +6 -0
- package/svf/include/SVFIR/SVFStatements.h +10 -0
- package/svf/include/Util/SVFUtil.h +0 -34
- package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +154 -75
- package/svf/lib/MemoryModel/AccessPath.cpp +39 -0
- package/svf/lib/Util/ExtAPI.cpp +0 -6
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +19 -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
|
@@ -210,6 +210,8 @@ Functions</h2></td></tr>
|
|
|
210
210
|
<tr class="separator:a8cd4d6410017b9e5f47f2f88450b78d8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
211
211
|
<tr class="memitem:a523a8c3f9bfaea178733822ac598d552"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a523a8c3f9bfaea178733822ac598d552">removeFunAnnotations</a> (std::vector< <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * > &removedFuncList)</td></tr>
|
|
212
212
|
<tr class="separator:a523a8c3f9bfaea178733822ac598d552"><td class="memSeparator" colspan="2"> </td></tr>
|
|
213
|
+
<tr class="memitem:a276a85b292038a197a525e08e9252c92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a276a85b292038a197a525e08e9252c92">SVFType2ByteSize</a> (const <a class="el" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="el" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</td></tr>
|
|
214
|
+
<tr class="separator:a276a85b292038a197a525e08e9252c92"><td class="memSeparator" colspan="2"> </td></tr>
|
|
213
215
|
<tr class="memitem:a74ed17168bf5946cfb3f17495ec6db99"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a74ed17168bf5946cfb3f17495ec6db99">removeUnusedFuncsAndAnnotations</a> (std::vector< <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * > removedFuncList)</td></tr>
|
|
214
216
|
<tr class="separator:a74ed17168bf5946cfb3f17495ec6db99"><td class="memSeparator" colspan="2"> </td></tr>
|
|
215
217
|
<tr class="memitem:a63222955897ba34e921b9cfd8a2a3619"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">getFunction</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &<a class="el" href="cJSON_8cpp.html#acc128f98d9ceca227038c771308eff39">name</a>)</td></tr>
|
|
@@ -356,40 +358,40 @@ Functions</h2></td></tr>
|
|
|
356
358
|
</div><div class="memdoc">
|
|
357
359
|
<p>Return true if the function has a return instruction reachable from function entry </p>
|
|
358
360
|
|
|
359
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
360
|
-
<div class="fragment"><div class="line"><a name="
|
|
361
|
-
<div class="line"><a name="
|
|
362
|
-
<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="
|
|
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>
|
|
393
395
|
</div><!-- fragment -->
|
|
394
396
|
</div>
|
|
395
397
|
</div>
|
|
@@ -412,13 +414,13 @@ Functions</h2></td></tr>
|
|
|
412
414
|
<p>Get num of BB's predecessors. </p>
|
|
413
415
|
<p>Get the num of BB's predecessors </p>
|
|
414
416
|
|
|
415
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
416
|
-
<div class="fragment"><div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="
|
|
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>
|
|
422
424
|
</div><!-- fragment -->
|
|
423
425
|
</div>
|
|
424
426
|
</div>
|
|
@@ -440,24 +442,24 @@ Functions</h2></td></tr>
|
|
|
440
442
|
|
|
441
443
|
<p>Get all called funcions in a parent function. </p>
|
|
442
444
|
|
|
443
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
444
|
-
<div class="fragment"><div class="line"><a name="
|
|
445
|
-
<div class="line"><a name="
|
|
446
|
-
<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="
|
|
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>
|
|
461
463
|
</div><!-- fragment -->
|
|
462
464
|
</div>
|
|
463
465
|
</div>
|
|
@@ -510,29 +512,29 @@ Functions</h2></td></tr>
|
|
|
510
512
|
</table>
|
|
511
513
|
</div><div class="memdoc">
|
|
512
514
|
|
|
513
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
514
|
-
<div class="fragment"><div class="line"><a name="
|
|
515
|
-
<div class="line"><a name="
|
|
516
|
-
<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="
|
|
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>
|
|
536
538
|
</div><!-- fragment -->
|
|
537
539
|
</div>
|
|
538
540
|
</div>
|
|
@@ -552,32 +554,32 @@ Functions</h2></td></tr>
|
|
|
552
554
|
</table>
|
|
553
555
|
</div><div class="memdoc">
|
|
554
556
|
|
|
555
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
556
|
-
<div class="fragment"><div class="line"><a name="
|
|
557
|
-
<div class="line"><a name="
|
|
558
|
-
<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="
|
|
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>
|
|
581
583
|
</div><!-- fragment -->
|
|
582
584
|
</div>
|
|
583
585
|
</div>
|
|
@@ -597,14 +599,14 @@ Functions</h2></td></tr>
|
|
|
597
599
|
</table>
|
|
598
600
|
</div><div class="memdoc">
|
|
599
601
|
|
|
600
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
601
|
-
<div class="fragment"><div class="line"><a name="
|
|
602
|
-
<div class="line"><a name="
|
|
603
|
-
<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="
|
|
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>
|
|
608
610
|
</div><!-- fragment -->
|
|
609
611
|
</div>
|
|
610
612
|
</div>
|
|
@@ -696,46 +698,46 @@ Functions</h2></td></tr>
|
|
|
696
698
|
</table>
|
|
697
699
|
</div><div class="memdoc">
|
|
698
700
|
|
|
699
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
700
|
-
<div class="fragment"><div class="line"><a name="
|
|
701
|
-
<div class="line"><a name="
|
|
702
|
-
<div class="line"><a name="
|
|
703
|
-
<div class="line"><a name="
|
|
704
|
-
<div class="line"><a name="
|
|
705
|
-
<div class="line"><a name="
|
|
706
|
-
<div class="line"><a name="
|
|
707
|
-
<div class="line"><a name="
|
|
708
|
-
<div class="line"><a name="
|
|
709
|
-
<div class="line"><a name="
|
|
710
|
-
<div class="line"><a name="
|
|
711
|
-
<div class="line"><a name="
|
|
712
|
-
<div class="line"><a name="
|
|
713
|
-
<div class="line"><a name="
|
|
714
|
-
<div class="line"><a name="
|
|
715
|
-
<div class="line"><a name="
|
|
716
|
-
<div class="line"><a name="
|
|
717
|
-
<div class="line"><a name="
|
|
718
|
-
<div class="line"><a name="
|
|
719
|
-
<div class="line"><a name="
|
|
720
|
-
<div class="line"><a name="
|
|
721
|
-
<div class="line"><a name="
|
|
722
|
-
<div class="line"><a name="
|
|
723
|
-
<div class="line"><a name="
|
|
724
|
-
<div class="line"><a name="
|
|
725
|
-
<div class="line"><a name="
|
|
726
|
-
<div class="line"><a name="
|
|
727
|
-
<div class="line"><a name="
|
|
728
|
-
<div class="line"><a name="
|
|
729
|
-
<div class="line"><a name="
|
|
730
|
-
<div class="line"><a name="
|
|
731
|
-
<div class="line"><a name="
|
|
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="
|
|
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>
|
|
739
741
|
</div><!-- fragment -->
|
|
740
742
|
</div>
|
|
741
743
|
</div>
|
|
@@ -765,10 +767,10 @@ Functions</h2></td></tr>
|
|
|
765
767
|
|
|
766
768
|
<p>Get the corresponding Function based on its name. </p>
|
|
767
769
|
|
|
768
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
769
|
-
<div class="fragment"><div class="line"><a name="
|
|
770
|
-
<div class="line"><a name="
|
|
771
|
-
<div class="line"><a name="
|
|
770
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00407">407</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
771
|
+
<div class="fragment"><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> {</div>
|
|
772
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">return</span> LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>);</div>
|
|
773
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> }</div>
|
|
772
774
|
</div><!-- fragment -->
|
|
773
775
|
</div>
|
|
774
776
|
</div>
|
|
@@ -788,16 +790,16 @@ Functions</h2></td></tr>
|
|
|
788
790
|
</table>
|
|
789
791
|
</div><div class="memdoc">
|
|
790
792
|
|
|
791
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
792
|
-
<div class="fragment"><div class="line"><a name="
|
|
793
|
-
<div class="line"><a name="
|
|
794
|
-
<div class="line"><a name="
|
|
795
|
-
<div class="line"><a name="
|
|
796
|
-
<div class="line"><a name="
|
|
797
|
-
<div class="line"><a name="
|
|
798
|
-
<div class="line"><a name="
|
|
799
|
-
<div class="line"><a name="
|
|
800
|
-
<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>
|
|
801
803
|
</div><!-- fragment -->
|
|
802
804
|
</div>
|
|
803
805
|
</div>
|
|
@@ -830,37 +832,37 @@ Functions</h2></td></tr>
|
|
|
830
832
|
<p>Get reachable basic block from function entry. </p>
|
|
831
833
|
<p>Return reachable bbs from function entry </p>
|
|
832
834
|
|
|
833
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
834
|
-
<div class="fragment"><div class="line"><a name="
|
|
835
|
-
<div class="line"><a name="
|
|
836
|
-
<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="
|
|
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>
|
|
864
866
|
</div><!-- fragment -->
|
|
865
867
|
</div>
|
|
866
868
|
</div>
|
|
@@ -890,15 +892,15 @@ Functions</h2></td></tr>
|
|
|
890
892
|
|
|
891
893
|
<p>find the unique defined global across multiple modules </p>
|
|
892
894
|
|
|
893
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
894
|
-
<div class="fragment"><div class="line"><a name="
|
|
895
|
-
<div class="line"><a name="
|
|
896
|
-
<div class="line"><a name="
|
|
897
|
-
<div class="line"><a name="
|
|
898
|
-
<div class="line"><a name="
|
|
899
|
-
<div class="line"><a name="
|
|
900
|
-
<div class="line"><a name="
|
|
901
|
-
<div class="line"><a name="
|
|
895
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00420">420</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
896
|
+
<div class="fragment"><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> {</div>
|
|
897
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</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>
|
|
898
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div>
|
|
899
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">if</span> (LLVMModuleSet::getLLVMModuleSet()->hasGlobalRep(gvar))</div>
|
|
900
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  val = LLVMModuleSet::getLLVMModuleSet()->getGlobalRep(gvar);</div>
|
|
901
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div>
|
|
902
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">return</span> val;</div>
|
|
903
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> }</div>
|
|
902
904
|
</div><!-- fragment -->
|
|
903
905
|
</div>
|
|
904
906
|
</div>
|
|
@@ -997,30 +999,30 @@ Functions</h2></td></tr>
|
|
|
997
999
|
|
|
998
1000
|
<p>Get the next instructions following control flow. </p>
|
|
999
1001
|
|
|
1000
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1001
|
-
<div class="fragment"><div class="line"><a name="
|
|
1002
|
-
<div class="line"><a name="
|
|
1003
|
-
<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="
|
|
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>
|
|
1024
1026
|
</div><!-- fragment -->
|
|
1025
1027
|
</div>
|
|
1026
1028
|
</div>
|
|
@@ -1052,32 +1054,32 @@ Functions</h2></td></tr>
|
|
|
1052
1054
|
|
|
1053
1055
|
<p>Get the next instructions following control flow. </p>
|
|
1054
1056
|
|
|
1055
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1056
|
-
<div class="fragment"><div class="line"><a name="
|
|
1057
|
-
<div class="line"><a name="
|
|
1058
|
-
<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="
|
|
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>
|
|
1081
1083
|
</div><!-- fragment -->
|
|
1082
1084
|
</div>
|
|
1083
1085
|
</div>
|
|
@@ -1109,30 +1111,30 @@ Functions</h2></td></tr>
|
|
|
1109
1111
|
|
|
1110
1112
|
<p>Get the previous instructions following control flow. </p>
|
|
1111
1113
|
|
|
1112
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1113
|
-
<div class="fragment"><div class="line"><a name="
|
|
1114
|
-
<div class="line"><a name="
|
|
1115
|
-
<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="
|
|
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>
|
|
1136
1138
|
</div><!-- fragment -->
|
|
1137
1139
|
</div>
|
|
1138
1140
|
</div>
|
|
@@ -1164,33 +1166,33 @@ Functions</h2></td></tr>
|
|
|
1164
1166
|
|
|
1165
1167
|
<p>Get the previous instructions following control flow. </p>
|
|
1166
1168
|
|
|
1167
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1168
|
-
<div class="fragment"><div class="line"><a name="
|
|
1169
|
-
<div class="line"><a name="
|
|
1170
|
-
<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="
|
|
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>
|
|
1194
1196
|
</div><!-- fragment -->
|
|
1195
1197
|
</div>
|
|
1196
1198
|
</div>
|
|
@@ -1310,10 +1312,10 @@ Functions</h2></td></tr>
|
|
|
1310
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>
|
|
1311
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>
|
|
1312
1314
|
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div>
|
|
1313
|
-
<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>
|
|
1314
1316
|
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">else</span></div>
|
|
1315
1317
|
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  {</div>
|
|
1316
|
-
<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>
|
|
1317
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>
|
|
1318
1320
|
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  refType = SVFUtil::dyn_cast<PointerType>(cs->getType());</div>
|
|
1319
1321
|
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div>
|
|
@@ -1372,105 +1374,105 @@ Functions</h2></td></tr>
|
|
|
1372
1374
|
</div><div class="memdoc">
|
|
1373
1375
|
<p>Get the meta data (line number and file name) info of a LLVM value </p>
|
|
1374
1376
|
|
|
1375
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1376
|
-
<div class="fragment"><div class="line"><a name="
|
|
1377
|
-
<div class="line"><a name="
|
|
1378
|
-
<div class="line"><a name="
|
|
1379
|
-
<div class="line"><a name="
|
|
1380
|
-
<div class="line"><a name="
|
|
1381
|
-
<div class="line"><a name="
|
|
1382
|
-
<div class="line"><a name="
|
|
1383
|
-
<div class="line"><a name="
|
|
1384
|
-
<div class="line"><a name="
|
|
1385
|
-
<div class="line"><a name="
|
|
1386
|
-
<div class="line"><a name="
|
|
1387
|
-
<div class="line"><a name="
|
|
1388
|
-
<div class="line"><a name="
|
|
1389
|
-
<div class="line"><a name="
|
|
1390
|
-
<div class="line"><a name="
|
|
1391
|
-
<div class="line"><a name="
|
|
1392
|
-
<div class="line"><a name="
|
|
1393
|
-
<div class="line"><a name="
|
|
1394
|
-
<div class="line"><a name="
|
|
1395
|
-
<div class="line"><a name="
|
|
1396
|
-
<div class="line"><a name="
|
|
1397
|
-
<div class="line"><a name="
|
|
1398
|
-
<div class="line"><a name="
|
|
1399
|
-
<div class="line"><a name="
|
|
1400
|
-
<div class="line"><a name="
|
|
1401
|
-
<div class="line"><a name="
|
|
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="
|
|
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>
|
|
1474
1476
|
</div><!-- fragment -->
|
|
1475
1477
|
</div>
|
|
1476
1478
|
</div>
|
|
@@ -1491,21 +1493,21 @@ Functions</h2></td></tr>
|
|
|
1491
1493
|
</div><div class="memdoc">
|
|
1492
1494
|
<p>Get source code line number of a function according to debug info </p>
|
|
1493
1495
|
|
|
1494
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1495
|
-
<div class="fragment"><div class="line"><a name="
|
|
1496
|
-
<div class="line"><a name="
|
|
1497
|
-
<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="
|
|
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>
|
|
1509
1511
|
</div><!-- fragment -->
|
|
1510
1512
|
</div>
|
|
1511
1513
|
</div>
|
|
@@ -1525,27 +1527,27 @@ Functions</h2></td></tr>
|
|
|
1525
1527
|
</table>
|
|
1526
1528
|
</div><div class="memdoc">
|
|
1527
1529
|
|
|
1528
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1529
|
-
<div class="fragment"><div class="line"><a name="
|
|
1530
|
-
<div class="line"><a name="
|
|
1531
|
-
<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="
|
|
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>
|
|
1549
1551
|
</div><!-- fragment -->
|
|
1550
1552
|
</div>
|
|
1551
1553
|
</div>
|
|
@@ -1568,33 +1570,33 @@ Functions</h2></td></tr>
|
|
|
1568
1570
|
<p>Get the type of the heap allocation. </p>
|
|
1569
1571
|
<p>Return the type of the object from a heap allocation </p>
|
|
1570
1572
|
|
|
1571
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1572
|
-
<div class="fragment"><div class="line"><a name="
|
|
1573
|
-
<div class="line"><a name="
|
|
1574
|
-
<div class="line"><a name="
|
|
1575
|
-
<div class="line"><a name="
|
|
1576
|
-
<div class="line"><a name="
|
|
1577
|
-
<div class="line"><a name="
|
|
1578
|
-
<div class="line"><a name="
|
|
1579
|
-
<div class="line"><a name="
|
|
1580
|
-
<div class="line"><a name="
|
|
1581
|
-
<div class="line"><a name="
|
|
1582
|
-
<div class="line"><a name="
|
|
1583
|
-
<div class="line"><a name="
|
|
1584
|
-
<div class="line"><a name="
|
|
1585
|
-
<div class="line"><a name="
|
|
1586
|
-
<div class="line"><a name="
|
|
1587
|
-
<div class="line"><a name="
|
|
1588
|
-
<div class="line"><a name="
|
|
1589
|
-
<div class="line"><a name="
|
|
1590
|
-
<div class="line"><a name="
|
|
1591
|
-
<div class="line"><a name="
|
|
1592
|
-
<div class="line"><a name="
|
|
1593
|
-
<div class="line"><a name="
|
|
1594
|
-
<div class="line"><a name="
|
|
1595
|
-
<div class="line"><a name="
|
|
1596
|
-
<div class="line"><a name="
|
|
1597
|
-
<div class="line"><a name="
|
|
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>
|
|
1598
1600
|
</div><!-- fragment -->
|
|
1599
1601
|
</div>
|
|
1600
1602
|
</div>
|
|
@@ -1625,15 +1627,15 @@ Functions</h2></td></tr>
|
|
|
1625
1627
|
</div><div class="memdoc">
|
|
1626
1628
|
<p>if this struct type does not have any element, i.e., opaque</p>
|
|
1627
1629
|
|
|
1628
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1629
|
-
<div class="fragment"><div class="line"><a name="
|
|
1630
|
-
<div class="line"><a name="
|
|
1631
|
-
<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="
|
|
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>
|
|
1637
1639
|
</div><!-- fragment -->
|
|
1638
1640
|
</div>
|
|
1639
1641
|
</div>
|
|
@@ -1655,15 +1657,15 @@ Functions</h2></td></tr>
|
|
|
1655
1657
|
|
|
1656
1658
|
<p>Helper method to get the size of the type from target data layout. </p>
|
|
1657
1659
|
|
|
1658
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1659
|
-
<div class="fragment"><div class="line"><a name="
|
|
1660
|
-
<div class="line"><a name="
|
|
1661
|
-
<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="
|
|
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>
|
|
1667
1669
|
</div><!-- fragment -->
|
|
1668
1670
|
</div>
|
|
1669
1671
|
</div>
|
|
@@ -1685,20 +1687,20 @@ Functions</h2></td></tr>
|
|
|
1685
1687
|
<p>Return the bitcast instruction which is val's only use site, otherwise return nullptr </p>
|
|
1686
1688
|
<p>If type is void* (i8*) and val is only used at a bitcast instruction</p>
|
|
1687
1689
|
|
|
1688
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1689
|
-
<div class="fragment"><div class="line"><a name="
|
|
1690
|
-
<div class="line"><a name="
|
|
1691
|
-
<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="
|
|
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>
|
|
1702
1704
|
</div><!-- fragment -->
|
|
1703
1705
|
</div>
|
|
1704
1706
|
</div>
|
|
@@ -1718,28 +1720,28 @@ Functions</h2></td></tr>
|
|
|
1718
1720
|
</table>
|
|
1719
1721
|
</div><div class="memdoc">
|
|
1720
1722
|
|
|
1721
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1722
|
-
<div class="fragment"><div class="line"><a name="
|
|
1723
|
-
<div class="line"><a name="
|
|
1724
|
-
<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="
|
|
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>
|
|
1743
1745
|
</div><!-- fragment -->
|
|
1744
1746
|
</div>
|
|
1745
1747
|
</div>
|
|
@@ -1759,17 +1761,17 @@ Functions</h2></td></tr>
|
|
|
1759
1761
|
</table>
|
|
1760
1762
|
</div><div class="memdoc">
|
|
1761
1763
|
|
|
1762
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1763
|
-
<div class="fragment"><div class="line"><a name="
|
|
1764
|
-
<div class="line"><a name="
|
|
1765
|
-
<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="
|
|
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>
|
|
1773
1775
|
</div><!-- fragment -->
|
|
1774
1776
|
</div>
|
|
1775
1777
|
</div>
|
|
@@ -1789,18 +1791,18 @@ Functions</h2></td></tr>
|
|
|
1789
1791
|
</table>
|
|
1790
1792
|
</div><div class="memdoc">
|
|
1791
1793
|
|
|
1792
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1793
|
-
<div class="fragment"><div class="line"><a name="
|
|
1794
|
-
<div class="line"><a name="
|
|
1795
|
-
<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="
|
|
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>
|
|
1804
1806
|
</div><!-- fragment -->
|
|
1805
1807
|
</div>
|
|
1806
1808
|
</div>
|
|
@@ -1820,18 +1822,18 @@ Functions</h2></td></tr>
|
|
|
1820
1822
|
</table>
|
|
1821
1823
|
</div><div class="memdoc">
|
|
1822
1824
|
|
|
1823
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
1824
|
-
<div class="fragment"><div class="line"><a name="
|
|
1825
|
-
<div class="line"><a name="
|
|
1826
|
-
<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="
|
|
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>
|
|
1835
1837
|
</div><!-- fragment -->
|
|
1836
1838
|
</div>
|
|
1837
1839
|
</div>
|
|
@@ -2096,10 +2098,10 @@ Functions</h2></td></tr>
|
|
|
2096
2098
|
|
|
2097
2099
|
<p>Check whether this value points-to a constant object. </p>
|
|
2098
2100
|
|
|
2099
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2100
|
-
<div class="fragment"><div class="line"><a name="
|
|
2101
|
-
<div class="line"><a name="
|
|
2102
|
-
<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>
|
|
2103
2105
|
</div><!-- fragment -->
|
|
2104
2106
|
</div>
|
|
2105
2107
|
</div>
|
|
@@ -2122,33 +2124,33 @@ Functions</h2></td></tr>
|
|
|
2122
2124
|
<p>Check whether this value points-to a constant object. </p>
|
|
2123
2125
|
<p>Check whether this value points-to a constant object </p>
|
|
2124
2126
|
|
|
2125
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2126
|
-
<div class="fragment"><div class="line"><a name="
|
|
2127
|
-
<div class="line"><a name="
|
|
2128
|
-
<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="
|
|
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>
|
|
2152
2154
|
</div><!-- fragment -->
|
|
2153
2155
|
</div>
|
|
2154
2156
|
</div>
|
|
@@ -2178,11 +2180,11 @@ Functions</h2></td></tr>
|
|
|
2178
2180
|
|
|
2179
2181
|
<p>Return true if the value refers to constant data, e.g., i32 0. </p>
|
|
2180
2182
|
|
|
2181
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2182
|
-
<div class="fragment"><div class="line"><a name="
|
|
2183
|
-
<div class="line"><a name="
|
|
2184
|
-
<div class="line"><a name="
|
|
2185
|
-
<div class="line"><a name="
|
|
2183
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00413">413</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2184
|
+
<div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> {</div>
|
|
2185
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a><<a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>, <a class="code" href="namespaceSVF.html#a7cbe1c6567039e72958fd70e423d3597">ConstantAggregate</a>,</div>
|
|
2186
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="namespaceSVF.html#a773900ea3c75022657aac1abf59fa51b">MetadataAsValue</a>, <a class="code" href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">BlockAddress</a>>(val);</div>
|
|
2187
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> }</div>
|
|
2186
2188
|
</div><!-- fragment -->
|
|
2187
2189
|
</div>
|
|
2188
2190
|
</div>
|
|
@@ -2203,35 +2205,35 @@ Functions</h2></td></tr>
|
|
|
2203
2205
|
</div><div class="memdoc">
|
|
2204
2206
|
<p>TODO: on mac os function name is an empty string after demangling</p>
|
|
2205
2207
|
|
|
2206
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2207
|
-
<div class="fragment"><div class="line"><a name="
|
|
2208
|
-
<div class="line"><a name="
|
|
2209
|
-
<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="
|
|
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>
|
|
2235
2237
|
</div><!-- fragment -->
|
|
2236
2238
|
</div>
|
|
2237
2239
|
</div>
|
|
@@ -2251,11 +2253,11 @@ Functions</h2></td></tr>
|
|
|
2251
2253
|
</table>
|
|
2252
2254
|
</div><div class="memdoc">
|
|
2253
2255
|
|
|
2254
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2255
|
-
<div class="fragment"><div class="line"><a name="
|
|
2256
|
-
<div class="line"><a name="
|
|
2257
|
-
<div class="line"><a name="
|
|
2258
|
-
<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>
|
|
2259
2261
|
</div><!-- fragment -->
|
|
2260
2262
|
</div>
|
|
2261
2263
|
</div>
|
|
@@ -2275,37 +2277,37 @@ Functions</h2></td></tr>
|
|
|
2275
2277
|
</table>
|
|
2276
2278
|
</div><div class="memdoc">
|
|
2277
2279
|
|
|
2278
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2279
|
-
<div class="fragment"><div class="line"><a name="
|
|
2280
|
-
<div class="line"><a name="
|
|
2281
|
-
<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="
|
|
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>
|
|
2309
2311
|
</div><!-- fragment -->
|
|
2310
2312
|
</div>
|
|
2311
2313
|
</div>
|
|
@@ -2399,18 +2401,18 @@ Functions</h2></td></tr>
|
|
|
2399
2401
|
</table>
|
|
2400
2402
|
</div><div class="memdoc">
|
|
2401
2403
|
|
|
2402
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2403
|
-
<div class="fragment"><div class="line"><a name="
|
|
2404
|
-
<div class="line"><a name="
|
|
2405
|
-
<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="
|
|
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>
|
|
2414
2416
|
</div><!-- fragment -->
|
|
2415
2417
|
</div>
|
|
2416
2418
|
</div>
|
|
@@ -2432,18 +2434,18 @@ Functions</h2></td></tr>
|
|
|
2432
2434
|
|
|
2433
2435
|
<p>Return true if it is an intrinsic instruction. </p>
|
|
2434
2436
|
|
|
2435
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2436
|
-
<div class="fragment"><div class="line"><a name="
|
|
2437
|
-
<div class="line"><a name="
|
|
2438
|
-
<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="
|
|
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>
|
|
2447
2449
|
</div><!-- fragment -->
|
|
2448
2450
|
</div>
|
|
2449
2451
|
</div>
|
|
@@ -2465,19 +2467,19 @@ Functions</h2></td></tr>
|
|
|
2465
2467
|
|
|
2466
2468
|
<p>Check whether a file is an LLVM IR file. </p>
|
|
2467
2469
|
|
|
2468
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2469
|
-
<div class="fragment"><div class="line"><a name="
|
|
2470
|
-
<div class="line"><a name="
|
|
2471
|
-
<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="
|
|
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>
|
|
2481
2483
|
</div><!-- fragment -->
|
|
2482
2484
|
</div>
|
|
2483
2485
|
</div>
|
|
@@ -2497,29 +2499,29 @@ Functions</h2></td></tr>
|
|
|
2497
2499
|
</table>
|
|
2498
2500
|
</div><div class="memdoc">
|
|
2499
2501
|
|
|
2500
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2501
|
-
<div class="fragment"><div class="line"><a name="
|
|
2502
|
-
<div class="line"><a name="
|
|
2503
|
-
<div class="line"><a name="
|
|
2504
|
-
<div class="line"><a name="
|
|
2505
|
-
<div class="line"><a name="
|
|
2506
|
-
<div class="line"><a name="
|
|
2507
|
-
<div class="line"><a name="
|
|
2508
|
-
<div class="line"><a name="
|
|
2509
|
-
<div class="line"><a name="
|
|
2510
|
-
<div class="line"><a name="
|
|
2511
|
-
<div class="line"><a name="
|
|
2512
|
-
<div class="line"><a name="
|
|
2513
|
-
<div class="line"><a name="
|
|
2514
|
-
<div class="line"><a name="
|
|
2515
|
-
<div class="line"><a name="
|
|
2516
|
-
<div class="line"><a name="
|
|
2517
|
-
<div class="line"><a name="
|
|
2518
|
-
<div class="line"><a name="
|
|
2519
|
-
<div class="line"><a name="
|
|
2520
|
-
<div class="line"><a name="
|
|
2521
|
-
<div class="line"><a name="
|
|
2522
|
-
<div class="line"><a name="
|
|
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>
|
|
2523
2525
|
</div><!-- fragment -->
|
|
2524
2526
|
</div>
|
|
2525
2527
|
</div>
|
|
@@ -2611,17 +2613,15 @@ Functions</h2></td></tr>
|
|
|
2611
2613
|
|
|
2612
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>
|
|
2613
2615
|
<div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
|
|
2614
|
-
<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>
|
|
2615
2617
|
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2616
|
-
<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>
|
|
2617
2619
|
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2618
|
-
<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>
|
|
2619
2621
|
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2620
|
-
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> 
|
|
2621
|
-
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> 
|
|
2622
|
-
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> 
|
|
2623
|
-
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2624
|
-
<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>
|
|
2625
2625
|
</div><!-- fragment -->
|
|
2626
2626
|
</div>
|
|
2627
2627
|
</div>
|
|
@@ -2713,20 +2713,20 @@ Functions</h2></td></tr>
|
|
|
2713
2713
|
<p>Return true if this is value in a dead function (function without any caller) </p>
|
|
2714
2714
|
<p>Return true if this is a value in a dead function (function without any caller) </p>
|
|
2715
2715
|
|
|
2716
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2717
|
-
<div class="fragment"><div class="line"><a name="
|
|
2718
|
-
<div class="line"><a name="
|
|
2719
|
-
<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="
|
|
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>
|
|
2730
2730
|
</div><!-- fragment -->
|
|
2731
2731
|
</div>
|
|
2732
2732
|
</div>
|
|
@@ -2758,28 +2758,28 @@ Functions</h2></td></tr>
|
|
|
2758
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>
|
|
2759
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>
|
|
2760
2760
|
|
|
2761
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2762
|
-
<div class="fragment"><div class="line"><a name="
|
|
2763
|
-
<div class="line"><a name="
|
|
2764
|
-
<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="
|
|
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>
|
|
2783
2783
|
</div><!-- fragment -->
|
|
2784
2784
|
</div>
|
|
2785
2785
|
</div>
|
|
@@ -2916,35 +2916,35 @@ Functions</h2></td></tr>
|
|
|
2916
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>
|
|
2917
2917
|
<p>Return true if this is a function without any possible caller </p>
|
|
2918
2918
|
|
|
2919
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2920
|
-
<div class="fragment"><div class="line"><a name="
|
|
2921
|
-
<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>
|
|
2922
2924
|
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2923
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">
|
|
2924
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> 
|
|
2925
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> 
|
|
2926
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> 
|
|
2927
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> 
|
|
2928
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> 
|
|
2929
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> 
|
|
2930
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> 
|
|
2931
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> 
|
|
2932
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> 
|
|
2933
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> 
|
|
2934
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> 
|
|
2935
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> 
|
|
2936
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> 
|
|
2937
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">
|
|
2938
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> 
|
|
2939
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> 
|
|
2940
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
2941
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> 
|
|
2942
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> 
|
|
2943
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
2944
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> 
|
|
2945
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> 
|
|
2946
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2947
|
-
<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>
|
|
2948
2948
|
</div><!-- fragment -->
|
|
2949
2949
|
</div>
|
|
2950
2950
|
</div>
|
|
@@ -2964,14 +2964,14 @@ Functions</h2></td></tr>
|
|
|
2964
2964
|
</table>
|
|
2965
2965
|
</div><div class="memdoc">
|
|
2966
2966
|
|
|
2967
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2968
|
-
<div class="fragment"><div class="line"><a name="
|
|
2969
|
-
<div class="line"><a name="
|
|
2970
|
-
<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="
|
|
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>
|
|
2975
2975
|
</div><!-- fragment -->
|
|
2976
2976
|
</div>
|
|
2977
2977
|
</div>
|
|
@@ -2991,36 +2991,36 @@ Functions</h2></td></tr>
|
|
|
2991
2991
|
</table>
|
|
2992
2992
|
</div><div class="memdoc">
|
|
2993
2993
|
|
|
2994
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
2995
|
-
<div class="fragment"><div class="line"><a name="
|
|
2996
|
-
<div class="line"><a name="
|
|
2997
|
-
<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="
|
|
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>
|
|
3024
3024
|
</div><!-- fragment -->
|
|
3025
3025
|
</div>
|
|
3026
3026
|
</div>
|
|
@@ -3042,12 +3042,12 @@ template<typename T > </div>
|
|
|
3042
3042
|
</table>
|
|
3043
3043
|
</div><div class="memdoc">
|
|
3044
3044
|
|
|
3045
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
3046
|
-
<div class="fragment"><div class="line"><a name="
|
|
3047
|
-
<div class="line"><a name="
|
|
3048
|
-
<div class="line"><a name="
|
|
3049
|
-
<div class="line"><a name="
|
|
3050
|
-
<div class="line"><a name="
|
|
3045
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00516">516</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
3046
|
+
<div class="fragment"><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> {</div>
|
|
3047
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
3048
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  llvm::raw_string_ostream(str) << val;</div>
|
|
3049
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">return</span> str;</div>
|
|
3050
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> }</div>
|
|
3051
3051
|
</div><!-- fragment -->
|
|
3052
3052
|
</div>
|
|
3053
3053
|
</div>
|
|
@@ -3098,31 +3098,31 @@ template<typename T > </div>
|
|
|
3098
3098
|
<p>Parse argument for multi-module analysis. </p>
|
|
3099
3099
|
<p>Get the names of all modules into a vector And process arguments </p>
|
|
3100
3100
|
|
|
3101
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3102
|
-
<div class="fragment"><div class="line"><a name="
|
|
3103
|
-
<div class="line"><a name="
|
|
3104
|
-
<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="
|
|
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>
|
|
3126
3126
|
</div><!-- fragment -->
|
|
3127
3127
|
</div>
|
|
3128
3128
|
</div>
|
|
@@ -3142,66 +3142,66 @@ template<typename T > </div>
|
|
|
3142
3142
|
</table>
|
|
3143
3143
|
</div><div class="memdoc">
|
|
3144
3144
|
|
|
3145
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3146
|
-
<div class="fragment"><div class="line"><a name="
|
|
3147
|
-
<div class="line"><a name="
|
|
3148
|
-
<div class="line"><a name="
|
|
3149
|
-
<div class="line"><a name="
|
|
3150
|
-
<div class="line"><a name="
|
|
3151
|
-
<div class="line"><a name="
|
|
3152
|
-
<div class="line"><a name="
|
|
3153
|
-
<div class="line"><a name="
|
|
3154
|
-
<div class="line"><a name="
|
|
3155
|
-
<div class="line"><a name="
|
|
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="
|
|
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>
|
|
3205
3205
|
</div><!-- fragment -->
|
|
3206
3206
|
</div>
|
|
3207
3207
|
</div>
|
|
@@ -3231,12 +3231,12 @@ template<typename T > </div>
|
|
|
3231
3231
|
<p>Remove unused function annotations in extapi.bc</p>
|
|
3232
3232
|
<p>Remove unused function in extapi.bc</p>
|
|
3233
3233
|
|
|
3234
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
3235
|
-
<div class="fragment"><div class="line"><a name="
|
|
3236
|
-
<div class="line"><a name="
|
|
3237
|
-
<div class="line"><a name="
|
|
3238
|
-
<div class="line"><a name="
|
|
3239
|
-
<div class="line"><a name="
|
|
3234
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00397">397</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
3235
|
+
<div class="fragment"><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> {</div>
|
|
3236
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a523a8c3f9bfaea178733822ac598d552">LLVMUtil::removeFunAnnotations</a>(removedFuncList);</div>
|
|
3237
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func : removedFuncList)</div>
|
|
3238
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  func->eraseFromParent();</div>
|
|
3239
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> }</div>
|
|
3240
3240
|
</div><!-- fragment -->
|
|
3241
3241
|
</div>
|
|
3242
3242
|
</div>
|
|
@@ -3259,28 +3259,28 @@ template<typename T > </div>
|
|
|
3259
3259
|
<p>Strip off the all casts. </p>
|
|
3260
3260
|
<p>Strip all casts </p>
|
|
3261
3261
|
|
|
3262
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3263
|
-
<div class="fragment"><div class="line"><a name="
|
|
3264
|
-
<div class="line"><a name="
|
|
3265
|
-
<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="
|
|
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>
|
|
3284
3284
|
</div><!-- fragment -->
|
|
3285
3285
|
</div>
|
|
3286
3286
|
</div>
|
|
@@ -3303,17 +3303,60 @@ template<typename T > </div>
|
|
|
3303
3303
|
<p>Strip off the constant casts. </p>
|
|
3304
3304
|
<p>Strip constant casts </p>
|
|
3305
3305
|
|
|
3306
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3307
|
-
<div class="fragment"><div class="line"><a name="
|
|
3308
|
-
<div class="line"><a name="
|
|
3309
|
-
<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="
|
|
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>
|
|
3317
|
+
</div><!-- fragment -->
|
|
3318
|
+
</div>
|
|
3319
|
+
</div>
|
|
3320
|
+
<a id="a276a85b292038a197a525e08e9252c92"></a>
|
|
3321
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a276a85b292038a197a525e08e9252c92">◆ </a></span>SVFType2ByteSize()</h2>
|
|
3322
|
+
|
|
3323
|
+
<div class="memitem">
|
|
3324
|
+
<div class="memproto">
|
|
3325
|
+
<table class="mlabels">
|
|
3326
|
+
<tr>
|
|
3327
|
+
<td class="mlabels-left">
|
|
3328
|
+
<table class="memname">
|
|
3329
|
+
<tr>
|
|
3330
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> SVF::LLVMUtil::SVFType2ByteSize </td>
|
|
3331
|
+
<td>(</td>
|
|
3332
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1SVFType.html">SVFType</a> * </td>
|
|
3333
|
+
<td class="paramname"><em>type</em></td><td>)</td>
|
|
3334
|
+
<td></td>
|
|
3335
|
+
</tr>
|
|
3336
|
+
</table>
|
|
3337
|
+
</td>
|
|
3338
|
+
<td class="mlabels-right">
|
|
3339
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
3340
|
+
</tr>
|
|
3341
|
+
</table>
|
|
3342
|
+
</div><div class="memdoc">
|
|
3343
|
+
|
|
3344
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00380">380</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
3345
|
+
<div class="fragment"><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> {</div>
|
|
3346
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* llvm_rhs = LLVMModuleSet::getLLVMModuleSet()->getLLVMType(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
|
|
3347
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> llvm_rhs_size = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2b5fdf455c5dd40c0baa60185e5e41c6">LLVMUtil::getTypeSizeInBytes</a>(llvm_rhs->getPointerElementType());</div>
|
|
3348
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> llvm_elem_size = -1;</div>
|
|
3349
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">if</span> (llvm_rhs->getPointerElementType()->isArrayTy() && llvm_rhs_size > 0)</div>
|
|
3350
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  {</div>
|
|
3351
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordtype">size_t</span> array_len = llvm_rhs->getPointerElementType()->getArrayNumElements();</div>
|
|
3352
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  llvm_elem_size = llvm_rhs_size / array_len;</div>
|
|
3353
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div>
|
|
3354
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">else</span></div>
|
|
3355
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  {</div>
|
|
3356
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  llvm_elem_size =llvm_rhs_size;</div>
|
|
3357
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  }</div>
|
|
3358
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">return</span> llvm_elem_size;</div>
|
|
3359
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> }</div>
|
|
3317
3360
|
</div><!-- fragment -->
|
|
3318
3361
|
</div>
|
|
3319
3362
|
</div>
|
|
@@ -3333,18 +3376,18 @@ template<typename T > </div>
|
|
|
3333
3376
|
</table>
|
|
3334
3377
|
</div><div class="memdoc">
|
|
3335
3378
|
|
|
3336
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3337
|
-
<div class="fragment"><div class="line"><a name="
|
|
3338
|
-
<div class="line"><a name="
|
|
3339
|
-
<div class="line"><a name="
|
|
3340
|
-
<div class="line"><a name="
|
|
3341
|
-
<div class="line"><a name="
|
|
3342
|
-
<div class="line"><a name="
|
|
3343
|
-
<div class="line"><a name="
|
|
3344
|
-
<div class="line"><a name="
|
|
3345
|
-
<div class="line"><a name="
|
|
3346
|
-
<div class="line"><a name="
|
|
3347
|
-
<div class="line"><a name="
|
|
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>
|
|
3348
3391
|
</div><!-- fragment -->
|
|
3349
3392
|
</div>
|
|
3350
3393
|
</div>
|
|
@@ -3364,13 +3407,13 @@ template<typename T > </div>
|
|
|
3364
3407
|
</table>
|
|
3365
3408
|
</div><div class="memdoc">
|
|
3366
3409
|
|
|
3367
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3368
|
-
<div class="fragment"><div class="line"><a name="
|
|
3369
|
-
<div class="line"><a name="
|
|
3370
|
-
<div class="line"><a name="
|
|
3371
|
-
<div class="line"><a name="
|
|
3372
|
-
<div class="line"><a name="
|
|
3373
|
-
<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>
|
|
3374
3417
|
</div><!-- fragment -->
|
|
3375
3418
|
</div>
|
|
3376
3419
|
</div>
|
|
@@ -3390,27 +3433,29 @@ template<typename T > </div>
|
|
|
3390
3433
|
</table>
|
|
3391
3434
|
</div><div class="memdoc">
|
|
3392
3435
|
|
|
3393
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#
|
|
3394
|
-
<div class="fragment"><div class="line"><a name="
|
|
3395
|
-
<div class="line"><a name="
|
|
3396
|
-
<div class="line"><a name="
|
|
3397
|
-
<div class="line"><a name="
|
|
3398
|
-
<div class="line"><a name="
|
|
3399
|
-
<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>
|
|
3400
3443
|
</div><!-- fragment -->
|
|
3401
3444
|
</div>
|
|
3402
3445
|
</div>
|
|
3403
3446
|
</div><!-- contents -->
|
|
3404
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>
|
|
3405
|
-
<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>
|
|
3406
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>
|
|
3407
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>
|
|
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>
|
|
3408
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>
|
|
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>
|
|
3409
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>
|
|
3410
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>
|
|
3411
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>
|
|
3412
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>
|
|
3413
|
-
<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>
|
|
3414
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>
|
|
3415
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>
|
|
3416
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>
|
|
@@ -3418,15 +3463,15 @@ template<typename T > </div>
|
|
|
3418
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>
|
|
3419
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>
|
|
3420
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>
|
|
3421
|
-
<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#
|
|
3422
|
-
<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#
|
|
3423
|
-
<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>
|
|
3424
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>
|
|
3425
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>
|
|
3426
|
-
<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>
|
|
3427
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>
|
|
3428
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>
|
|
3429
|
-
<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>
|
|
3430
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>
|
|
3431
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>
|
|
3432
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>
|
|
@@ -3435,9 +3480,8 @@ template<typename T > </div>
|
|
|
3435
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>
|
|
3436
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>
|
|
3437
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>
|
|
3438
|
-
<div class="ttc" id="
|
|
3439
|
-
<div class="ttc" id="
|
|
3440
|
-
<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>
|
|
3441
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>
|
|
3442
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>
|
|
3443
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>
|
|
@@ -3446,21 +3490,21 @@ template<typename T > </div>
|
|
|
3446
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>
|
|
3447
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>
|
|
3448
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>
|
|
3449
|
-
<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>
|
|
3450
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>
|
|
3451
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>
|
|
3452
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>
|
|
3453
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
3497
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00413">LLVMUtil.h:413</a></div></div>
|
|
3454
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>
|
|
3455
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>
|
|
3456
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>
|
|
3457
|
-
<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>
|
|
3458
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>
|
|
3459
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>
|
|
3460
|
-
<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>
|
|
3461
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>
|
|
3462
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>
|
|
3463
|
-
<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>
|
|
3464
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>
|
|
3465
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>
|
|
3466
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>
|
|
@@ -3479,31 +3523,31 @@ template<typename T > </div>
|
|
|
3479
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>
|
|
3480
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>
|
|
3481
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>
|
|
3482
|
-
<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>
|
|
3483
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>
|
|
3484
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>
|
|
3485
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>
|
|
3486
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>
|
|
3487
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>
|
|
3488
|
-
<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>
|
|
3489
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>
|
|
3490
|
-
<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>
|
|
3491
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>
|
|
3492
|
-
<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>
|
|
3493
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>
|
|
3494
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>
|
|
3495
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>
|
|
3496
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>
|
|
3497
|
-
<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>
|
|
3498
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>
|
|
3499
|
-
<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>
|
|
3500
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>
|
|
3501
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>
|
|
3502
|
-
<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>
|
|
3503
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>
|
|
3504
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>
|
|
3505
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>
|
|
3506
|
-
<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>
|
|
3507
3551
|
<!-- start footer part -->
|
|
3508
3552
|
<hr class="footer"/><address class="footer"><small>
|
|
3509
3553
|
Generated by  <a href="http://www.doxygen.org/index.html">
|