svf-tools 1.0.351 → 1.0.352
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +44 -45
- package/SVF-doxygen/html/html/ConsG_8h_source.html +21 -21
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +10 -8
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +5 -5
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -2
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +24 -22
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +17 -17
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +15 -14
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +11 -11
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -4
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +19 -21
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +38 -40
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +35 -37
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +21 -23
- package/SVF-doxygen/html/html/SVFStatements_8h.html +0 -4
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +146 -156
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +98 -98
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +13 -13
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +50 -51
- package/SVF-doxygen/html/html/VFG_8h_source.html +35 -35
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +100 -102
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +24 -25
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +17 -18
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt-members.html +28 -29
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +25 -30
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +28 -29
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +23 -24
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +31 -32
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +38 -39
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +27 -28
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +24 -25
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +30 -31
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +24 -25
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +95 -96
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +24 -25
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +17 -18
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +56 -55
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +16 -14
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +139 -50
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +7 -8
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +27 -28
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +17 -18
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +33 -34
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +32 -33
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -6
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +30 -31
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +23 -24
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +27 -28
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +24 -25
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +77 -78
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +24 -25
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +49 -53
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +24 -25
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +18 -19
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +26 -27
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +18 -19
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +26 -27
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +18 -19
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +29 -30
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +30 -31
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +79 -80
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +2 -2
- package/SVF-doxygen/html/html/classes.html +95 -93
- package/SVF-doxygen/html/html/functions_a.html +5 -5
- package/SVF-doxygen/html/html/functions_c.html +22 -22
- package/SVF-doxygen/html/html/functions_eval_g.html +2 -1
- package/SVF-doxygen/html/html/functions_eval_n.html +0 -1
- package/SVF-doxygen/html/html/functions_eval_v.html +0 -1
- package/SVF-doxygen/html/html/functions_func.html +5 -5
- package/SVF-doxygen/html/html/functions_func_c.html +20 -22
- package/SVF-doxygen/html/html/functions_func_g.html +13 -13
- package/SVF-doxygen/html/html/functions_func_i.html +7 -4
- package/SVF-doxygen/html/html/functions_func_n.html +0 -3
- package/SVF-doxygen/html/html/functions_func_o.html +3 -5
- package/SVF-doxygen/html/html/functions_func_t.html +0 -2
- package/SVF-doxygen/html/html/functions_func_v.html +0 -3
- package/SVF-doxygen/html/html/functions_g.html +17 -16
- package/SVF-doxygen/html/html/functions_i.html +9 -6
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +0 -4
- package/SVF-doxygen/html/html/functions_o.html +3 -5
- package/SVF-doxygen/html/html/functions_p.html +10 -10
- package/SVF-doxygen/html/html/functions_r.html +8 -4
- package/SVF-doxygen/html/html/functions_s.html +12 -10
- package/SVF-doxygen/html/html/functions_t.html +7 -9
- package/SVF-doxygen/html/html/functions_v.html +4 -5
- package/SVF-doxygen/html/html/functions_vars_v.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/hierarchy.html +55 -57
- package/SVF-doxygen/html/html/namespaceSVF.html +0 -4
- package/SVF-doxygen/html/html/search/all_1.js +5 -5
- package/SVF-doxygen/html/html/search/all_10.js +8 -8
- package/SVF-doxygen/html/html/search/all_12.js +2 -2
- package/SVF-doxygen/html/html/search/all_13.js +9 -9
- package/SVF-doxygen/html/html/search/all_14.js +5 -5
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +1 -1
- package/SVF-doxygen/html/html/search/all_7.js +4 -4
- package/SVF-doxygen/html/html/search/all_9.js +2 -1
- package/SVF-doxygen/html/html/search/all_c.js +2 -2
- package/SVF-doxygen/html/html/search/all_d.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +3 -4
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/classes_12.js +0 -1
- package/SVF-doxygen/html/html/search/classes_b.js +0 -1
- package/SVF-doxygen/html/html/search/enumvalues_12.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_6.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_0.js +5 -5
- package/SVF-doxygen/html/html/search/functions_10.js +1 -1
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_13.js +0 -1
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +3 -3
- package/SVF-doxygen/html/html/search/functions_8.js +2 -1
- package/SVF-doxygen/html/html/search/functions_c.js +0 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +2 -2
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_16.js +1 -0
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +16 -16
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
- package/include/Graphs/ConsG.h +2 -2
- package/include/Graphs/ConsGEdge.h +1 -1
- package/include/Graphs/VFG.h +2 -2
- package/include/MemoryModel/SVFIR.h +2 -2
- package/include/MemoryModel/SVFStatements.h +17 -94
- package/include/MemoryModel/SVFVariables.h +9 -6
- package/include/SVF-FE/DCHG.h +1 -1
- package/include/SVF-FE/SVFIRBuilder.h +5 -5
- package/include/Util/IRAnnotator.h +1 -1
- package/lib/DDA/ContextDDA.cpp +4 -5
- package/lib/DDA/DDAClient.cpp +6 -6
- package/lib/DDA/DDAStat.cpp +1 -1
- package/lib/DDA/FlowDDA.cpp +4 -5
- package/lib/Graphs/ConsG.cpp +26 -31
- package/lib/Graphs/SVFG.cpp +2 -2
- package/lib/Graphs/VFG.cpp +36 -43
- package/lib/MTA/MTAAnnotator.cpp +3 -3
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
- package/lib/MemoryModel/SVFIR.cpp +26 -34
- package/lib/MemoryModel/SVFStatements.cpp +0 -22
- package/lib/MemoryModel/SVFVariables.cpp +1 -1
- package/lib/MemoryModel/SymbolTableInfo.cpp +1 -1
- package/lib/SVF-FE/DCHG.cpp +1 -1
- package/lib/SVF-FE/Graph2Json.cpp +24 -27
- package/lib/Util/PTAStat.cpp +9 -9
- package/lib/Util/TypeBasedHeapCloning.cpp +5 -5
- package/lib/WPA/AndersenSFR.cpp +2 -2
- package/lib/WPA/AndersenStat.cpp +2 -2
- package/lib/WPA/CSC.cpp +2 -2
- package/lib/WPA/FlowSensitive.cpp +4 -7
- package/lib/WPA/FlowSensitiveStat.cpp +2 -2
- package/lib/WPA/FlowSensitiveTBHC.cpp +6 -9
- package/package.json +1 -1
|
@@ -117,7 +117,7 @@ Static Public Member Functions</h2></td></tr>
|
|
|
117
117
|
struct llvm::DOTGraphTraits< VFG * ></h3>
|
|
118
118
|
|
|
119
119
|
|
|
120
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
120
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00939">939</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
121
121
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
122
122
|
<a id="afd7d2c80916a68b53814e6de593bf520"></a>
|
|
123
123
|
<h2 class="memtitle"><span class="permalink"><a href="#afd7d2c80916a68b53814e6de593bf520">◆ </a></span>NodeType</h2>
|
|
@@ -131,7 +131,7 @@ struct llvm::DOTGraphTraits< VFG * ></h3>
|
|
|
131
131
|
</table>
|
|
132
132
|
</div><div class="memdoc">
|
|
133
133
|
|
|
134
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
134
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00942">942</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
135
135
|
|
|
136
136
|
</div>
|
|
137
137
|
</div>
|
|
@@ -160,8 +160,8 @@ struct llvm::DOTGraphTraits< VFG * ></h3>
|
|
|
160
160
|
</table>
|
|
161
161
|
</div><div class="memdoc">
|
|
162
162
|
|
|
163
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
164
|
-
<div class="fragment"><div class="line"><a name="
|
|
163
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00943">943</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
164
|
+
<div class="fragment"><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  :</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  DOTGraphTraits<SVFIR*>(isSimple)</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  {</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  }</div></div><!-- fragment -->
|
|
165
165
|
</div>
|
|
166
166
|
</div>
|
|
167
167
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
@@ -201,8 +201,8 @@ struct llvm::DOTGraphTraits< VFG * ></h3>
|
|
|
201
201
|
|
|
202
202
|
<p>Return label of a VFG node with MemSSA information. </p>
|
|
203
203
|
|
|
204
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
205
|
-
<div class="fragment"><div class="line"><a name="
|
|
204
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01014">1014</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
205
|
+
<div class="fragment"><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  {</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> </div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  std::string str;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtVFGNode>(node))</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  {</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  rawstr << stmtNode->toString();</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  }</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast<BinaryOPVFGNode>(node))</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  {</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  rawstr << bop->toString();</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  }</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast<UnaryOPVFGNode>(node))</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  {</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  rawstr << uop->toString();</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  }</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast<CmpVFGNode>(node))</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  {</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  rawstr << cmp->toString();</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  }</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHIVFGNode</a>* phi = SVFUtil::dyn_cast<PHIVFGNode>(node))</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  {</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  rawstr << phi->toString();</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  }</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a>* fp = SVFUtil::dyn_cast<FormalParmVFGNode>(node))</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  {</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  rawstr << fp->toString();</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  }</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a>* ap = SVFUtil::dyn_cast<ActualParmVFGNode>(node))</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  {</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  rawstr << ap->toString();</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  }</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NullPtrVFGNode.html">NullPtrVFGNode</a>* nptr = SVFUtil::dyn_cast<NullPtrVFGNode>(node))</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  {</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  rawstr << nptr->toString();</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  }</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a>* ar = SVFUtil::dyn_cast<ActualRetVFGNode>(node))</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  {</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  rawstr << ar->toString();</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  }</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a>* fr = SVFUtil::dyn_cast<FormalRetVFGNode>(node))</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  {</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  rawstr << fr->toString();</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  }</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRSVFGNode.html">MRSVFGNode</a>* mr = SVFUtil::dyn_cast<MRSVFGNode>(node))</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  {</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  rawstr << mr->toString();</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  }</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"what else kinds of nodes do we have??"</span>);</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> </div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00387">VFGNode.h:387</a></div></div>
|
|
206
206
|
<div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00831">VFGNode.h:831</a></div></div>
|
|
207
207
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
208
208
|
<div class="ttc" id="classSVF_1_1PHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html">SVF::PHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00624">VFGNode.h:624</a></div></div>
|
|
@@ -260,8 +260,8 @@ template<class EdgeIter > </div>
|
|
|
260
260
|
</table>
|
|
261
261
|
</div><div class="memdoc">
|
|
262
262
|
|
|
263
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
264
|
-
<div class="fragment"><div class="line"><a name="
|
|
263
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01156">1156</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
264
|
+
<div class="fragment"><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  {</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge && <span class="stringliteral">"No edge found!!"</span>);</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DirectSVFGEdge>(edge))</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  {</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CallDirSVFGEdge>(edge))</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=solid,color=red"</span>;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetDirSVFGEdge>(edge))</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=solid,color=blue"</span>;</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=solid"</span>;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>  }</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<IndirectSVFGEdge>(edge))</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  {</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CallIndSVFGEdge>(edge))</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=dashed,color=red"</span>;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetIndSVFGEdge>(edge))</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=dashed,color=blue"</span>;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=dashed"</span>;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  }</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  {</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"what else edge we have?"</span>);</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>  }</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
265
265
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
266
266
|
</div><!-- fragment -->
|
|
267
267
|
</div>
|
|
@@ -302,8 +302,8 @@ template<class EdgeIter > </div>
|
|
|
302
302
|
</table>
|
|
303
303
|
</div><div class="memdoc">
|
|
304
304
|
|
|
305
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
306
|
-
<div class="fragment"><div class="line"><a name="
|
|
305
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01186">1186</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
306
|
+
<div class="fragment"><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  {</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge && <span class="stringliteral">"No edge found!!"</span>);</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> </div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  std::string str;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* dirCall = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge))</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>  rawstr << dirCall->getCallSiteId();</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* dirRet = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge))</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  rawstr << dirRet->getCallSiteId();</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> </div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
307
307
|
<div class="ttc" id="classSVF_1_1CallDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html">SVF::CallDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00211">VFGEdge.h:211</a></div></div>
|
|
308
308
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
309
309
|
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
|
|
@@ -337,8 +337,8 @@ template<class EdgeIter > </div>
|
|
|
337
337
|
|
|
338
338
|
<p>Return name of the graph. </p>
|
|
339
339
|
|
|
340
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
341
|
-
<div class="fragment"><div class="line"><a name="
|
|
340
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00949">949</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
341
|
+
<div class="fragment"><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  {</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keywordflow">return</span> <span class="stringliteral">"VFG"</span>;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  }</div></div><!-- fragment -->
|
|
342
342
|
</div>
|
|
343
343
|
</div>
|
|
344
344
|
<a id="a57d4a186a0319b73d69752564bf25b2a"></a>
|
|
@@ -375,8 +375,8 @@ template<class EdgeIter > </div>
|
|
|
375
375
|
</table>
|
|
376
376
|
</div><div class="memdoc">
|
|
377
377
|
|
|
378
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
379
|
-
<div class="fragment"><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  {</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  std::string str;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtVFGNode>(node))</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = stmtNode->getPAGEdge();</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  <span class="keywordflow">if</span> (SVFUtil::isa<AddrStmt>(edge))</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  {</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  rawstr << <span class="stringliteral">"color=green"</span>;</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  }</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CopyStmt>(edge))</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  {</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  }</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetPE>(edge))</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  {</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  rawstr << <span class="stringliteral">"color=black,style=dotted"</span>;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  }</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<GepStmt>(edge))</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  {</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  rawstr << <span class="stringliteral">"color=purple"</span>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  }</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreStmt>(edge))</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  {</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  rawstr << <span class="stringliteral">"color=blue"</span>;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  }</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadStmt>(edge))</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  {</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  rawstr << <span class="stringliteral">"color=red"</span>;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  }</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  {</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 && <span class="stringliteral">"No such kind edge!!"</span>);</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  }</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  rawstr << <span class="stringliteral">""</span>;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  }</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CmpVFGNode>(node))</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  {</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  }</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<BinaryOPVFGNode>(node))</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  {</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  }</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<UnaryOPVFGNode>(node))</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  {</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  }</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<PHIVFGNode>(node))</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  {</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  }</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<NullPtrVFGNode>(node))</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  {</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FormalParmVFGNode>(node))</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  {</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  }</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualParmVFGNode>(node))</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  {</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  }</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualRetVFGNode>(node))</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  {</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  }</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalRetVFGNode>(node))</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  {</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  }</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<MRSVFGNode>(node))</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  {</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  rawstr << <span class="stringliteral">"color=orange,penwidth=2"</span>;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  }</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"no such kind of node!!"</span>);</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> </div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  rawstr << <span class="stringliteral">""</span>;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> </div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
378
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01069">1069</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
379
|
+
<div class="fragment"><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  {</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  std::string str;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> </div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtVFGNode>(node))</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  {</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = stmtNode->getPAGEdge();</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  <span class="keywordflow">if</span> (SVFUtil::isa<AddrStmt>(edge))</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  {</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  rawstr << <span class="stringliteral">"color=green"</span>;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  }</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CopyStmt>(edge))</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  }</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetPE>(edge))</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  {</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  rawstr << <span class="stringliteral">"color=black,style=dotted"</span>;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  }</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<GepStmt>(edge))</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  {</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  rawstr << <span class="stringliteral">"color=purple"</span>;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  }</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreStmt>(edge))</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  {</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  rawstr << <span class="stringliteral">"color=blue"</span>;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  }</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadStmt>(edge))</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  {</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  rawstr << <span class="stringliteral">"color=red"</span>;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  }</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  {</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 && <span class="stringliteral">"No such kind edge!!"</span>);</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  }</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  rawstr << <span class="stringliteral">""</span>;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  }</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CmpVFGNode>(node))</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  {</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  }</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<BinaryOPVFGNode>(node))</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  {</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  }</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<UnaryOPVFGNode>(node))</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  {</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  }</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<PHIVFGNode>(node))</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  {</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  }</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<NullPtrVFGNode>(node))</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  {</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  }</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FormalParmVFGNode>(node))</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  {</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  }</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualParmVFGNode>(node))</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  {</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  }</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualRetVFGNode>(node))</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  {</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  }</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalRetVFGNode>(node))</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  {</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  }</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<MRSVFGNode>(node))</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  {</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  rawstr << <span class="stringliteral">"color=orange,penwidth=2"</span>;</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  }</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"no such kind of node!!"</span>);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> </div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  rawstr << <span class="stringliteral">""</span>;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> </div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
380
380
|
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
|
|
381
381
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00113">VFGNode.h:113</a></div></div>
|
|
382
382
|
<div class="ttc" id="classSVF_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#l00047">SVFStatements.h:47</a></div></div>
|
|
@@ -417,8 +417,8 @@ template<class EdgeIter > </div>
|
|
|
417
417
|
</table>
|
|
418
418
|
</div><div class="memdoc">
|
|
419
419
|
|
|
420
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
421
|
-
<div class="fragment"><div class="line"><a name="
|
|
420
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00954">954</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
421
|
+
<div class="fragment"><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">if</span> (isSimple())</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="keywordflow">return</span> getSimpleNodeLabel(node, graph);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">return</span> getCompleteNodeLabel(node, graph);</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div></div><!-- fragment -->
|
|
422
422
|
</div>
|
|
423
423
|
</div>
|
|
424
424
|
<a id="a0159404d5c5a7816a4b679c0f35a546e"></a>
|
|
@@ -457,8 +457,8 @@ template<class EdgeIter > </div>
|
|
|
457
457
|
|
|
458
458
|
<p>Return label of a VFG node without MemSSA information. </p>
|
|
459
459
|
|
|
460
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
461
|
-
<div class="fragment"><div class="line"><a name="
|
|
460
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00963">963</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
461
|
+
<div class="fragment"><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  {</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  std::string str;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtVFGNode>(node))</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  {</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  rawstr << stmtNode->toString();</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  }</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHIVFGNode</a>* tphi = SVFUtil::dyn_cast<PHIVFGNode>(node))</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  {</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  rawstr << tphi->toString();</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  }</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a>* fp = SVFUtil::dyn_cast<FormalParmVFGNode>(node))</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  {</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  rawstr << fp->toString();</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  }</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a>* ap = SVFUtil::dyn_cast<ActualParmVFGNode>(node))</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  {</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  rawstr << ap->toString();</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  }</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a>* ar = SVFUtil::dyn_cast<ActualRetVFGNode>(node))</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  {</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  rawstr << ar->toString();</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  }</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a>* fr = SVFUtil::dyn_cast<FormalRetVFGNode>(node))</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  {</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  rawstr << fr->toString();</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  }</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<NullPtrVFGNode>(node))</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  rawstr << <span class="stringliteral">"NullPtr"</span>;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  }</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast<BinaryOPVFGNode>(node))</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  {</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  rawstr << bop->toString();</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  }</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast<UnaryOPVFGNode>(node))</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  {</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  rawstr << uop->toString();</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast<CmpVFGNode>(node))</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  {</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  rawstr << cmp->toString();;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  }</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"what else kinds of nodes do we have??"</span>);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00387">VFGNode.h:387</a></div></div>
|
|
462
462
|
<div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00831">VFGNode.h:831</a></div></div>
|
|
463
463
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
464
464
|
<div class="ttc" id="classSVF_1_1PHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html">SVF::PHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00624">VFGNode.h:624</a></div></div>
|
package/include/Graphs/ConsG.h
CHANGED
|
@@ -67,7 +67,7 @@ protected:
|
|
|
67
67
|
|
|
68
68
|
void destroy();
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
SVFStmt::SVFStmtSetTy& getPAGEdgeSet(SVFStmt::PEDGEK kind)
|
|
71
71
|
{
|
|
72
72
|
return pag->getPTASVFStmtSet(kind);
|
|
73
73
|
}
|
|
@@ -291,7 +291,7 @@ public:
|
|
|
291
291
|
inline bool isZeroOffsettedGepCGEdge(ConstraintEdge *edge) const
|
|
292
292
|
{
|
|
293
293
|
if (NormalGepCGEdge *normalGepCGEdge = SVFUtil::dyn_cast<NormalGepCGEdge>(edge))
|
|
294
|
-
if (0 == normalGepCGEdge->
|
|
294
|
+
if (0 == normalGepCGEdge->getConstantFieldIdx())
|
|
295
295
|
return true;
|
|
296
296
|
return false;
|
|
297
297
|
}
|
package/include/Graphs/VFG.h
CHANGED
|
@@ -427,7 +427,7 @@ protected:
|
|
|
427
427
|
void addVFGNodes();
|
|
428
428
|
|
|
429
429
|
/// Get PAGEdge set
|
|
430
|
-
virtual inline
|
|
430
|
+
virtual inline SVFStmt::SVFStmtSetTy& getPAGEdgeSet(SVFStmt::PEDGEK kind)
|
|
431
431
|
{
|
|
432
432
|
if (isPtrOnlySVFG())
|
|
433
433
|
return pag->getPTASVFStmtSet(kind);
|
|
@@ -435,7 +435,7 @@ protected:
|
|
|
435
435
|
return pag->getSVFStmtSet(kind);
|
|
436
436
|
}
|
|
437
437
|
|
|
438
|
-
virtual inline bool isInterestedPAGNode(const
|
|
438
|
+
virtual inline bool isInterestedPAGNode(const SVFVar* node) const
|
|
439
439
|
{
|
|
440
440
|
if (isPtrOnlySVFG())
|
|
441
441
|
return node->isPointer();
|
|
@@ -649,9 +649,9 @@ private:
|
|
|
649
649
|
/// Add Gep edge
|
|
650
650
|
GepStmt* addGepStmt(NodeID src, NodeID dst, const LocationSet& ls, bool constGep);
|
|
651
651
|
/// Add Offset(Gep) edge
|
|
652
|
-
|
|
652
|
+
GepStmt* addNormalGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
|
|
653
653
|
/// Add Variant(Gep) edge
|
|
654
|
-
|
|
654
|
+
GepStmt* addVariantGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
|
|
655
655
|
/// Add Thread fork edge for parameter passing
|
|
656
656
|
TDForkPE* addThreadForkPE(NodeID src, NodeID dst, const CallICFGNode* cs);
|
|
657
657
|
/// Add Thread join edge for parameter passing
|