svf-tools 1.0.809 → 1.0.810
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/AccessPath_8cpp_source.html +2 -2
- package/SVF-doxygen/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Andersen_8cpp_source.html +4 -4
- package/SVF-doxygen/html/Andersen_8h_source.html +1 -1
- package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/CDGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/CFBasicBlockGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CFBasicBlockGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLAlias_8cpp_source.html +6 -6
- package/SVF-doxygen/html/CFLAlias_8h_source.html +1 -1
- package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +13 -13
- package/SVF-doxygen/html/CHG_8cpp.html +4 -4
- package/SVF-doxygen/html/CHG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/CHG_8h_source.html +2 -2
- package/SVF-doxygen/html/CallGraphBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CxtStmt_8h_source.html +2 -2
- package/SVF-doxygen/html/DCHG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/DCHG_8h_source.html +2 -2
- package/SVF-doxygen/html/DDAClient_8cpp_source.html +3 -3
- package/SVF-doxygen/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FSMPTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/ICFGBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/ICFGEdge_8h_source.html +5 -5
- package/SVF-doxygen/html/ICFGNode_8h_source.html +12 -12
- package/SVF-doxygen/html/ICFG_8cpp_source.html +550 -543
- package/SVF-doxygen/html/ICFG_8h_source.html +19 -19
- package/SVF-doxygen/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +1160 -1147
- package/SVF-doxygen/html/LLVMModule_8h_source.html +29 -29
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +1160 -1150
- package/SVF-doxygen/html/LLVMUtil_8h.html +3 -0
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +350 -347
- package/SVF-doxygen/html/LeakChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/LockAnalysis_8cpp_source.html +14 -14
- package/SVF-doxygen/html/LockAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/LockResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/MHP_8cpp_source.html +12 -12
- package/SVF-doxygen/html/MHP_8h_source.html +3 -3
- package/SVF-doxygen/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/MTAAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/MTA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +10 -10
- package/SVF-doxygen/html/MemRegion_8h_source.html +1 -1
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +20 -20
- package/SVF-doxygen/html/MemSSA_8h_source.html +1 -1
- package/SVF-doxygen/html/PCG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/PCG_8h_source.html +3 -3
- package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +2 -2
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +14 -14
- package/SVF-doxygen/html/ProgSlice_8cpp_source.html +2 -2
- package/SVF-doxygen/html/ProgSlice_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFBugReport_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFFileSystem_8cpp_source.html +17 -17
- package/SVF-doxygen/html/SVFFileSystem_8h_source.html +15 -15
- package/SVF-doxygen/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFG_8cpp_source.html +6 -6
- package/SVF-doxygen/html/SVFG_8h_source.html +4 -4
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +4 -4
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +3 -3
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +23 -23
- package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +8 -8
- package/SVF-doxygen/html/SVFIR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIR_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFModule_8h_source.html +3 -3
- package/SVF-doxygen/html/SVFStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFStatements_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFUtil_8cpp_source.html +6 -6
- package/SVF-doxygen/html/SVFUtil_8h_source.html +6 -6
- package/SVF-doxygen/html/SVFValue_8cpp_source.html +126 -117
- package/SVF-doxygen/html/SVFValue_8h_source.html +1010 -1002
- package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +14 -14
- package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +5 -5
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Steensgaard_8cpp_source.html +4 -4
- package/SVF-doxygen/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +17 -17
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +1 -1
- package/SVF-doxygen/html/TCT_8cpp_source.html +14 -14
- package/SVF-doxygen/html/TCT_8h_source.html +7 -7
- package/SVF-doxygen/html/ThreadAPI_8cpp_source.html +7 -7
- package/SVF-doxygen/html/ThreadAPI_8h_source.html +4 -4
- package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/TypeAnalysis_8cpp_source.html +4 -4
- package/SVF-doxygen/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/VFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/VFG_8h_source.html +4 -4
- package/SVF-doxygen/html/WPAPass_8cpp_source.html +3 -3
- package/SVF-doxygen/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +13 -13
- package/SVF-doxygen/html/classSVF_1_1CHGraph.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +9 -9
- package/SVF-doxygen/html/classSVF_1_1CallCHI.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1CallICFGNode.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1CallMU.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CallSite.html +95 -95
- package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ExtAPI.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1FunEntryICFGNode.html +16 -16
- package/SVF-doxygen/html/classSVF_1_1FunExitICFGNode.html +28 -20
- package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GlobalICFGNode.html +9 -9
- package/SVF-doxygen/html/classSVF_1_1ICFG.html +271 -271
- package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +17 -17
- package/SVF-doxygen/html/classSVF_1_1ICFGEdge.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1ICFGNode.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +15 -15
- package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +1075 -1061
- package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LockAnalysis.html +13 -13
- package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1MHP.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1MHPValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +10 -10
- package/SVF-doxygen/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1MTASVFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAStat.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +19 -19
- package/SVF-doxygen/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PCG.html +11 -11
- package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +13 -13
- package/SVF-doxygen/html/classSVF_1_1ProgSlice.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1RaceResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RaceValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +9 -9
- package/SVF-doxygen/html/classSVF_1_1RetICFGNode.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFArgument.html +30 -30
- package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock-members.html +18 -17
- package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock.html +162 -136
- package/SVF-doxygen/html/classSVF_1_1SVFBlackHoleValue.html +15 -15
- package/SVF-doxygen/html/classSVF_1_1SVFBugEvent.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFCallInst.html +67 -67
- package/SVF-doxygen/html/classSVF_1_1SVFConstant.html +17 -17
- package/SVF-doxygen/html/classSVF_1_1SVFConstantData.html +23 -23
- package/SVF-doxygen/html/classSVF_1_1SVFConstantFP.html +21 -21
- package/SVF-doxygen/html/classSVF_1_1SVFConstantInt.html +27 -27
- package/SVF-doxygen/html/classSVF_1_1SVFConstantNullPtr.html +15 -15
- package/SVF-doxygen/html/classSVF_1_1SVFFunction-members.html +52 -50
- package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +236 -176
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SVFGOPT.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SVFGlobalValue.html +33 -33
- package/SVF-doxygen/html/classSVF_1_1SVFIR.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +39 -39
- package/SVF-doxygen/html/classSVF_1_1SVFInstruction.html +57 -57
- package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1SVFMetadataAsValue.html +15 -15
- package/SVF-doxygen/html/classSVF_1_1SVFModule.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFOtherValue.html +11 -11
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
- package/SVF-doxygen/html/classSVF_1_1SVFVirtualCallInst.html +53 -53
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +14 -14
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +17 -17
- package/SVF-doxygen/html/classSVF_1_1TCT.html +15 -15
- package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ThreadAPI.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1VFG.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1WPAPass.html +2 -2
- package/SVF-doxygen/html/functions_b.html +3 -3
- package/SVF-doxygen/html/functions_e.html +3 -0
- package/SVF-doxygen/html/functions_func_i.html +3 -3
- package/SVF-doxygen/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/functions_func_s.html +22 -19
- package/SVF-doxygen/html/functions_i.html +1 -1
- package/SVF-doxygen/html/functions_l.html +3 -3
- package/SVF-doxygen/html/functions_o.html +15 -15
- package/SVF-doxygen/html/functions_p.html +9 -9
- package/SVF-doxygen/html/functions_r.html +4 -6
- package/SVF-doxygen/html/functions_rela_s.html +3 -0
- package/SVF-doxygen/html/functions_s.html +26 -20
- package/SVF-doxygen/html/functions_t.html +4 -4
- package/SVF-doxygen/html/functions_v.html +3 -3
- package/SVF-doxygen/html/functions_vars_e.html +3 -0
- package/SVF-doxygen/html/namespaceSVF.html +5 -5
- package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +1199 -1165
- package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +5 -5
- package/SVF-doxygen/html/namespacemembers_b.html +4 -1
- package/SVF-doxygen/html/namespacemembers_func_b.html +4 -1
- package/SVF-doxygen/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/search/all_11.js +222 -222
- package/SVF-doxygen/html/search/all_12.js +544 -543
- package/SVF-doxygen/html/search/all_13.js +191 -191
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +169 -169
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +172 -172
- package/SVF-doxygen/html/search/all_2.js +139 -138
- package/SVF-doxygen/html/search/all_3.js +642 -642
- package/SVF-doxygen/html/search/all_4.js +233 -233
- package/SVF-doxygen/html/search/all_5.js +119 -118
- package/SVF-doxygen/html/search/all_6.js +225 -225
- package/SVF-doxygen/html/search/all_7.js +1041 -1041
- package/SVF-doxygen/html/search/all_8.js +196 -196
- package/SVF-doxygen/html/search/all_9.js +613 -613
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +116 -116
- package/SVF-doxygen/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +80 -80
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +21 -21
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +55 -55
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +12 -12
- package/SVF-doxygen/html/search/functions_1.js +360 -360
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +138 -138
- package/SVF-doxygen/html/search/functions_12.js +279 -278
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +172 -172
- package/SVF-doxygen/html/search/functions_2.js +87 -86
- package/SVF-doxygen/html/search/functions_3.js +257 -257
- package/SVF-doxygen/html/search/functions_4.js +75 -75
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +59 -59
- package/SVF-doxygen/html/search/functions_7.js +852 -852
- package/SVF-doxygen/html/search/functions_8.js +148 -148
- package/SVF-doxygen/html/search/functions_9.js +429 -429
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +26 -26
- package/SVF-doxygen/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/search/related_d.js +12 -11
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +61 -61
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +34 -34
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +55 -55
- package/SVF-doxygen/html/search/typedefs_7.js +44 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +151 -151
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/search/variables_11.js +44 -44
- package/SVF-doxygen/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/search/variables_5.js +37 -36
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +82 -82
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +7 -7
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp.html +2 -2
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +2 -2
- package/SVF-doxygen/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +2 -2
- package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +2 -2
- package/package.json +1 -1
- package/svf/include/SVFIR/SVFValue.h +13 -2
- package/svf/lib/Graphs/ICFG.cpp +10 -4
- package/svf/lib/SVFIR/SVFValue.cpp +8 -1
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +3 -0
- package/svf-llvm/lib/LLVMModule.cpp +11 -0
- package/svf-llvm/lib/LLVMUtil.cpp +17 -5
|
@@ -125,522 +125,529 @@ $(function() {
|
|
|
125
125
|
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// if function is implemented</span></div>
|
|
126
126
|
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">if</span> (f-><a class="code" href="classSVF_1_1SVFFunction.html#a49a6e9c0661135ceda2dd4d84c4b24ae">begin</a>() != f-><a class="code" href="classSVF_1_1SVFFunction.html#a2f274c3af098ae6a5919246b1b88e7b7">end</a>())</div>
|
|
127
127
|
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div>
|
|
128
|
-
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <
|
|
129
|
-
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> 
|
|
130
|
-
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> 
|
|
131
|
-
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
|
132
|
-
<div class="line"><a name="l00061"></a><span class="lineno"
|
|
133
|
-
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> 
|
|
134
|
-
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> 
|
|
135
|
-
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> 
|
|
136
|
-
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> 
|
|
137
|
-
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> 
|
|
138
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> 
|
|
139
|
-
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> 
|
|
140
|
-
<div class="line"><a name="l00069"></a><span class="lineno"
|
|
141
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> 
|
|
142
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> 
|
|
143
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> 
|
|
144
|
-
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> 
|
|
145
|
-
<div class="line"><a name="l00074"></a><span class="lineno"
|
|
146
|
-
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="
|
|
147
|
-
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> 
|
|
148
|
-
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> 
|
|
149
|
-
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> 
|
|
150
|
-
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
|
|
151
|
-
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> 
|
|
152
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> 
|
|
153
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> 
|
|
154
|
-
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
|
|
155
|
-
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> 
|
|
156
|
-
<div class="line"><a name="l00085"></a><span class="lineno"
|
|
157
|
-
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> 
|
|
158
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> 
|
|
159
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> 
|
|
160
|
-
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> 
|
|
161
|
-
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> 
|
|
162
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <
|
|
163
|
-
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> 
|
|
164
|
-
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="
|
|
165
|
-
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> 
|
|
166
|
-
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">
|
|
167
|
-
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> 
|
|
168
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
|
|
169
|
-
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div>
|
|
170
|
-
<div class="line"><a name="l00099"></a><span class="lineno"
|
|
171
|
-
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> 
|
|
172
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> 
|
|
173
|
-
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> 
|
|
174
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> 
|
|
175
|
-
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> 
|
|
176
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <
|
|
177
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> 
|
|
178
|
-
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  rawstr << <span class="stringliteral">"
|
|
179
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="
|
|
180
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 
|
|
181
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> 
|
|
182
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> }
|
|
183
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
|
184
|
-
<div class="line"><a name="l00113"></a><span class="lineno"
|
|
185
|
-
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> 
|
|
186
|
-
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> 
|
|
187
|
-
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> 
|
|
188
|
-
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> 
|
|
189
|
-
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> 
|
|
190
|
-
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="
|
|
191
|
-
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> 
|
|
192
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  rawstr
|
|
193
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> 
|
|
194
|
-
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> 
|
|
195
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="
|
|
196
|
-
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> 
|
|
197
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
|
|
198
|
-
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> 
|
|
199
|
-
<div class="line"><a name="l00128"></a><span class="lineno"
|
|
200
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> 
|
|
201
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <
|
|
202
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> 
|
|
203
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> 
|
|
204
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> 
|
|
205
|
-
<div class="line"><a name="l00134"></a><span class="lineno"
|
|
206
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> 
|
|
207
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <
|
|
208
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> 
|
|
209
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
|
210
|
-
<div class="line"><a name="l00139"></a><span class="lineno"
|
|
211
|
-
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> 
|
|
212
|
-
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> 
|
|
213
|
-
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> 
|
|
214
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> 
|
|
215
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> 
|
|
216
|
-
<div class="line"><a name="l00145"></a><span class="lineno"
|
|
217
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> 
|
|
218
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <
|
|
219
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> 
|
|
220
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
|
|
221
|
-
<div class="line"><a name="l00150"></a><span class="lineno"
|
|
222
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> 
|
|
223
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> 
|
|
224
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> 
|
|
225
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> 
|
|
226
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> 
|
|
227
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> 
|
|
228
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> 
|
|
229
|
-
<div class="line"><a name="l00158"></a><span class="lineno"
|
|
230
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> 
|
|
231
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="
|
|
232
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> 
|
|
233
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> 
|
|
234
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> 
|
|
235
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> 
|
|
236
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
237
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div>
|
|
238
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> 
|
|
239
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
240
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div>
|
|
241
|
-
<div class="line"><a name="l00170"></a><span class="lineno"
|
|
242
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="
|
|
243
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> 
|
|
244
|
-
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> 
|
|
245
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> 
|
|
246
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> 
|
|
247
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> 
|
|
248
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> 
|
|
249
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div>
|
|
250
|
-
<div class="line"><a name="l00179"></a><span class="lineno"
|
|
251
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> 
|
|
252
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="
|
|
253
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> 
|
|
254
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> 
|
|
255
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> 
|
|
256
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> 
|
|
257
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> 
|
|
258
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
|
|
259
|
-
<div class="line"><a name="
|
|
260
|
-
<div class="line"><a name="
|
|
261
|
-
<div class="line"><a name="
|
|
262
|
-
<div class="line"><a name="
|
|
263
|
-
<div class="line"><a name="
|
|
264
|
-
<div class="line"><a name="
|
|
265
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
|
|
266
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> 
|
|
267
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> 
|
|
268
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> 
|
|
269
|
-
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> 
|
|
270
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> 
|
|
271
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
|
|
272
|
-
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> 
|
|
273
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> 
|
|
274
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> 
|
|
275
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> 
|
|
276
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> 
|
|
277
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> 
|
|
278
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> 
|
|
279
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> 
|
|
280
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  </div>
|
|
281
|
-
<div class="line"><a name="
|
|
282
|
-
<div class="line"><a name="
|
|
283
|
-
<div class="line"><a name="
|
|
284
|
-
<div class="line"><a name="
|
|
285
|
-
<div class="line"><a name="
|
|
286
|
-
<div class="line"><a name="
|
|
287
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> 
|
|
288
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> 
|
|
289
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <
|
|
290
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
291
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
|
|
292
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
|
|
293
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> 
|
|
294
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> 
|
|
295
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
|
|
296
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div>
|
|
297
|
-
<div class="line"><a name="l00235"></a><span class="lineno"
|
|
298
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> 
|
|
299
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">
|
|
300
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> 
|
|
301
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> 
|
|
302
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> 
|
|
303
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 
|
|
304
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> 
|
|
305
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> 
|
|
306
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> 
|
|
307
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <
|
|
308
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> 
|
|
309
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  </div>
|
|
310
|
-
<div class="line"><a name="l00248"></a><span class="lineno"
|
|
311
|
-
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> 
|
|
312
|
-
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  assert(
|
|
313
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> 
|
|
314
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> 
|
|
315
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> 
|
|
316
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> 
|
|
317
|
-
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> 
|
|
318
|
-
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <
|
|
319
|
-
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> 
|
|
320
|
-
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  </div>
|
|
321
|
-
<div class="line"><a name="l00259"></a><span class="lineno"
|
|
322
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> 
|
|
323
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> 
|
|
324
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">
|
|
325
|
-
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> 
|
|
326
|
-
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> 
|
|
327
|
-
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> 
|
|
328
|
-
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> 
|
|
329
|
-
<div class="line"><a name="
|
|
330
|
-
<div class="line"><a name="
|
|
331
|
-
<div class="line"><a name="
|
|
332
|
-
<div class="line"><a name="
|
|
333
|
-
<div class="line"><a name="
|
|
334
|
-
<div class="line"><a name="
|
|
335
|
-
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> 
|
|
336
|
-
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> 
|
|
337
|
-
<div class="line"><a name="
|
|
338
|
-
<div class="line"><a name="
|
|
339
|
-
<div class="line"><a name="
|
|
340
|
-
<div class="line"><a name="
|
|
341
|
-
<div class="line"><a name="
|
|
342
|
-
<div class="line"><a name="
|
|
343
|
-
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> 
|
|
344
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> 
|
|
345
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
|
|
346
|
-
<div class="line"><a name="
|
|
347
|
-
<div class="line"><a name="
|
|
348
|
-
<div class="line"><a name="
|
|
349
|
-
<div class="line"><a name="
|
|
350
|
-
<div class="line"><a name="
|
|
351
|
-
<div class="line"><a name="
|
|
352
|
-
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> 
|
|
353
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> 
|
|
354
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> 
|
|
355
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> 
|
|
356
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <
|
|
357
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> 
|
|
358
|
-
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> 
|
|
359
|
-
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> 
|
|
360
|
-
<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="l00312"></a><span class="lineno"> 312</span> 
|
|
367
|
-
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> 
|
|
368
|
-
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> 
|
|
369
|
-
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> 
|
|
370
|
-
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <
|
|
371
|
-
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> 
|
|
372
|
-
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> 
|
|
373
|
-
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> 
|
|
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="l00329"></a><span class="lineno"> 329</span> 
|
|
381
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> 
|
|
382
|
-
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> 
|
|
383
|
-
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> 
|
|
384
|
-
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <
|
|
385
|
-
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> 
|
|
386
|
-
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> 
|
|
387
|
-
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> 
|
|
388
|
-
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  </div>
|
|
389
|
-
<div class="line"><a name="
|
|
390
|
-
<div class="line"><a name="
|
|
128
|
+
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">// ensure the enclosing function has exit basic block</span></div>
|
|
129
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (!f-><a class="code" href="classSVF_1_1SVFFunction.html#a97b0ad9fd31d7982f44a839605566347">isNotRetFunction</a>())</div>
|
|
130
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div>
|
|
131
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1ICFGNode.html#a0cd08725df3e8665762ee37b5d4c138a">bb</a> = f-><a class="code" href="classSVF_1_1SVFFunction.html#a8ca4fa87f4c26b71c6e03c8f32db1071">getExitBB</a>();</div>
|
|
132
|
+
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div>
|
|
133
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div>
|
|
134
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div>
|
|
135
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
|
136
|
+
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFGNode.html#af1b6fd9ea200ab0ff51d48a4872c921a"> 65</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ICFGNode.html#af1b6fd9ea200ab0ff51d48a4872c921a">ICFGNode::toString</a>()<span class="keyword"> const</span></div>
|
|
137
|
+
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword"></span>{</div>
|
|
138
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
139
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  std::stringstream rawstr(str);</div>
|
|
140
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  rawstr << <span class="stringliteral">"ICFGNode"</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
141
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
142
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div>
|
|
143
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
|
|
144
|
+
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFGNode.html#a3c193da05d6dee7313a141ae3ab43e97"> 73</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ICFGNode.html#a3c193da05d6dee7313a141ae3ab43e97">ICFGNode::dump</a>()<span class="keyword"> const</span></div>
|
|
145
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword"></span>{</div>
|
|
146
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << this-><a class="code" href="classSVF_1_1ICFGNode.html#af1b6fd9ea200ab0ff51d48a4872c921a">toString</a>() << <span class="stringliteral">"\n"</span>;</div>
|
|
147
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div>
|
|
148
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
|
|
149
|
+
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1GlobalICFGNode.html#ada960e5bdba75c165a67b33c09819c47"> 78</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1GlobalICFGNode.html#ada960e5bdba75c165a67b33c09819c47">GlobalICFGNode::toString</a>()<span class="keyword"> const</span></div>
|
|
150
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword"></span>{</div>
|
|
151
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
152
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  std::stringstream rawstr(str);</div>
|
|
153
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  rawstr << <span class="stringliteral">"GlobalICFGNode"</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
154
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : <a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
155
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  rawstr << <span class="stringliteral">"\n"</span> << stmt->toString();</div>
|
|
156
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
157
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }</div>
|
|
158
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
|
|
159
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
|
|
160
|
+
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1IntraICFGNode.html#a85d3e05cb5a95c2f9d678d9f010419a5"> 89</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1IntraICFGNode.html#a85d3e05cb5a95c2f9d678d9f010419a5">IntraICFGNode::toString</a>()<span class="keyword"> const</span></div>
|
|
161
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword"></span>{</div>
|
|
162
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
163
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  std::stringstream rawstr(str);</div>
|
|
164
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  rawstr << <span class="stringliteral">"IntraICFGNode"</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
165
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  rawstr << <span class="stringliteral">" {fun: "</span> << <a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() << <a class="code" href="classSVF_1_1IntraICFGNode.html#aee81d1ab3eb9584b34efbe1f821371b7">getInst</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"}"</span>;</div>
|
|
166
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : <a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
167
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  rawstr << <span class="stringliteral">"\n"</span> << stmt->toString();</div>
|
|
168
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>().empty())</div>
|
|
169
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  rawstr << <span class="stringliteral">"\n"</span> << <a class="code" href="classSVF_1_1IntraICFGNode.html#aee81d1ab3eb9584b34efbe1f821371b7">getInst</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>();</div>
|
|
170
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
171
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> }</div>
|
|
172
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
|
173
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
|
|
174
|
+
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1FunEntryICFGNode.html#a3e9032ea2388682e568b6324fe8e4882"> 103</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1FunEntryICFGNode.html#a3e9032ea2388682e568b6324fe8e4882">FunEntryICFGNode::toString</a>()<span class="keyword"> const</span></div>
|
|
175
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword"></span>{</div>
|
|
176
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
177
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  std::stringstream rawstr(str);</div>
|
|
178
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  rawstr << <span class="stringliteral">"FunEntryICFGNode"</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
179
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  rawstr << <span class="stringliteral">" {fun: "</span> << <a class="code" href="classSVF_1_1FunEntryICFGNode.html#ac2451fdc53f319bc92528af7edc94b2d">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
|
|
180
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<a class="code" href="classSVF_1_1FunEntryICFGNode.html#ac2451fdc53f319bc92528af7edc94b2d">getFun</a>())==<span class="keyword">false</span>)</div>
|
|
181
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  rawstr << <a class="code" href="classSVF_1_1FunEntryICFGNode.html#ac2451fdc53f319bc92528af7edc94b2d">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
|
|
182
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  rawstr << <span class="stringliteral">"}"</span>;</div>
|
|
183
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : <a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
184
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  rawstr << <span class="stringliteral">"\n"</span> << stmt->toString();</div>
|
|
185
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
186
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> }</div>
|
|
187
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
|
|
188
|
+
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1FunExitICFGNode.html#aa73e5a5e577b789842987fec2fb307f9"> 117</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1FunExitICFGNode.html#aa73e5a5e577b789842987fec2fb307f9">FunExitICFGNode::toString</a>()<span class="keyword"> const</span></div>
|
|
189
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword"></span>{</div>
|
|
190
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="code" href="classSVF_1_1ICFGNode.html#a03587dbd558d8fffe25307b42e3195be">fun</a> = <a class="code" href="classSVF_1_1FunExitICFGNode.html#a54dfbbebbfe18a8a493656d6ad8663be">getFun</a>();</div>
|
|
191
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
192
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  std::stringstream rawstr(str);</div>
|
|
193
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  rawstr << <span class="stringliteral">"FunExitICFGNode"</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
194
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  rawstr << <span class="stringliteral">" {fun: "</span> << <a class="code" href="classSVF_1_1ICFGNode.html#a03587dbd558d8fffe25307b42e3195be">fun</a>-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
|
|
195
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">// ensure the enclosing function has exit basic block</span></div>
|
|
196
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span> (!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<a class="code" href="classSVF_1_1ICFGNode.html#a03587dbd558d8fffe25307b42e3195be">fun</a>) && !<a class="code" href="classSVF_1_1ICFGNode.html#a03587dbd558d8fffe25307b42e3195be">fun</a>-><a class="code" href="classSVF_1_1SVFFunction.html#a97b0ad9fd31d7982f44a839605566347">isNotRetFunction</a>())</div>
|
|
197
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  rawstr << <a class="code" href="classSVF_1_1ICFGNode.html#a03587dbd558d8fffe25307b42e3195be">fun</a>-><a class="code" href="classSVF_1_1SVFFunction.html#a8ca4fa87f4c26b71c6e03c8f32db1071">getExitBB</a>()-><a class="code" href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">front</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
|
|
198
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  rawstr << <span class="stringliteral">"}"</span>;</div>
|
|
199
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : <a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
200
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  rawstr << <span class="stringliteral">"\n"</span> << stmt->toString();</div>
|
|
201
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
202
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div>
|
|
203
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div>
|
|
204
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
|
205
|
+
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classSVF_1_1CallICFGNode.html#ab07e504bbc100fa3e111d62de815a88c"> 134</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1CallICFGNode.html#ab07e504bbc100fa3e111d62de815a88c">CallICFGNode::toString</a>()<span class="keyword"> const</span></div>
|
|
206
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword"></span>{</div>
|
|
207
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
208
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  std::stringstream rawstr(str);</div>
|
|
209
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  rawstr << <span class="stringliteral">"CallICFGNode"</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
210
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  rawstr << <span class="stringliteral">" {fun: "</span> << <a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() << <a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"}"</span>;</div>
|
|
211
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : <a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
212
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  rawstr << <span class="stringliteral">"\n"</span> << stmt->toString();</div>
|
|
213
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
214
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> }</div>
|
|
215
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
|
|
216
|
+
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classSVF_1_1RetICFGNode.html#ab0b54268167a593e2db9d02d3dd9c4f1"> 145</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1RetICFGNode.html#ab0b54268167a593e2db9d02d3dd9c4f1">RetICFGNode::toString</a>()<span class="keyword"> const</span></div>
|
|
217
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword"></span>{</div>
|
|
218
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
219
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  std::stringstream rawstr(str);</div>
|
|
220
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  rawstr << <span class="stringliteral">"RetICFGNode"</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
221
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  rawstr << <span class="stringliteral">" {fun: "</span> << <a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() << <a class="code" href="classSVF_1_1RetICFGNode.html#a189125c2e5c3927d1b70f68e6e4c4f2e">getCallSite</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"}"</span>;</div>
|
|
222
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : <a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
223
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  rawstr << <span class="stringliteral">"\n"</span> << stmt->toString();</div>
|
|
224
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
225
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> }</div>
|
|
226
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
|
|
227
|
+
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFGEdge.html#a7233609f62f278b738036e8de9bbbfc8"> 156</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ICFGEdge.html#a7233609f62f278b738036e8de9bbbfc8">ICFGEdge::toString</a>()<span class="keyword"> const</span></div>
|
|
228
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword"></span>{</div>
|
|
229
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
230
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  std::stringstream rawstr(str);</div>
|
|
231
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  rawstr << <span class="stringliteral">"ICFGEdge: [ICFGNode"</span> << <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">" <-- ICFGNode"</span> << <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() << <span class="stringliteral">"]\t"</span>;</div>
|
|
232
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
233
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }</div>
|
|
234
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
|
|
235
|
+
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1IntraCFGEdge.html#a1e63286b4d6f757ac1220f5f03ae62de"> 164</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1IntraCFGEdge.html#a1e63286b4d6f757ac1220f5f03ae62de">IntraCFGEdge::toString</a>()<span class="keyword"> const</span></div>
|
|
236
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword"></span>{</div>
|
|
237
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
238
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  std::stringstream rawstr(str);</div>
|
|
239
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1IntraCFGEdge.html#a2657751b285cb6db8084da38b00dcab9">getCondition</a>() == <span class="keyword">nullptr</span>)</div>
|
|
240
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  rawstr << <span class="stringliteral">"IntraCFGEdge: [ICFGNode"</span> << <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">" <-- ICFGNode"</span> << <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() << <span class="stringliteral">"]\t"</span>;</div>
|
|
241
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">else</span></div>
|
|
242
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  rawstr << <span class="stringliteral">"IntraCFGEdge: [ICFGNode"</span> << <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">" <-- ICFGNode"</span> << <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() << <span class="stringliteral">"] (branchCondition:"</span> << <a class="code" href="classSVF_1_1IntraCFGEdge.html#a2657751b285cb6db8084da38b00dcab9">getCondition</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() << <span class="stringliteral">") (succCondValue: "</span> << <a class="code" href="classSVF_1_1IntraCFGEdge.html#a106513578790247f9d96e34c8385b3d8">getSuccessorCondValue</a>() << <span class="stringliteral">") \t"</span>;</div>
|
|
243
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
|
|
244
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
245
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }</div>
|
|
246
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div>
|
|
247
|
+
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCFGEdge.html#a2ad72b065dcb752e0779de9ff69c443a"> 176</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1CallCFGEdge.html#a2ad72b065dcb752e0779de9ff69c443a">CallCFGEdge::toString</a>()<span class="keyword"> const</span></div>
|
|
248
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword"></span>{</div>
|
|
249
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
250
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  std::stringstream rawstr(str);</div>
|
|
251
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  rawstr << <span class="stringliteral">"CallCFGEdge "</span> << <span class="stringliteral">" [ICFGNode"</span>;</div>
|
|
252
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  rawstr << <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">" <-- ICFGNode"</span> << <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() << <span class="stringliteral">"]\t CallSite: "</span> << <a class="code" href="classSVF_1_1CallCFGEdge.html#a3f576a9648945907859dd5922f55bcb3">cs</a>-><a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() << <span class="stringliteral">"\t"</span>;</div>
|
|
253
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
254
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> }</div>
|
|
255
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
|
|
256
|
+
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1RetCFGEdge.html#aca97e28617505e482b014dc805cb70aa"> 185</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1RetCFGEdge.html#aca97e28617505e482b014dc805cb70aa">RetCFGEdge::toString</a>()<span class="keyword"> const</span></div>
|
|
257
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword"></span>{</div>
|
|
258
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
259
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  std::stringstream rawstr(str);</div>
|
|
260
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  rawstr << <span class="stringliteral">"RetCFGEdge "</span> << <span class="stringliteral">" [ICFGNode"</span>;</div>
|
|
261
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  rawstr << <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">" <-- ICFGNode"</span> << <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() << <span class="stringliteral">"]\t CallSite: "</span> << <a class="code" href="classSVF_1_1RetCFGEdge.html#a7f247e68024c946be46b484a16c59770">cs</a>-><a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() << <span class="stringliteral">"\t"</span>;</div>
|
|
262
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
263
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> }</div>
|
|
264
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
|
|
265
|
+
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a683f33b8ad507a33809511954c7c1acb"> 202</a></span> <a class="code" href="classSVF_1_1ICFG.html#a683f33b8ad507a33809511954c7c1acb">ICFG::ICFG</a>(): totalICFGNode(0), globalBlockNode(nullptr)</div>
|
|
266
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> {</div>
|
|
267
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }</div>
|
|
268
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
|
|
269
|
+
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#ae1a4cb907f4313c253576c51955f2b53"> 206</a></span> <a class="code" href="classSVF_1_1ICFG.html#ae1a4cb907f4313c253576c51955f2b53">ICFG::~ICFG</a>()</div>
|
|
270
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> {</div>
|
|
271
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFLoop*></a> loops;</div>
|
|
272
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: <a class="code" href="classSVF_1_1ICFG.html#a7d6aeecb00d77600a204a72d60023d54">icfgNodeToSVFLoopVec</a>)</div>
|
|
273
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div>
|
|
274
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &loop: it.second)</div>
|
|
275
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  {</div>
|
|
276
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  loops.insert(loop);</div>
|
|
277
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div>
|
|
278
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div>
|
|
279
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
|
|
280
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: loops)</div>
|
|
281
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div>
|
|
282
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keyword">delete</span> it;</div>
|
|
283
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div>
|
|
284
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1ICFG.html#a7d6aeecb00d77600a204a72d60023d54">icfgNodeToSVFLoopVec</a>.clear();</div>
|
|
285
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> }</div>
|
|
286
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </div>
|
|
287
|
+
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#aeaecbb856265565d198a3493f722087f"> 225</a></span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">ICFG::getICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst)</div>
|
|
288
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> {</div>
|
|
289
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node;</div>
|
|
290
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">SVFUtil::isNonInstricCallSite</a>(inst))</div>
|
|
291
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  node = <a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(inst);</div>
|
|
292
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#abb2bbf6e0dc5adae2140a519259e6f17">SVFUtil::isIntrinsicInst</a>(inst))</div>
|
|
293
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  node = <a class="code" href="classSVF_1_1ICFG.html#aaf521832909781894659725300cf4f49">getIntraICFGNode</a>(inst);</div>
|
|
294
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment">// assert (false && "associating an intrinsic instruction with an ICFGNode!");</span></div>
|
|
295
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">else</span></div>
|
|
296
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  node = <a class="code" href="classSVF_1_1ICFG.html#aaf521832909781894659725300cf4f49">getIntraICFGNode</a>(inst);</div>
|
|
297
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
|
|
298
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  assert (node!=<span class="keyword">nullptr</span> && <span class="stringliteral">"no ICFGNode for this instruction?"</span>);</div>
|
|
299
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">return</span> node;</div>
|
|
300
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> }</div>
|
|
301
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
|
|
302
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  </div>
|
|
303
|
+
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213"> 241</a></span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">ICFG::getCallICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst)</div>
|
|
304
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> {</div>
|
|
305
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#afdc3358522417de9a0d3a181a329f722">SVFUtil::isCallSite</a>(inst) ==<span class="keyword">false</span>)</div>
|
|
306
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << inst-><a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() << <span class="stringliteral">"\n"</span>;</div>
|
|
307
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#afdc3358522417de9a0d3a181a329f722">SVFUtil::isCallSite</a>(inst) && <span class="stringliteral">"not a call instruction?"</span>);</div>
|
|
308
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">SVFUtil::isNonInstricCallSite</a>(inst) && <span class="stringliteral">"associating an intrinsic debug instruction with an ICFGNode!"</span>);</div>
|
|
309
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a1490b28446b9d8efee567ec02e2abcf3">getCallBlock</a>(inst);</div>
|
|
310
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div>
|
|
311
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  node = <a class="code" href="classSVF_1_1ICFG.html#ac51c8f38efbd2576e150a9fc26a4a41b">addCallBlock</a>(inst);</div>
|
|
312
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  assert (node!=<span class="keyword">nullptr</span> && <span class="stringliteral">"no CallICFGNode for this instruction?"</span>);</div>
|
|
313
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> node;</div>
|
|
314
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> }</div>
|
|
315
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
|
|
316
|
+
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf"> 254</a></span> <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* <a class="code" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">ICFG::getRetICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst)</div>
|
|
317
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> {</div>
|
|
318
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#afdc3358522417de9a0d3a181a329f722">SVFUtil::isCallSite</a>(inst) && <span class="stringliteral">"not a call instruction?"</span>);</div>
|
|
319
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">SVFUtil::isNonInstricCallSite</a>(inst) && <span class="stringliteral">"associating an intrinsic debug instruction with an ICFGNode!"</span>);</div>
|
|
320
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a5ad71237256b2a8ce94a7d79a84afe55">getRetBlock</a>(inst);</div>
|
|
321
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div>
|
|
322
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  node = <a class="code" href="classSVF_1_1ICFG.html#ac58aa82eb74616a6608ff51d92f5baf6">addRetBlock</a>(inst);</div>
|
|
323
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  assert (node!=<span class="keyword">nullptr</span> && <span class="stringliteral">"no RetICFGNode for this instruction?"</span>);</div>
|
|
324
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span> node;</div>
|
|
325
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> }</div>
|
|
326
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
|
|
327
|
+
<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#aaf521832909781894659725300cf4f49"> 265</a></span> <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* <a class="code" href="classSVF_1_1ICFG.html#aaf521832909781894659725300cf4f49">ICFG::getIntraICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst)</div>
|
|
328
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> {</div>
|
|
329
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#afeee2b61f8a84e1276f8955c4f6cf22d">getIntraBlock</a>(inst);</div>
|
|
330
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div>
|
|
331
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  node = <a class="code" href="classSVF_1_1ICFG.html#ad0183e8975e7190a121d8cb2aeec3d94">addIntraBlock</a>(inst);</div>
|
|
332
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">return</span> node;</div>
|
|
333
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> }</div>
|
|
334
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
|
|
335
|
+
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076"> 274</a></span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">ICFG::getFunEntryICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div>
|
|
336
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> {</div>
|
|
337
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a> = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(fun);</div>
|
|
338
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a> == <span class="keyword">nullptr</span>)</div>
|
|
339
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">addFunEntryBlock</a>(fun);</div>
|
|
340
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">else</span></div>
|
|
341
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">return</span> <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>;</div>
|
|
342
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> }</div>
|
|
343
|
+
<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919"> 283</a></span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">ICFG::getFunExitICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div>
|
|
344
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> {</div>
|
|
345
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a> = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(fun);</div>
|
|
346
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a> == <span class="keyword">nullptr</span>)</div>
|
|
347
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a6b716225b38638d6a34703995b749ad2">addFunExitBlock</a>(fun);</div>
|
|
348
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">else</span></div>
|
|
349
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">return</span> <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>;</div>
|
|
350
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> }</div>
|
|
351
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  </div>
|
|
352
|
+
<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709"> 295</a></span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">ICFG::hasIntraICFGEdge</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* src, <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dst, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429">ICFGEdge::ICFGEdgeK</a> kind)</div>
|
|
353
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> {</div>
|
|
354
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> edge(src,dst,kind);</div>
|
|
355
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* outEdge = src-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>(&edge);</div>
|
|
356
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* inEdge = dst-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>(&edge);</div>
|
|
357
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span> (outEdge && inEdge)</div>
|
|
358
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div>
|
|
359
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  assert(outEdge == inEdge && <span class="stringliteral">"edges not match"</span>);</div>
|
|
360
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">return</span> outEdge;</div>
|
|
361
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
|
362
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">else</span></div>
|
|
363
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
364
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> }</div>
|
|
365
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div>
|
|
366
|
+
<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1"> 312</a></span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* <a class="code" href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">ICFG::hasInterICFGEdge</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* src, <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dst, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429">ICFGEdge::ICFGEdgeK</a> kind)</div>
|
|
367
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> {</div>
|
|
368
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> edge(src,dst, kind);</div>
|
|
369
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* outEdge = src-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>(&edge);</div>
|
|
370
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* inEdge = dst-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>(&edge);</div>
|
|
371
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">if</span> (outEdge && inEdge)</div>
|
|
372
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  {</div>
|
|
373
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  assert(outEdge == inEdge && <span class="stringliteral">"edges not match"</span>);</div>
|
|
374
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">return</span> outEdge;</div>
|
|
375
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div>
|
|
376
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">else</span></div>
|
|
377
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
378
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> }</div>
|
|
379
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
|
|
380
|
+
<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a29fb70d6638765ce291c5a8a11fbea64"> 329</a></span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* <a class="code" href="classSVF_1_1ICFG.html#a29fb70d6638765ce291c5a8a11fbea64">ICFG::hasThreadICFGEdge</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* src, <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dst, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429">ICFGEdge::ICFGEdgeK</a> kind)</div>
|
|
381
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> {</div>
|
|
382
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> edge(src,dst,kind);</div>
|
|
383
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* outEdge = src-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>(&edge);</div>
|
|
384
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* inEdge = dst-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>(&edge);</div>
|
|
385
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">if</span> (outEdge && inEdge)</div>
|
|
386
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  {</div>
|
|
387
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  assert(outEdge == inEdge && <span class="stringliteral">"edges not match"</span>);</div>
|
|
388
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> outEdge;</div>
|
|
389
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div>
|
|
390
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">else</span></div>
|
|
391
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
392
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> }</div>
|
|
393
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  </div>
|
|
391
394
|
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  </div>
|
|
392
|
-
<div class="line"><a name="
|
|
393
|
-
<div class="line"><a name="
|
|
394
|
-
<div class="line"><a name="
|
|
395
|
-
<div class="line"><a name="
|
|
396
|
-
<div class="line"><a name="
|
|
397
|
-
<div class="line"><a name="
|
|
398
|
-
<div class="line"><a name="
|
|
399
|
-
<div class="line"><a name="
|
|
400
|
-
<div class="line"><a name="
|
|
401
|
-
<div class="line"><a name="
|
|
402
|
-
<div class="line"><a name="
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
405
|
-
<div class="line"><a name="
|
|
406
|
-
<div class="line"><a name="
|
|
407
|
-
<div class="line"><a name="
|
|
408
|
-
<div class="line"><a name="l00363"></a><span class="lineno"
|
|
409
|
-
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> 
|
|
410
|
-
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> 
|
|
411
|
-
<div class="line"><a name="
|
|
412
|
-
<div class="line"><a name="
|
|
413
|
-
<div class="line"><a name="
|
|
414
|
-
<div class="line"><a name="
|
|
415
|
-
<div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="
|
|
422
|
-
<div class="line"><a name="
|
|
423
|
-
<div class="line"><a name="
|
|
424
|
-
<div class="line"><a name="l00382"></a><span class="lineno"
|
|
425
|
-
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> 
|
|
395
|
+
<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a5dd4ac55123501c47c628adcf27e2475"> 347</a></span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* <a class="code" href="classSVF_1_1ICFG.html#a5dd4ac55123501c47c628adcf27e2475">ICFG::getICFGEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dst, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429">ICFGEdge::ICFGEdgeK</a> kind)</div>
|
|
396
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> {</div>
|
|
397
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  </div>
|
|
398
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * edge = <span class="keyword">nullptr</span>;</div>
|
|
399
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> counter = 0;</div>
|
|
400
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">for</span> (ICFGEdge::ICFGEdgeSetTy::iterator iter = src-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>();</div>
|
|
401
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  iter != src-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); ++iter)</div>
|
|
402
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  {</div>
|
|
403
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">if</span> ((*iter)->getDstID() == dst-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() && (*iter)->getEdgeKind() == kind)</div>
|
|
404
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  {</div>
|
|
405
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  counter++;</div>
|
|
406
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  edge = (*iter);</div>
|
|
407
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div>
|
|
408
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div>
|
|
409
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  assert(counter <= 1 && <span class="stringliteral">"there's more than one edge between two ICFG nodes"</span>);</div>
|
|
410
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">return</span> edge;</div>
|
|
411
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  </div>
|
|
412
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> }</div>
|
|
413
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  </div>
|
|
414
|
+
<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc"> 369</a></span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* <a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">ICFG::addIntraEdge</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* srcNode, <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dstNode)</div>
|
|
415
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> {</div>
|
|
416
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a>(srcNode, dstNode);</div>
|
|
417
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>);</div>
|
|
418
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div>
|
|
419
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div>
|
|
420
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  assert(edge-><a class="code" href="classSVF_1_1ICFGEdge.html#a4e6d228dfc678618a423e8293877f04c">isIntraCFGEdge</a>() && <span class="stringliteral">"this should be an intra CFG edge!"</span>);</div>
|
|
421
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
422
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div>
|
|
423
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">else</span></div>
|
|
424
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  {</div>
|
|
425
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>* intraEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>(srcNode,dstNode);</div>
|
|
426
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(intraEdge) ? intraEdge : <span class="keyword">nullptr</span>);</div>
|
|
427
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div>
|
|
428
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> }</div>
|
|
426
429
|
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  </div>
|
|
427
|
-
<div class="line"><a name="
|
|
428
|
-
<div class="line"><a name="
|
|
429
|
-
<div class="line"><a name="
|
|
430
|
-
<div class="line"><a name="
|
|
431
|
-
<div class="line"><a name="
|
|
432
|
-
<div class="line"><a name="
|
|
433
|
-
<div class="line"><a name="
|
|
434
|
-
<div class="line"><a name="
|
|
435
|
-
<div class="line"><a name="
|
|
436
|
-
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>* intraEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>(srcNode,dstNode);</div>
|
|
437
|
-
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  intraEdge-><a class="code" href="classSVF_1_1IntraCFGEdge.html#ad7b35b7c9abb07122eaa8517dae56508">setBranchCondition</a>(condition,branchCondVal);</div>
|
|
438
|
-
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(intraEdge) ? intraEdge : <span class="keyword">nullptr</span>);</div>
|
|
430
|
+
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a1589272ab8eff17c1973f17038ef6eb3"> 388</a></span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* <a class="code" href="classSVF_1_1ICFG.html#a1589272ab8eff17c1973f17038ef6eb3">ICFG::addConditionalIntraEdge</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* srcNode, <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dstNode, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* condition, <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> branchCondVal)</div>
|
|
431
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> {</div>
|
|
432
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  </div>
|
|
433
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a>(srcNode, dstNode);</div>
|
|
434
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>);</div>
|
|
435
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div>
|
|
436
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  {</div>
|
|
437
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  assert(edge-><a class="code" href="classSVF_1_1ICFGEdge.html#a4e6d228dfc678618a423e8293877f04c">isIntraCFGEdge</a>() && <span class="stringliteral">"this should be an intra CFG edge!"</span>);</div>
|
|
438
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
439
439
|
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  }</div>
|
|
440
|
-
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> 
|
|
441
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> 
|
|
442
|
-
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  </div>
|
|
443
|
-
<div class="line"><a name="
|
|
444
|
-
<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="l00410"></a><span class="lineno"> 410</span> 
|
|
450
|
-
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> 
|
|
451
|
-
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <
|
|
452
|
-
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> 
|
|
453
|
-
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> 
|
|
454
|
-
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> 
|
|
455
|
-
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> 
|
|
456
|
-
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> }</div>
|
|
457
|
-
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  </div>
|
|
458
|
-
<div class="line"><a name="
|
|
459
|
-
<div class="line"><a name="
|
|
460
|
-
<div class="line"><a name="
|
|
461
|
-
<div class="line"><a name="
|
|
462
|
-
<div class="line"><a name="
|
|
463
|
-
<div class="line"><a name="
|
|
464
|
-
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> 
|
|
465
|
-
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> 
|
|
466
|
-
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <
|
|
467
|
-
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> 
|
|
468
|
-
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> 
|
|
469
|
-
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> 
|
|
470
|
-
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> 
|
|
471
|
-
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> }</div>
|
|
472
|
-
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  </div>
|
|
473
|
-
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> 
|
|
474
|
-
<div class="line"><a name="
|
|
475
|
-
<div class="line"><a name="
|
|
476
|
-
<div class="line"><a name="
|
|
477
|
-
<div class="line"><a name="
|
|
478
|
-
<div class="line"><a name="
|
|
479
|
-
<div class="line"><a name="
|
|
480
|
-
<div class="line"><a name="
|
|
481
|
-
<div class="line"><a name="
|
|
482
|
-
<div class="line"><a name="
|
|
483
|
-
<div class="line"><a name="
|
|
484
|
-
<div class="line"><a name="
|
|
485
|
-
<div class="line"><a name="
|
|
486
|
-
<div class="line"><a name="
|
|
487
|
-
<div class="line"><a name="
|
|
488
|
-
<div class="line"><a name="
|
|
489
|
-
<div class="line"><a name="
|
|
490
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> 
|
|
491
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> 
|
|
492
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> 
|
|
493
|
-
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> 
|
|
494
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> 
|
|
495
|
-
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> 
|
|
496
|
-
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> 
|
|
497
|
-
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> 
|
|
498
|
-
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> 
|
|
499
|
-
<div class="line"><a name="
|
|
500
|
-
<div class="line"><a name="
|
|
501
|
-
<div class="line"><a name="
|
|
502
|
-
<div class="line"><a name="
|
|
503
|
-
<div class="line"><a name="
|
|
504
|
-
<div class="line"><a name="
|
|
505
|
-
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> 
|
|
506
|
-
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> 
|
|
507
|
-
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> 
|
|
508
|
-
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> 
|
|
509
|
-
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> 
|
|
510
|
-
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> 
|
|
511
|
-
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> 
|
|
512
|
-
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> 
|
|
513
|
-
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> 
|
|
514
|
-
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> 
|
|
515
|
-
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> 
|
|
516
|
-
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> 
|
|
517
|
-
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> 
|
|
518
|
-
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> 
|
|
519
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> 
|
|
520
|
-
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> 
|
|
521
|
-
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> 
|
|
522
|
-
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> 
|
|
523
|
-
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> 
|
|
524
|
-
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> 
|
|
525
|
-
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> 
|
|
526
|
-
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> 
|
|
527
|
-
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> 
|
|
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="l00509"></a><span class="lineno"> 509</span> 
|
|
535
|
-
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> 
|
|
536
|
-
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> 
|
|
537
|
-
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> 
|
|
538
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> 
|
|
539
|
-
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> }</div>
|
|
540
|
-
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
|
|
541
|
-
<div class="line"><a name="
|
|
542
|
-
<div class="line"><a name="
|
|
543
|
-
<div class="line"><a name="
|
|
544
|
-
<div class="line"><a name="
|
|
545
|
-
<div class="line"><a name="
|
|
546
|
-
<div class="line"><a name="
|
|
547
|
-
<div class="line"><a name="l00525"></a><span class="lineno"
|
|
548
|
-
<div class="line"><a name="l00526"></a><span class="lineno"
|
|
549
|
-
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> 
|
|
550
|
-
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> 
|
|
551
|
-
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> 
|
|
440
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">else</span></div>
|
|
441
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div>
|
|
442
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>* intraEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>(srcNode,dstNode);</div>
|
|
443
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  intraEdge-><a class="code" href="classSVF_1_1IntraCFGEdge.html#ad7b35b7c9abb07122eaa8517dae56508">setBranchCondition</a>(condition,branchCondVal);</div>
|
|
444
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(intraEdge) ? intraEdge : <span class="keyword">nullptr</span>);</div>
|
|
445
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  }</div>
|
|
446
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> }</div>
|
|
447
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  </div>
|
|
448
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  </div>
|
|
449
|
+
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a2ad6c1e49cc847df18342cbbe6224863"> 410</a></span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* <a class="code" href="classSVF_1_1ICFG.html#a2ad6c1e49cc847df18342cbbe6224863">ICFG::addCallEdge</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* srcNode, <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dstNode, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* cs)</div>
|
|
450
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> {</div>
|
|
451
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">hasInterICFGEdge</a>(srcNode,dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e">ICFGEdge::CallCF</a>);</div>
|
|
452
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div>
|
|
453
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  {</div>
|
|
454
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  assert(edge-><a class="code" href="classSVF_1_1ICFGEdge.html#a2ecc0bc3bb3655bf3db3adb732747b49">isCallCFGEdge</a>() && <span class="stringliteral">"this should be a call CFG edge!"</span>);</div>
|
|
455
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
456
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</div>
|
|
457
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">else</span></div>
|
|
458
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  {</div>
|
|
459
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="classSVF_1_1CallCFGEdge.html">CallCFGEdge</a>* callEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CallCFGEdge.html">CallCFGEdge</a>(srcNode,dstNode,cs);</div>
|
|
460
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(callEdge) ? callEdge : <span class="keyword">nullptr</span>);</div>
|
|
461
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div>
|
|
462
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> }</div>
|
|
463
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  </div>
|
|
464
|
+
<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a8a5e7571e804702a2d0af7d420f21b33"> 428</a></span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* <a class="code" href="classSVF_1_1ICFG.html#a8a5e7571e804702a2d0af7d420f21b33">ICFG::addRetEdge</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* srcNode, <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dstNode, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* cs)</div>
|
|
465
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> {</div>
|
|
466
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">hasInterICFGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541">ICFGEdge::RetCF</a>);</div>
|
|
467
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div>
|
|
468
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  {</div>
|
|
469
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  assert(edge-><a class="code" href="classSVF_1_1ICFGEdge.html#ae3e7a6596de9fd3a25a28242a06ddd80">isRetCFGEdge</a>() && <span class="stringliteral">"this should be a return CFG edge!"</span>);</div>
|
|
470
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
471
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div>
|
|
472
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">else</span></div>
|
|
473
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  {</div>
|
|
474
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classSVF_1_1RetCFGEdge.html">RetCFGEdge</a>* retEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetCFGEdge.html">RetCFGEdge</a>(srcNode,dstNode,cs);</div>
|
|
475
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(retEdge) ? retEdge : <span class="keyword">nullptr</span>);</div>
|
|
476
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div>
|
|
477
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> }</div>
|
|
478
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  </div>
|
|
479
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  </div>
|
|
480
|
+
<div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba"> 447</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">ICFG::dump</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& file, <span class="keywordtype">bool</span> simple)</div>
|
|
481
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> {</div>
|
|
482
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>(), file, <span class="keyword">this</span>, simple);</div>
|
|
483
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> }</div>
|
|
484
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  </div>
|
|
485
|
+
<div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a0d16e302515ffa0033e02ee8f6b3b590"> 455</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ICFG.html#a0d16e302515ffa0033e02ee8f6b3b590">ICFG::view</a>()</div>
|
|
486
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> {</div>
|
|
487
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <a class="code" href="namespaceSVF.html#a4582a7d33a5631a5a38973f50035327e">SVF::ViewGraph</a>(<span class="keyword">this</span>, <span class="stringliteral">"Interprocedural Control-Flow Graph"</span>);</div>
|
|
488
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> }</div>
|
|
489
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  </div>
|
|
490
|
+
<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824"> 463</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">ICFG::updateCallGraph</a>(<a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* callgraph)</div>
|
|
491
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> {</div>
|
|
492
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  PTACallGraph::CallEdgeMap::const_iterator iter = callgraph-><a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().begin();</div>
|
|
493
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph-><a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().end();</div>
|
|
494
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">for</span> (; iter != eiter; iter++)</div>
|
|
495
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  {</div>
|
|
496
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlock = iter->first;</div>
|
|
497
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* cs = callBlock-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>();</div>
|
|
498
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  assert(callBlock-><a class="code" href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">isIndirectCall</a>() && <span class="stringliteral">"this is not an indirect call?"</span>);</div>
|
|
499
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> & functions = iter->second;</div>
|
|
500
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div>
|
|
501
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div>
|
|
502
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div>
|
|
503
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(cs);</div>
|
|
504
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">getRetICFGNode</a>(cs);</div>
|
|
505
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(callee))</div>
|
|
506
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(callBlockNode, retBlockNode);</div>
|
|
507
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">else</span></div>
|
|
508
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  {</div>
|
|
509
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* calleeEntryNode = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(callee);</div>
|
|
510
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* calleeExitNode = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(callee);</div>
|
|
511
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* callEdge = <a class="code" href="classSVF_1_1ICFG.html#a2ad6c1e49cc847df18342cbbe6224863">addCallEdge</a>(callBlockNode, calleeEntryNode, cs))</div>
|
|
512
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  {</div>
|
|
513
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : callBlockNode-><a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
514
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  {</div>
|
|
515
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE = SVFUtil::dyn_cast<CallPE>(stmt))</div>
|
|
516
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  {</div>
|
|
517
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">if</span>(callPE->getFunEntryICFGNode() == calleeEntryNode)</div>
|
|
518
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  SVFUtil::cast<CallCFGEdge>(callEdge)->addCallPE(callPE);</div>
|
|
519
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  }</div>
|
|
520
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  }</div>
|
|
521
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div>
|
|
522
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* retEdge = <a class="code" href="classSVF_1_1ICFG.html#a8a5e7571e804702a2d0af7d420f21b33">addRetEdge</a>(calleeExitNode, retBlockNode, cs))</div>
|
|
523
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  {</div>
|
|
524
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : retBlockNode-><a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
525
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  {</div>
|
|
526
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE = SVFUtil::dyn_cast<RetPE>(stmt))</div>
|
|
527
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div>
|
|
528
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">if</span>(retPE->getFunExitICFGNode() == calleeExitNode)</div>
|
|
529
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  SVFUtil::cast<RetCFGEdge>(retEdge)->addRetPE(retPE);</div>
|
|
530
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  }</div>
|
|
531
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  }</div>
|
|
532
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div>
|
|
533
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  </div>
|
|
534
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(callBlockNode,retBlockNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div>
|
|
535
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <a class="code" href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">removeICFGEdge</a>(edge);</div>
|
|
536
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  }</div>
|
|
537
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  </div>
|
|
538
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div>
|
|
539
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  }</div>
|
|
540
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="comment">// dump ICFG</span></div>
|
|
541
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ae7ccfb3d1308e205e5014849dcc43d9a">Options::DumpICFG</a>())</div>
|
|
542
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  {</div>
|
|
543
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">"icfg_final"</span>);</div>
|
|
544
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  }</div>
|
|
545
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> }</div>
|
|
546
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  </div>
|
|
547
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div>
|
|
548
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> {</div>
|
|
549
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="keyword">template</span><></div>
|
|
550
|
+
<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html"> 528</a></span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1DOTGraphTraits.html">DOTGraphTraits</a><<a class="code" href="classSVF_1_1ICFG.html">ICFG</a>*> : <span class="keyword">public</span> <a class="code" href="structSVF_1_1DOTGraphTraits.html">DOTGraphTraits<SVFIR*></a></div>
|
|
551
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> {</div>
|
|
552
552
|
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  </div>
|
|
553
|
-
<div class="line"><a name="
|
|
554
|
-
<div class="line"><a name="
|
|
555
|
-
<div class="line"><a name="
|
|
553
|
+
<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a4a53de3cf04961b3d00e6b474b838fcd"> 531</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a4a53de3cf04961b3d00e6b474b838fcd">NodeType</a>;</div>
|
|
554
|
+
<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#af0d447adf06f88bad4b25ba8fd14efd5"> 532</a></span>  <a class="code" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#af0d447adf06f88bad4b25ba8fd14efd5">DOTGraphTraits</a>(<span class="keywordtype">bool</span> isSimple = <span class="keyword">false</span>) :</div>
|
|
555
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <a class="code" href="structSVF_1_1DOTGraphTraits.html">DOTGraphTraits</a><<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>*>(isSimple)</div>
|
|
556
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  {</div>
|
|
556
557
|
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  }</div>
|
|
557
558
|
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  </div>
|
|
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="l00543"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#
|
|
559
|
+
<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a4938f51cfb9a5b63b89ab02d9e1950ad"> 538</a></span>  <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a4938f51cfb9a5b63b89ab02d9e1950ad">getGraphName</a>(<a class="code" href="classSVF_1_1ICFG.html">ICFG</a>*)</div>
|
|
560
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  {</div>
|
|
561
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">return</span> <span class="stringliteral">"ICFG"</span>;</div>
|
|
562
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  }</div>
|
|
563
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  </div>
|
|
564
|
+
<div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a04de29b725e362137f9469850cf24eed"> 543</a></span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a04de29b725e362137f9469850cf24eed">getNodeLabel</a>(<a class="code" href="classSVF_1_1ICFGNode.html">NodeType</a> *node, <a class="code" href="classSVF_1_1ICFG.html">ICFG</a> *graph)</div>
|
|
564
565
|
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  {</div>
|
|
565
|
-
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">return</span> node
|
|
566
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">return</span> getSimpleNodeLabel(node, graph);</div>
|
|
566
567
|
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  }</div>
|
|
567
568
|
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  </div>
|
|
568
|
-
<div class="line"><a name="
|
|
569
|
-
<div class="line"><a name="
|
|
570
|
-
<div class="line"><a name="
|
|
571
|
-
<div class="line"><a name="
|
|
572
|
-
<div class="line"><a name="
|
|
573
|
-
<div class="line"><a name="
|
|
574
|
-
<div class="line"><a name="
|
|
575
|
-
<div class="line"><a name="
|
|
576
|
-
<div class="line"><a name="
|
|
577
|
-
<div class="line"><a name="
|
|
578
|
-
<div class="line"><a name="
|
|
579
|
-
<div class="line"><a name="
|
|
580
|
-
<div class="line"><a name="
|
|
581
|
-
<div class="line"><a name="
|
|
582
|
-
<div class="line"><a name="
|
|
583
|
-
<div class="line"><a name="
|
|
584
|
-
<div class="line"><a name="
|
|
585
|
-
<div class="line"><a name="
|
|
586
|
-
<div class="line"><a name="
|
|
587
|
-
<div class="line"><a name="
|
|
588
|
-
<div class="line"><a name="
|
|
589
|
-
<div class="line"><a name="
|
|
590
|
-
<div class="line"><a name="
|
|
591
|
-
<div class="line"><a name="
|
|
592
|
-
<div class="line"><a name="
|
|
593
|
-
<div class="line"><a name="
|
|
594
|
-
<div class="line"><a name="
|
|
595
|
-
<div class="line"><a name="
|
|
596
|
-
<div class="line"><a name="
|
|
597
|
-
<div class="line"><a name="
|
|
598
|
-
<div class="line"><a name="
|
|
599
|
-
<div class="line"><a name="
|
|
600
|
-
<div class="line"><a name="
|
|
601
|
-
<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="
|
|
608
|
-
<div class="line"><a name="
|
|
609
|
-
<div class="line"><a name="
|
|
610
|
-
<div class="line"><a name="
|
|
611
|
-
<div class="line"><a name="
|
|
612
|
-
<div class="line"><a name="
|
|
613
|
-
<div class="line"><a name="
|
|
614
|
-
<div class="line"><a name="
|
|
615
|
-
<div class="line"><a name="
|
|
616
|
-
<div class="line"><a name="
|
|
617
|
-
<div class="line"><a name="
|
|
618
|
-
<div class="line"><a name="
|
|
619
|
-
<div class="line"><a name="
|
|
620
|
-
<div class="line"><a name="
|
|
621
|
-
<div class="line"><a name="
|
|
622
|
-
<div class="line"><a name="
|
|
623
|
-
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  assert(edge && <span class="stringliteral">"No edge found!!"</span>);</div>
|
|
569
|
+
<div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a8964f2454b3e0887de6a0f3c9731e0aa"> 549</a></span>  <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a8964f2454b3e0887de6a0f3c9731e0aa">getSimpleNodeLabel</a>(<a class="code" href="classSVF_1_1ICFGNode.html">NodeType</a> *node, <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>*)</div>
|
|
570
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  {</div>
|
|
571
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1ICFGNode.html#af1b6fd9ea200ab0ff51d48a4872c921a">toString</a>();</div>
|
|
572
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div>
|
|
573
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  </div>
|
|
574
|
+
<div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#ada6dd55df689908741823e8e3a3cf289"> 554</a></span>  <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#ada6dd55df689908741823e8e3a3cf289">getNodeAttributes</a>(<a class="code" href="classSVF_1_1ICFGNode.html">NodeType</a> *node, <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>*)</div>
|
|
575
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  {</div>
|
|
576
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
577
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  std::stringstream rawstr(str);</div>
|
|
578
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  </div>
|
|
579
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">if</span>(SVFUtil::isa<IntraICFGNode>(node))</div>
|
|
580
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  {</div>
|
|
581
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div>
|
|
582
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div>
|
|
583
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FunEntryICFGNode>(node))</div>
|
|
584
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  {</div>
|
|
585
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  rawstr << <span class="stringliteral">"color=yellow"</span>;</div>
|
|
586
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  }</div>
|
|
587
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FunExitICFGNode>(node))</div>
|
|
588
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  {</div>
|
|
589
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  rawstr << <span class="stringliteral">"color=green"</span>;</div>
|
|
590
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  }</div>
|
|
591
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<CallICFGNode>(node))</div>
|
|
592
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  {</div>
|
|
593
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  rawstr << <span class="stringliteral">"color=red"</span>;</div>
|
|
594
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  }</div>
|
|
595
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<RetICFGNode>(node))</div>
|
|
596
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  {</div>
|
|
597
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  rawstr << <span class="stringliteral">"color=blue"</span>;</div>
|
|
598
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div>
|
|
599
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GlobalICFGNode>(node))</div>
|
|
600
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  {</div>
|
|
601
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  rawstr << <span class="stringliteral">"color=purple"</span>;</div>
|
|
602
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  }</div>
|
|
603
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">else</span></div>
|
|
604
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"no such kind of node!!"</span>);</div>
|
|
605
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  </div>
|
|
606
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  rawstr << <span class="stringliteral">""</span>;</div>
|
|
607
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  </div>
|
|
608
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
609
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  }</div>
|
|
610
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  </div>
|
|
611
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keyword">template</span><<span class="keyword">class</span> EdgeIter></div>
|
|
612
|
+
<div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a9967092a5e97b6d684abcc718fe6e688"> 592</a></span>  <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a9967092a5e97b6d684abcc718fe6e688">getEdgeAttributes</a>(<a class="code" href="classSVF_1_1ICFGNode.html">NodeType</a>*, EdgeIter EI, <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>*)</div>
|
|
613
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  {</div>
|
|
614
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *(EI.getCurrent());</div>
|
|
615
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  assert(edge && <span class="stringliteral">"No edge found!!"</span>);</div>
|
|
616
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CallCFGEdge>(edge))</div>
|
|
617
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=solid,color=red"</span>;</div>
|
|
618
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetCFGEdge>(edge))</div>
|
|
619
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=solid,color=blue"</span>;</div>
|
|
620
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">else</span></div>
|
|
621
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=solid"</span>;</div>
|
|
622
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div>
|
|
623
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  }</div>
|
|
624
624
|
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  </div>
|
|
625
|
-
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> 
|
|
626
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> 
|
|
627
|
-
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> 
|
|
628
|
-
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> 
|
|
629
|
-
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> 
|
|
630
|
-
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> 
|
|
631
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  </div>
|
|
632
|
-
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> 
|
|
633
|
-
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> 
|
|
634
|
-
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> 
|
|
635
|
-
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> 
|
|
625
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keyword">template</span><<span class="keyword">class</span> EdgeIter></div>
|
|
626
|
+
<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a977a85211fc236f357f107b6721feaa0"> 606</a></span>  <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a977a85211fc236f357f107b6721feaa0">getEdgeSourceLabel</a>(<a class="code" href="classSVF_1_1ICFGNode.html">NodeType</a>*, EdgeIter EI)</div>
|
|
627
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div>
|
|
628
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *(EI.getCurrent());</div>
|
|
629
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  assert(edge && <span class="stringliteral">"No edge found!!"</span>);</div>
|
|
630
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  </div>
|
|
631
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
632
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  std::stringstream rawstr(str);</div>
|
|
633
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CallCFGEdge.html">CallCFGEdge</a>* dirCall = SVFUtil::dyn_cast<CallCFGEdge>(edge))</div>
|
|
634
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  rawstr << dirCall->getCallSite();</div>
|
|
635
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1RetCFGEdge.html">RetCFGEdge</a>* dirRet = SVFUtil::dyn_cast<RetCFGEdge>(edge))</div>
|
|
636
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  rawstr << dirRet->getCallSite();</div>
|
|
637
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  </div>
|
|
638
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
639
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  }</div>
|
|
640
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> };</div>
|
|
641
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> } <span class="comment">// End namespace llvm</span></div>
|
|
636
642
|
</div><!-- fragment --></div><!-- contents -->
|
|
637
643
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a70421a19a494eb6131a9ae72ef1a64d6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">SVF::ICFG::checkIntraEdgeParents</a></div><div class="ttdeci">void checkIntraEdgeParents(const ICFGNode *srcNode, const ICFGNode *dstNode)</div><div class="ttdoc">sanitize Intra edges, verify that both nodes belong to the same function.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00173">ICFG.h:173</a></div></div>
|
|
638
644
|
<div class="ttc" id="aclassSVF_1_1FunEntryICFGNode_html_a7dd691564b9d7f760678a99977a2d655"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html#a7dd691564b9d7f760678a99977a2d655">SVF::FunEntryICFGNode::FunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode(NodeID id)</div><div class="ttdoc">Constructor to create empty FunEntryICFGNode (for SVFIRReader/deserialization)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00272">ICFGNode.h:272</a></div></div>
|
|
639
645
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a2401b022638769f59f86ab424a189b6e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string & getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00243">SVFValue.h:243</a></div></div>
|
|
640
646
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a1490b28446b9d8efee567ec02e2abcf3"><div class="ttname"><a href="classSVF_1_1ICFG.html#a1490b28446b9d8efee567ec02e2abcf3">SVF::ICFG::getCallBlock</a></div><div class="ttdeci">CallICFGNode * getCallBlock(const SVFInstruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00284">ICFG.h:284</a></div></div>
|
|
641
|
-
<div class="ttc" id="
|
|
647
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a97b0ad9fd31d7982f44a839605566347"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a97b0ad9fd31d7982f44a839605566347">SVF::SVFFunction::isNotRetFunction</a></div><div class="ttdeci">bool isNotRetFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00466">SVFValue.h:466</a></div></div>
|
|
648
|
+
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a7bde256bc906af7f7204929019f4a33e"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">SVF::SVFBasicBlock::front</a></div><div class="ttdeci">const SVFInstruction * front() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00598">SVFValue.h:598</a></div></div>
|
|
642
649
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a4af4db2fe43846609d2ed1d7022b1be1"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00188">SVFUtil.h:188</a></div></div>
|
|
643
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_ae1a4cb907f4313c253576c51955f2b53"><div class="ttname"><a href="classSVF_1_1ICFG.html#ae1a4cb907f4313c253576c51955f2b53">SVF::ICFG::~ICFG</a></div><div class="ttdeci">~ICFG() override</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
650
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_ae1a4cb907f4313c253576c51955f2b53"><div class="ttname"><a href="classSVF_1_1ICFG.html#ae1a4cb907f4313c253576c51955f2b53">SVF::ICFG::~ICFG</a></div><div class="ttdeci">~ICFG() override</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00206">ICFG.cpp:206</a></div></div>
|
|
644
651
|
<div class="ttc" id="aclassSVF_1_1CallCFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallCFGEdge.html">SVF::CallCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00176">ICFGEdge.h:176</a></div></div>
|
|
645
652
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_a0931220d7a38e03f206cbdc6465d32ad"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">SVF::GenericNode::hasOutgoingEdge</a></div><div class="ttdeci">bool hasOutgoingEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00209">GenericGraph.h:209</a></div></div>
|
|
646
653
|
<div class="ttc" id="aclassSVF_1_1RetICFGNode_html_a189125c2e5c3927d1b70f68e6e4c4f2e"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html#a189125c2e5c3927d1b70f68e6e4c4f2e">SVF::RetICFGNode::getCallSite</a></div><div class="ttdeci">const SVFInstruction * getCallSite() const</div><div class="ttdoc">Return callsite.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00512">ICFGNode.h:512</a></div></div>
|
|
@@ -651,28 +658,28 @@ $(function() {
|
|
|
651
658
|
<div class="ttc" id="aclassSVF_1_1FunEntryICFGNode_html_ac2451fdc53f319bc92528af7edc94b2d"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html#ac2451fdc53f319bc92528af7edc94b2d">SVF::FunEntryICFGNode::getFun</a></div><div class="ttdeci">const SVFFunction * getFun() const</div><div class="ttdoc">Return function.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00278">ICFGNode.h:278</a></div></div>
|
|
652
659
|
<div class="ttc" id="aclassSVF_1_1FunEntryICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html">SVF::FunEntryICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00261">ICFGNode.h:261</a></div></div>
|
|
653
660
|
<div class="ttc" id="aclassSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00487">ICFGNode.h:487</a></div></div>
|
|
654
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a1589272ab8eff17c1973f17038ef6eb3"><div class="ttname"><a href="classSVF_1_1ICFG.html#a1589272ab8eff17c1973f17038ef6eb3">SVF::ICFG::addConditionalIntraEdge</a></div><div class="ttdeci">ICFGEdge * addConditionalIntraEdge(ICFGNode *srcNode, ICFGNode *dstNode, const SVFValue *condition, s32_t branchCondVal)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
661
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a1589272ab8eff17c1973f17038ef6eb3"><div class="ttname"><a href="classSVF_1_1ICFG.html#a1589272ab8eff17c1973f17038ef6eb3">SVF::ICFG::addConditionalIntraEdge</a></div><div class="ttdeci">ICFGEdge * addConditionalIntraEdge(ICFGNode *srcNode, ICFGNode *dstNode, const SVFValue *condition, s32_t branchCondVal)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00388">ICFG.cpp:388</a></div></div>
|
|
655
662
|
<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>
|
|
656
663
|
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html_a90fd0b8e44fba1a7eb76d15bce085d66"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const SVFInstruction * getCallSite() const</div><div class="ttdoc">Return callsite.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00409">ICFGNode.h:409</a></div></div>
|
|
657
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a0d16e302515ffa0033e02ee8f6b3b590"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0d16e302515ffa0033e02ee8f6b3b590">SVF::ICFG::view</a></div><div class="ttdeci">void view()</div><div class="ttdoc">View graph from the debugger.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
664
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a0d16e302515ffa0033e02ee8f6b3b590"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0d16e302515ffa0033e02ee8f6b3b590">SVF::ICFG::view</a></div><div class="ttdeci">void view()</div><div class="ttdoc">View graph from the debugger.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00455">ICFG.cpp:455</a></div></div>
|
|
658
665
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
659
666
|
<div class="ttc" id="aclassSVF_1_1InterICFGNode_html"><div class="ttname"><a href="classSVF_1_1InterICFGNode.html">SVF::InterICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00223">ICFGNode.h:223</a></div></div>
|
|
660
667
|
<div class="ttc" id="aICFG_8h_html"><div class="ttname"><a href="ICFG_8h.html">ICFG.h</a></div></div>
|
|
661
668
|
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_a0cd08725df3e8665762ee37b5d4c138a"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a0cd08725df3e8665762ee37b5d4c138a">SVF::ICFGNode::bb</a></div><div class="ttdeci">const SVFBasicBlock * bb</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00139">ICFGNode.h:139</a></div></div>
|
|
662
669
|
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_a6c68f52dd90728073fb79141df9b0661"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">SVF::ICFGNode::getSVFStmts</a></div><div class="ttdeci">const SVFStmtList & getSVFStmts() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00127">ICFGNode.h:127</a></div></div>
|
|
663
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a683f33b8ad507a33809511954c7c1acb"><div class="ttname"><a href="classSVF_1_1ICFG.html#a683f33b8ad507a33809511954c7c1acb">SVF::ICFG::ICFG</a></div><div class="ttdeci">ICFG()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
670
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a683f33b8ad507a33809511954c7c1acb"><div class="ttname"><a href="classSVF_1_1ICFG.html#a683f33b8ad507a33809511954c7c1acb">SVF::ICFG::ICFG</a></div><div class="ttdeci">ICFG()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00202">ICFG.cpp:202</a></div></div>
|
|
664
671
|
<div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00606">SVFStatements.h:606</a></div></div>
|
|
665
|
-
<div class="ttc" id="aclassSVF_1_1FunEntryICFGNode_html_a3e9032ea2388682e568b6324fe8e4882"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html#a3e9032ea2388682e568b6324fe8e4882">SVF::FunEntryICFGNode::toString</a></div><div class="ttdeci">const virtual std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
672
|
+
<div class="ttc" id="aclassSVF_1_1FunEntryICFGNode_html_a3e9032ea2388682e568b6324fe8e4882"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html#a3e9032ea2388682e568b6324fe8e4882">SVF::FunEntryICFGNode::toString</a></div><div class="ttdeci">const virtual std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00103">ICFG.cpp:103</a></div></div>
|
|
666
673
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a1af9ae1c2efb4cb7897d5234d035c06b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">SVF::ICFG::addFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * addFunEntryBlock(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00252">ICFG.h:252</a></div></div>
|
|
667
674
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_ad0183e8975e7190a121d8cb2aeec3d94"><div class="ttname"><a href="classSVF_1_1ICFG.html#ad0183e8975e7190a121d8cb2aeec3d94">SVF::ICFG::addIntraBlock</a></div><div class="ttdeci">IntraICFGNode * addIntraBlock(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00236">ICFG.h:236</a></div></div>
|
|
668
675
|
<div class="ttc" id="aclassSVF_1_1Options_html_ae7ccfb3d1308e205e5014849dcc43d9a"><div class="ttname"><a href="classSVF_1_1Options.html#ae7ccfb3d1308e205e5014849dcc43d9a">SVF::Options::DumpICFG</a></div><div class="ttdeci">static const Option< bool > DumpICFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00136">Options.h:136</a></div></div>
|
|
669
676
|
<div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
|
|
670
677
|
<div class="ttc" id="aclassSVF_1_1RetCFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetCFGEdge.html">SVF::RetCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00227">ICFGEdge.h:227</a></div></div>
|
|
671
|
-
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_af0d447adf06f88bad4b25ba8fd14efd5"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#af0d447adf06f88bad4b25ba8fd14efd5">SVF::DOTGraphTraits< ICFG * >::DOTGraphTraits</a></div><div class="ttdeci">DOTGraphTraits(bool isSimple=false)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
678
|
+
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_af0d447adf06f88bad4b25ba8fd14efd5"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#af0d447adf06f88bad4b25ba8fd14efd5">SVF::DOTGraphTraits< ICFG * >::DOTGraphTraits</a></div><div class="ttdeci">DOTGraphTraits(bool isSimple=false)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00532">ICFG.cpp:532</a></div></div>
|
|
672
679
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_acc261924103bd0c357acd3acfa6cf38a"><div class="ttname"><a href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">SVF::ICFG::getFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function entry node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00245">ICFG.h:245</a></div></div>
|
|
673
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_aa41516cdd2be5066adf22798a4fe2213"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
674
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a2ad6c1e49cc847df18342cbbe6224863"><div class="ttname"><a href="classSVF_1_1ICFG.html#a2ad6c1e49cc847df18342cbbe6224863">SVF::ICFG::addCallEdge</a></div><div class="ttdeci">ICFGEdge * addCallEdge(ICFGNode *srcNode, ICFGNode *dstNode, const SVFInstruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
675
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a881fe977f3a6fde223bd786121e35fcf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
680
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_aa41516cdd2be5066adf22798a4fe2213"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00241">ICFG.cpp:241</a></div></div>
|
|
681
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a2ad6c1e49cc847df18342cbbe6224863"><div class="ttname"><a href="classSVF_1_1ICFG.html#a2ad6c1e49cc847df18342cbbe6224863">SVF::ICFG::addCallEdge</a></div><div class="ttdeci">ICFGEdge * addCallEdge(ICFGNode *srcNode, ICFGNode *dstNode, const SVFInstruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00410">ICFG.cpp:410</a></div></div>
|
|
682
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a881fe977f3a6fde223bd786121e35fcf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00254">ICFG.cpp:254</a></div></div>
|
|
676
683
|
<div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00546">SVFStatements.h:546</a></div></div>
|
|
677
684
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
|
678
685
|
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html_a4e6d228dfc678618a423e8293877f04c"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a4e6d228dfc678618a423e8293877f04c">SVF::ICFGEdge::isIntraCFGEdge</a></div><div class="ttdeci">bool isIntraCFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00085">ICFGEdge.h:85</a></div></div>
|
|
@@ -681,57 +688,57 @@ $(function() {
|
|
|
681
688
|
<div class="ttc" id="anamespaceSVF_html_a4582a7d33a5631a5a38973f50035327e"><div class="ttname"><a href="namespaceSVF.html#a4582a7d33a5631a5a38973f50035327e">SVF::ViewGraph</a></div><div class="ttdeci">void ViewGraph(const GraphType &G, const std::string &name, bool ShortNames=false, GraphProgram::Name Program=GraphProgram::DOT)</div><div class="ttdef"><b>Definition:</b> <a href="GraphWriter_8h_source.html#l00371">GraphWriter.h:371</a></div></div>
|
|
682
689
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_afeee2b61f8a84e1276f8955c4f6cf22d"><div class="ttname"><a href="classSVF_1_1ICFG.html#afeee2b61f8a84e1276f8955c4f6cf22d">SVF::ICFG::getIntraBlock</a></div><div class="ttdeci">IntraICFGNode * getIntraBlock(const SVFInstruction *inst)</div><div class="ttdoc">Get/Add IntraBlock ICFGNode.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00229">ICFG.h:229</a></div></div>
|
|
683
690
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
684
|
-
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a4938f51cfb9a5b63b89ab02d9e1950ad"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a4938f51cfb9a5b63b89ab02d9e1950ad">SVF::DOTGraphTraits< ICFG * >::getGraphName</a></div><div class="ttdeci">static std::string getGraphName(ICFG *)</div><div class="ttdoc">Return name of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
685
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_aaf521832909781894659725300cf4f49"><div class="ttname"><a href="classSVF_1_1ICFG.html#aaf521832909781894659725300cf4f49">SVF::ICFG::getIntraICFGNode</a></div><div class="ttdeci">IntraICFGNode * getIntraICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
691
|
+
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a4938f51cfb9a5b63b89ab02d9e1950ad"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a4938f51cfb9a5b63b89ab02d9e1950ad">SVF::DOTGraphTraits< ICFG * >::getGraphName</a></div><div class="ttdeci">static std::string getGraphName(ICFG *)</div><div class="ttdoc">Return name of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00538">ICFG.cpp:538</a></div></div>
|
|
692
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_aaf521832909781894659725300cf4f49"><div class="ttname"><a href="classSVF_1_1ICFG.html#aaf521832909781894659725300cf4f49">SVF::ICFG::getIntraICFGNode</a></div><div class="ttdeci">IntraICFGNode * getIntraICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00265">ICFG.cpp:265</a></div></div>
|
|
686
693
|
<div class="ttc" id="aclassSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00081">GenericGraph.h:81</a></div></div>
|
|
687
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_af1b2d2839f811a00103df87342dfc919"><div class="ttname"><a href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitICFGNode * getFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function exit node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
694
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_af1b2d2839f811a00103df87342dfc919"><div class="ttname"><a href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitICFGNode * getFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function exit node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00283">ICFG.cpp:283</a></div></div>
|
|
688
695
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
|
|
689
696
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html_ad49fa2a288945f6910deb11acdf6a42d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">SVF::PTACallGraph::getIndCallMap</a></div><div class="ttdeci">CallEdgeMap & getIndCallMap()</div><div class="ttdoc">Get callees from an indirect callsite.</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00280">PTACallGraph.h:280</a></div></div>
|
|
690
|
-
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a8ca4fa87f4c26b71c6e03c8f32db1071"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a8ca4fa87f4c26b71c6e03c8f32db1071">SVF::SVFFunction::getExitBB</a></div><div class="ttdeci">const SVFBasicBlock * getExitBB() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
697
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a8ca4fa87f4c26b71c6e03c8f32db1071"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a8ca4fa87f4c26b71c6e03c8f32db1071">SVF::SVFFunction::getExitBB</a></div><div class="ttdeci">const SVFBasicBlock * getExitBB() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00418">SVFValue.h:418</a></div></div>
|
|
691
698
|
<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>
|
|
692
699
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
|
|
693
700
|
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00385">ICFGNode.h:385</a></div></div>
|
|
694
701
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
|
|
695
|
-
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a4a53de3cf04961b3d00e6b474b838fcd"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a4a53de3cf04961b3d00e6b474b838fcd">SVF::DOTGraphTraits< ICFG * >::NodeType</a></div><div class="ttdeci">ICFGNode NodeType</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
702
|
+
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a4a53de3cf04961b3d00e6b474b838fcd"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a4a53de3cf04961b3d00e6b474b838fcd">SVF::DOTGraphTraits< ICFG * >::NodeType</a></div><div class="ttdeci">ICFGNode NodeType</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00531">ICFG.cpp:531</a></div></div>
|
|
696
703
|
<div class="ttc" id="aclassSVF_1_1IntraICFGNode_html"><div class="ttname"><a href="classSVF_1_1IntraICFGNode.html">SVF::IntraICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00180">ICFGNode.h:180</a></div></div>
|
|
697
704
|
<div class="ttc" id="aSVFIR_8h_html"><div class="ttname"><a href="SVFIR_8h.html">SVFIR.h</a></div></div>
|
|
698
705
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00088">ICFG.h:88</a></div></div>
|
|
699
|
-
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a49a6e9c0661135ceda2dd4d84c4b24ae"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a49a6e9c0661135ceda2dd4d84c4b24ae">SVF::SVFFunction::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
706
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a49a6e9c0661135ceda2dd4d84c4b24ae"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a49a6e9c0661135ceda2dd4d84c4b24ae">SVF::SVFFunction::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00441">SVFValue.h:441</a></div></div>
|
|
700
707
|
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html">SVF::IntraCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00113">ICFGEdge.h:113</a></div></div>
|
|
701
708
|
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541">SVF::ICFGEdge::RetCF</a></div><div class="ttdeci">@ RetCF</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00057">ICFGEdge.h:57</a></div></div>
|
|
702
709
|
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_html"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits.html">SVF::DOTGraphTraits</a></div><div class="ttdef"><b>Definition:</b> <a href="DOTGraphTraits_8h_source.html#l00181">DOTGraphTraits.h:181</a></div></div>
|
|
703
710
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
704
|
-
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html_a7233609f62f278b738036e8de9bbbfc8"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a7233609f62f278b738036e8de9bbbfc8">SVF::ICFGEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
711
|
+
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html_a7233609f62f278b738036e8de9bbbfc8"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a7233609f62f278b738036e8de9bbbfc8">SVF::ICFGEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00156">ICFG.cpp:156</a></div></div>
|
|
705
712
|
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html_aa11226a2e4fa6a7b1d78006cc8ca0518"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">SVF::CallICFGNode::isIndirectCall</a></div><div class="ttdeci">bool isIndirectCall() const</div><div class="ttdoc">Return true if this is an indirect call.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00440">ICFGNode.h:440</a></div></div>
|
|
706
713
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a534625b10673efe5b0f344bfebf9b3cf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">SVF::ICFG::removeICFGEdge</a></div><div class="ttdeci">void removeICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00152">ICFG.h:152</a></div></div>
|
|
707
|
-
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html_ab07e504bbc100fa3e111d62de815a88c"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#ab07e504bbc100fa3e111d62de815a88c">SVF::CallICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
708
|
-
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a8964f2454b3e0887de6a0f3c9731e0aa"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a8964f2454b3e0887de6a0f3c9731e0aa">SVF::DOTGraphTraits< ICFG * >::getSimpleNodeLabel</a></div><div class="ttdeci">static std::string getSimpleNodeLabel(NodeType *node, ICFG *)</div><div class="ttdoc">Return the label of an ICFG node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
714
|
+
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html_ab07e504bbc100fa3e111d62de815a88c"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#ab07e504bbc100fa3e111d62de815a88c">SVF::CallICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00134">ICFG.cpp:134</a></div></div>
|
|
715
|
+
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a8964f2454b3e0887de6a0f3c9731e0aa"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a8964f2454b3e0887de6a0f3c9731e0aa">SVF::DOTGraphTraits< ICFG * >::getSimpleNodeLabel</a></div><div class="ttdeci">static std::string getSimpleNodeLabel(NodeType *node, ICFG *)</div><div class="ttdoc">Return the label of an ICFG node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00549">ICFG.cpp:549</a></div></div>
|
|
709
716
|
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_ae526280cca2d6cbb2868c80461bc16da"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">SVF::ICFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Return the function of this ICFGNode.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00086">ICFGNode.h:86</a></div></div>
|
|
710
|
-
<div class="ttc" id="aclassSVF_1_1RetICFGNode_html_ab0b54268167a593e2db9d02d3dd9c4f1"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html#ab0b54268167a593e2db9d02d3dd9c4f1">SVF::RetICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
711
|
-
<div class="ttc" id="aclassSVF_1_1CallCFGEdge_html_a2ad72b065dcb752e0779de9ff69c443a"><div class="ttname"><a href="classSVF_1_1CallCFGEdge.html#a2ad72b065dcb752e0779de9ff69c443a">SVF::CallCFGEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
712
|
-
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a04de29b725e362137f9469850cf24eed"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a04de29b725e362137f9469850cf24eed">SVF::DOTGraphTraits< ICFG * >::getNodeLabel</a></div><div class="ttdeci">std::string getNodeLabel(NodeType *node, ICFG *graph)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
717
|
+
<div class="ttc" id="aclassSVF_1_1RetICFGNode_html_ab0b54268167a593e2db9d02d3dd9c4f1"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html#ab0b54268167a593e2db9d02d3dd9c4f1">SVF::RetICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00145">ICFG.cpp:145</a></div></div>
|
|
718
|
+
<div class="ttc" id="aclassSVF_1_1CallCFGEdge_html_a2ad72b065dcb752e0779de9ff69c443a"><div class="ttname"><a href="classSVF_1_1CallCFGEdge.html#a2ad72b065dcb752e0779de9ff69c443a">SVF::CallCFGEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00176">ICFG.cpp:176</a></div></div>
|
|
719
|
+
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a04de29b725e362137f9469850cf24eed"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a04de29b725e362137f9469850cf24eed">SVF::DOTGraphTraits< ICFG * >::getNodeLabel</a></div><div class="ttdeci">std::string getNodeLabel(NodeType *node, ICFG *graph)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00543">ICFG.cpp:543</a></div></div>
|
|
713
720
|
<div class="ttc" id="aclassSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00051">SVFStatements.h:51</a></div></div>
|
|
714
|
-
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_ada6dd55df689908741823e8e3a3cf289"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#ada6dd55df689908741823e8e3a3cf289">SVF::DOTGraphTraits< ICFG * >::getNodeAttributes</a></div><div class="ttdeci">static std::string getNodeAttributes(NodeType *node, ICFG *)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
721
|
+
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_ada6dd55df689908741823e8e3a3cf289"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#ada6dd55df689908741823e8e3a3cf289">SVF::DOTGraphTraits< ICFG * >::getNodeAttributes</a></div><div class="ttdeci">static std::string getNodeAttributes(NodeType *node, ICFG *)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00554">ICFG.cpp:554</a></div></div>
|
|
715
722
|
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html_ad7b35b7c9abb07122eaa8517dae56508"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#ad7b35b7c9abb07122eaa8517dae56508">SVF::IntraCFGEdge::setBranchCondition</a></div><div class="ttdeci">void setBranchCondition(const SVFValue *c, s64_t bVal)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00151">ICFGEdge.h:151</a></div></div>
|
|
716
723
|
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html_a2657751b285cb6db8084da38b00dcab9"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#a2657751b285cb6db8084da38b00dcab9">SVF::IntraCFGEdge::getCondition</a></div><div class="ttdeci">const SVFValue * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00140">ICFGEdge.h:140</a></div></div>
|
|
717
|
-
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a977a85211fc236f357f107b6721feaa0"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a977a85211fc236f357f107b6721feaa0">SVF::DOTGraphTraits< ICFG * >::getEdgeSourceLabel</a></div><div class="ttdeci">static std::string getEdgeSourceLabel(NodeType *, EdgeIter EI)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
724
|
+
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a977a85211fc236f357f107b6721feaa0"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a977a85211fc236f357f107b6721feaa0">SVF::DOTGraphTraits< ICFG * >::getEdgeSourceLabel</a></div><div class="ttdeci">static std::string getEdgeSourceLabel(NodeType *, EdgeIter EI)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00606">ICFG.cpp:606</a></div></div>
|
|
718
725
|
<div class="ttc" id="aSVFModule_8h_html"><div class="ttname"><a href="SVFModule_8h.html">SVFModule.h</a></div></div>
|
|
719
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a86535e50d1feba706b19491d905baef1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">SVF::ICFG::hasInterICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasInterICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
726
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a86535e50d1feba706b19491d905baef1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">SVF::ICFG::hasInterICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasInterICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00312">ICFG.cpp:312</a></div></div>
|
|
720
727
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_ac58aa82eb74616a6608ff51d92f5baf6"><div class="ttname"><a href="classSVF_1_1ICFG.html#ac58aa82eb74616a6608ff51d92f5baf6">SVF::ICFG::addRetBlock</a></div><div class="ttdeci">RetICFGNode * addRetBlock(const SVFInstruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00300">ICFG.h:300</a></div></div>
|
|
721
728
|
<div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
|
|
722
729
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_abb2bbf6e0dc5adae2140a519259e6f17"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#abb2bbf6e0dc5adae2140a519259e6f17">SVF::SVFUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const SVFInstruction *inst)</div><div class="ttdoc">Return true if it is an llvm intrinsic instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00247">SVFUtil.cpp:247</a></div></div>
|
|
723
730
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00217">GenericGraph.h:217</a></div></div>
|
|
724
731
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00309">SVFUtil.h:309</a></div></div>
|
|
725
|
-
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a9967092a5e97b6d684abcc718fe6e688"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a9967092a5e97b6d684abcc718fe6e688">SVF::DOTGraphTraits< ICFG * >::getEdgeAttributes</a></div><div class="ttdeci">static std::string getEdgeAttributes(NodeType *, EdgeIter EI, ICFG *)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
726
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a0dca4655c2f6112a5be1f921b8e81076"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
732
|
+
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4_html_a9967092a5e97b6d684abcc718fe6e688"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a9967092a5e97b6d684abcc718fe6e688">SVF::DOTGraphTraits< ICFG * >::getEdgeAttributes</a></div><div class="ttdeci">static std::string getEdgeAttributes(NodeType *, EdgeIter EI, ICFG *)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00592">ICFG.cpp:592</a></div></div>
|
|
733
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a0dca4655c2f6112a5be1f921b8e81076"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00274">ICFG.cpp:274</a></div></div>
|
|
727
734
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
|
|
728
735
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00184">ICFG.h:184</a></div></div>
|
|
729
736
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
730
737
|
<div class="ttc" id="aclassSVF_1_1CallCFGEdge_html_a3f576a9648945907859dd5922f55bcb3"><div class="ttname"><a href="classSVF_1_1CallCFGEdge.html#a3f576a9648945907859dd5922f55bcb3">SVF::CallCFGEdge::cs</a></div><div class="ttdeci">const SVFInstruction * cs</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00182">ICFGEdge.h:182</a></div></div>
|
|
731
|
-
<div class="ttc" id="aclassSVF_1_1IntraICFGNode_html_a85d3e05cb5a95c2f9d678d9f010419a5"><div class="ttname"><a href="classSVF_1_1IntraICFGNode.html#a85d3e05cb5a95c2f9d678d9f010419a5">SVF::IntraICFGNode::toString</a></div><div class="ttdeci">const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
732
|
-
<div class="ttc" id="aclassSVF_1_1FunExitICFGNode_html_aa73e5a5e577b789842987fec2fb307f9"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html#aa73e5a5e577b789842987fec2fb307f9">SVF::FunExitICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
738
|
+
<div class="ttc" id="aclassSVF_1_1IntraICFGNode_html_a85d3e05cb5a95c2f9d678d9f010419a5"><div class="ttname"><a href="classSVF_1_1IntraICFGNode.html#a85d3e05cb5a95c2f9d678d9f010419a5">SVF::IntraICFGNode::toString</a></div><div class="ttdeci">const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00089">ICFG.cpp:89</a></div></div>
|
|
739
|
+
<div class="ttc" id="aclassSVF_1_1FunExitICFGNode_html_aa73e5a5e577b789842987fec2fb307f9"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html#aa73e5a5e577b789842987fec2fb307f9">SVF::FunExitICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00117">ICFG.cpp:117</a></div></div>
|
|
733
740
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_ac51c8f38efbd2576e150a9fc26a4a41b"><div class="ttname"><a href="classSVF_1_1ICFG.html#ac51c8f38efbd2576e150a9fc26a4a41b">SVF::ICFG::addCallBlock</a></div><div class="ttdeci">CallICFGNode * addCallBlock(const SVFInstruction *cs)</div><div class="ttdoc">Get/Add a call node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00277">ICFG.h:277</a></div></div>
|
|
734
|
-
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
741
|
+
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01284">LLVMUtil.cpp:1284</a></div></div>
|
|
735
742
|
<div class="ttc" id="aclassSVF_1_1FunExitICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html">SVF::FunExitICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00324">ICFGNode.h:324</a></div></div>
|
|
736
743
|
<div class="ttc" id="aclassSVF_1_1GraphPrinter_html_a014217fb0d05c8f2a2f1a6c5b19d3e10"><div class="ttname"><a href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">SVF::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &O, const std::string &GraphName, const GraphType &GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00056">GraphPrinter.h:56</a></div></div>
|
|
737
744
|
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html_a106513578790247f9d96e34c8385b3d8"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#a106513578790247f9d96e34c8385b3d8">SVF::IntraCFGEdge::getSuccessorCondValue</a></div><div class="ttdeci">s64_t getSuccessorCondValue() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00145">ICFGEdge.h:145</a></div></div>
|
|
@@ -739,31 +746,31 @@ $(function() {
|
|
|
739
746
|
<div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
|
|
740
747
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
741
748
|
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_a03587dbd558d8fffe25307b42e3195be"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a03587dbd558d8fffe25307b42e3195be">SVF::ICFGNode::fun</a></div><div class="ttdeci">const SVFFunction * fun</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00138">ICFGNode.h:138</a></div></div>
|
|
742
|
-
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a2f274c3af098ae6a5919246b1b88e7b7"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a2f274c3af098ae6a5919246b1b88e7b7">SVF::SVFFunction::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
743
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_aa662baae5682ef6ec5084fa4147c9709"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">SVF::ICFG::hasIntraICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasIntraICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdoc">Whether we has a SVFG edge.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
744
|
-
<div class="ttc" id="aclassSVF_1_1RetCFGEdge_html_aca97e28617505e482b014dc805cb70aa"><div class="ttname"><a href="classSVF_1_1RetCFGEdge.html#aca97e28617505e482b014dc805cb70aa">SVF::RetCFGEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
749
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a2f274c3af098ae6a5919246b1b88e7b7"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a2f274c3af098ae6a5919246b1b88e7b7">SVF::SVFFunction::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00446">SVFValue.h:446</a></div></div>
|
|
750
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_aa662baae5682ef6ec5084fa4147c9709"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">SVF::ICFG::hasIntraICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasIntraICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdoc">Whether we has a SVFG edge.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00295">ICFG.cpp:295</a></div></div>
|
|
751
|
+
<div class="ttc" id="aclassSVF_1_1RetCFGEdge_html_aca97e28617505e482b014dc805cb70aa"><div class="ttname"><a href="classSVF_1_1RetCFGEdge.html#aca97e28617505e482b014dc805cb70aa">SVF::RetCFGEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00185">ICFG.cpp:185</a></div></div>
|
|
745
752
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_a06a7373b11143e709784de784fa476fe"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">SVF::GenericNode::hasIncomingEdge</a></div><div class="ttdeci">bool hasIncomingEdge() const</div><div class="ttdoc">Has incoming/outgoing edge set.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00205">GenericGraph.h:205</a></div></div>
|
|
746
753
|
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e">SVF::ICFGEdge::CallCF</a></div><div class="ttdeci">@ CallCF</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00056">ICFGEdge.h:56</a></div></div>
|
|
747
|
-
<div class="ttc" id="aclassSVF_1_1GlobalICFGNode_html_ada960e5bdba75c165a67b33c09819c47"><div class="ttname"><a href="classSVF_1_1GlobalICFGNode.html#ada960e5bdba75c165a67b33c09819c47">SVF::GlobalICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
754
|
+
<div class="ttc" id="aclassSVF_1_1GlobalICFGNode_html_ada960e5bdba75c165a67b33c09819c47"><div class="ttname"><a href="classSVF_1_1GlobalICFGNode.html#ada960e5bdba75c165a67b33c09819c47">SVF::GlobalICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00078">ICFG.cpp:78</a></div></div>
|
|
748
755
|
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html_a2ecc0bc3bb3655bf3db3adb732747b49"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a2ecc0bc3bb3655bf3db3adb732747b49">SVF::ICFGEdge::isCallCFGEdge</a></div><div class="ttdeci">bool isCallCFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00077">ICFGEdge.h:77</a></div></div>
|
|
749
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a5a00682b75726cacc1b4d88bbf40c824"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">SVF::ICFG::updateCallGraph</a></div><div class="ttdeci">void updateCallGraph(PTACallGraph *callgraph)</div><div class="ttdoc">update ICFG for indirect calls</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
756
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a5a00682b75726cacc1b4d88bbf40c824"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">SVF::ICFG::updateCallGraph</a></div><div class="ttdeci">void updateCallGraph(PTACallGraph *callgraph)</div><div class="ttdoc">update ICFG for indirect calls</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00463">ICFG.cpp:463</a></div></div>
|
|
750
757
|
<div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
751
758
|
<div class="ttc" id="aclassSVF_1_1IntraICFGNode_html_aee81d1ab3eb9584b34efbe1f821371b7"><div class="ttname"><a href="classSVF_1_1IntraICFGNode.html#aee81d1ab3eb9584b34efbe1f821371b7">SVF::IntraICFGNode::getInst</a></div><div class="ttdeci">const SVFInstruction * getInst() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00197">ICFGNode.h:197</a></div></div>
|
|
752
759
|
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html_ae3e7a6596de9fd3a25a28242a06ddd80"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#ae3e7a6596de9fd3a25a28242a06ddd80">SVF::ICFGEdge::isRetCFGEdge</a></div><div class="ttdeci">bool isRetCFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00081">ICFGEdge.h:81</a></div></div>
|
|
753
|
-
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_a3c193da05d6dee7313a141ae3ab43e97"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a3c193da05d6dee7313a141ae3ab43e97">SVF::ICFGNode::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
760
|
+
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_a3c193da05d6dee7313a141ae3ab43e97"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a3c193da05d6dee7313a141ae3ab43e97">SVF::ICFGNode::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00073">ICFG.cpp:73</a></div></div>
|
|
754
761
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a22d7f37a0cb2df90f73c1f2e3eaa71c6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">SVF::ICFG::getFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00261">ICFG.h:261</a></div></div>
|
|
755
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
756
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a8a5e7571e804702a2d0af7d420f21b33"><div class="ttname"><a href="classSVF_1_1ICFG.html#a8a5e7571e804702a2d0af7d420f21b33">SVF::ICFG::addRetEdge</a></div><div class="ttdeci">ICFGEdge * addRetEdge(ICFGNode *srcNode, ICFGNode *dstNode, const SVFInstruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
757
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a29fb70d6638765ce291c5a8a11fbea64"><div class="ttname"><a href="classSVF_1_1ICFG.html#a29fb70d6638765ce291c5a8a11fbea64">SVF::ICFG::hasThreadICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasThreadICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
758
|
-
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a793f485e92d12cf407f2ffa41861eb3d"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a793f485e92d12cf407f2ffa41861eb3d">SVF::SVFFunction::getEntryBlock</a></div><div class="ttdeci">const SVFBasicBlock * getEntryBlock() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
759
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_a5dd4ac55123501c47c628adcf27e2475"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5dd4ac55123501c47c628adcf27e2475">SVF::ICFG::getICFGEdge</a></div><div class="ttdeci">ICFGEdge * getICFGEdge(const ICFGNode *src, const ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdoc">Get a SVFG edge according to src and dst.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
760
|
-
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_af1b6fd9ea200ab0ff51d48a4872c921a"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#af1b6fd9ea200ab0ff51d48a4872c921a">SVF::ICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
761
|
-
<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#
|
|
762
|
-
<div class="ttc" id="aclassSVF_1_1ICFG_html_adafd8bbb91507a9a78a3f16305812afc"><div class="ttname"><a href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">SVF::ICFG::addIntraEdge</a></div><div class="ttdeci">ICFGEdge * addIntraEdge(ICFGNode *srcNode, ICFGNode *dstNode)</div><div class="ttdoc">Add control-flow edges for top level pointers.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
762
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00447">ICFG.cpp:447</a></div></div>
|
|
763
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a8a5e7571e804702a2d0af7d420f21b33"><div class="ttname"><a href="classSVF_1_1ICFG.html#a8a5e7571e804702a2d0af7d420f21b33">SVF::ICFG::addRetEdge</a></div><div class="ttdeci">ICFGEdge * addRetEdge(ICFGNode *srcNode, ICFGNode *dstNode, const SVFInstruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00428">ICFG.cpp:428</a></div></div>
|
|
764
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a29fb70d6638765ce291c5a8a11fbea64"><div class="ttname"><a href="classSVF_1_1ICFG.html#a29fb70d6638765ce291c5a8a11fbea64">SVF::ICFG::hasThreadICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasThreadICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00329">ICFG.cpp:329</a></div></div>
|
|
765
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a793f485e92d12cf407f2ffa41861eb3d"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a793f485e92d12cf407f2ffa41861eb3d">SVF::SVFFunction::getEntryBlock</a></div><div class="ttdeci">const SVFBasicBlock * getEntryBlock() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00410">SVFValue.h:410</a></div></div>
|
|
766
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_a5dd4ac55123501c47c628adcf27e2475"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5dd4ac55123501c47c628adcf27e2475">SVF::ICFG::getICFGEdge</a></div><div class="ttdeci">ICFGEdge * getICFGEdge(const ICFGNode *src, const ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdoc">Get a SVFG edge according to src and dst.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00347">ICFG.cpp:347</a></div></div>
|
|
767
|
+
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_af1b6fd9ea200ab0ff51d48a4872c921a"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#af1b6fd9ea200ab0ff51d48a4872c921a">SVF::ICFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00065">ICFG.cpp:65</a></div></div>
|
|
768
|
+
<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#l00631">SVFValue.h:631</a></div></div>
|
|
769
|
+
<div class="ttc" id="aclassSVF_1_1ICFG_html_adafd8bbb91507a9a78a3f16305812afc"><div class="ttname"><a href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">SVF::ICFG::addIntraEdge</a></div><div class="ttdeci">ICFGEdge * addIntraEdge(ICFGNode *srcNode, ICFGNode *dstNode)</div><div class="ttdoc">Add control-flow edges for top level pointers.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00369">ICFG.cpp:369</a></div></div>
|
|
763
770
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_afdc3358522417de9a0d3a181a329f722"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#afdc3358522417de9a0d3a181a329f722">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00174">SVFUtil.h:174</a></div></div>
|
|
764
771
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00280">SVFValue.h:280</a></div></div>
|
|
765
772
|
<div class="ttc" id="aclassSVF_1_1FunExitICFGNode_html_a6abaea905a008e27d61ef31bd877dc0e"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html#a6abaea905a008e27d61ef31bd877dc0e">SVF::FunExitICFGNode::FunExitICFGNode</a></div><div class="ttdeci">FunExitICFGNode(NodeID id)</div><div class="ttdoc">Constructor to create empty FunExitICFGNode (for SVFIRReader/deserialization)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00333">ICFGNode.h:333</a></div></div>
|
|
766
|
-
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html_a1e63286b4d6f757ac1220f5f03ae62de"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#a1e63286b4d6f757ac1220f5f03ae62de">SVF::IntraCFGEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#
|
|
773
|
+
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html_a1e63286b4d6f757ac1220f5f03ae62de"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#a1e63286b4d6f757ac1220f5f03ae62de">SVF::IntraCFGEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00164">ICFG.cpp:164</a></div></div>
|
|
767
774
|
<div class="ttc" id="acJSON_8h_html_a1a175e87536301df98c805ac0636ad7c"><div class="ttname"><a href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a></div><div class="ttdeci">const cJSON *const b</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00255">cJSON.h:255</a></div></div>
|
|
768
775
|
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">SVF::ICFGEdge::IntraCF</a></div><div class="ttdeci">@ IntraCF</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00055">ICFGEdge.h:55</a></div></div>
|
|
769
776
|
<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>
|