svf-tools 1.0.351 → 1.0.355
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 +3 -3
- 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 +23 -23
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +13 -11
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +6 -6
- 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 +5 -5
- 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 +2 -2
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +9 -9
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +6 -4
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +33 -31
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +17 -17
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +30 -30
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +26 -26
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +10 -9
- 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 +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +19 -8
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +6 -6
- 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 +9 -9
- 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/Options_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +17 -18
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +19 -22
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +7 -8
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +8 -8
- 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 +8 -7
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +34 -35
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +45 -46
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +40 -41
- 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 +150 -156
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +102 -102
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +51 -50
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +67 -62
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +16 -15
- 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/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -6
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
- 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 +5 -5
- 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 +9 -9
- 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 +36 -35
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +146 -93
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +8 -8
- 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 +20 -19
- 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 +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +6 -6
- 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_1FSMPTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +8 -7
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +78 -80
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +63 -62
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- 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 +42 -42
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +58 -55
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +170 -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_1ICFG.html +3 -1
- 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_1LocationSet-members.html +22 -21
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +86 -32
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +2 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +11 -15
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +87 -87
- 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 +98 -98
- 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 +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +19 -20
- 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 +45 -50
- 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-members.html +2 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +33 -79
- 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 +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +94 -95
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +103 -97
- 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-members.html +2 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +11 -15
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +13 -6
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +263 -37
- 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_1SymbolTableBuilder.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +65 -64
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +90 -63
- 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 +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +21 -21
- 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 +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +13 -14
- package/SVF-doxygen/html/html/classes.html +95 -93
- package/SVF-doxygen/html/html/functions_a.html +18 -17
- package/SVF-doxygen/html/html/functions_b.html +5 -11
- 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_f.html +20 -15
- package/SVF-doxygen/html/html/functions_func.html +19 -18
- package/SVF-doxygen/html/html/functions_func_b.html +0 -6
- package/SVF-doxygen/html/html/functions_func_c.html +20 -22
- package/SVF-doxygen/html/html/functions_func_g.html +37 -24
- 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 -4
- package/SVF-doxygen/html/html/functions_func_s.html +4 -4
- 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 +37 -23
- package/SVF-doxygen/html/html/functions_i.html +9 -6
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- 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 +12 -15
- package/SVF-doxygen/html/html/functions_p.html +12 -12
- package/SVF-doxygen/html/html/functions_r.html +9 -5
- package/SVF-doxygen/html/html/functions_s.html +24 -16
- package/SVF-doxygen/html/html/functions_t.html +10 -10
- package/SVF-doxygen/html/html/functions_type_s.html +3 -0
- package/SVF-doxygen/html/html/functions_v.html +10 -11
- package/SVF-doxygen/html/html/functions_vars_f.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_s.html +4 -1
- package/SVF-doxygen/html/html/functions_vars_v.html +3 -0
- 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 +8 -8
- package/SVF-doxygen/html/html/search/all_10.js +7 -7
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +11 -9
- package/SVF-doxygen/html/html/search/all_14.js +7 -7
- package/SVF-doxygen/html/html/search/all_16.js +4 -4
- package/SVF-doxygen/html/html/search/all_2.js +1 -3
- package/SVF-doxygen/html/html/search/all_3.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +1 -0
- package/SVF-doxygen/html/html/search/all_7.js +10 -6
- 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 +4 -5
- 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 +8 -8
- package/SVF-doxygen/html/html/search/functions_1.js +1 -3
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- 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 +9 -5
- 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/typedefs_11.js +1 -0
- package/SVF-doxygen/html/html/search/variables_13.js +2 -1
- package/SVF-doxygen/html/html/search/variables_14.js +2 -2
- package/SVF-doxygen/html/html/search/variables_16.js +1 -0
- package/SVF-doxygen/html/html/search/variables_6.js +1 -0
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- 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_01ICFG_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/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -2
- package/include/DDA/DDAVFSolver.h +1 -1
- package/include/Graphs/ConsG.h +2 -2
- package/include/Graphs/ConsGEdge.h +1 -1
- package/include/Graphs/VFG.h +2 -2
- package/include/Graphs/VFGNode.h +1 -1
- package/include/MSSA/SVFGBuilder.h +0 -2
- package/include/MemoryModel/LocationSet.h +4 -0
- package/include/MemoryModel/SVFIR.h +3 -3
- package/include/MemoryModel/SVFStatements.h +40 -97
- package/include/MemoryModel/SVFVariables.h +9 -6
- package/include/MemoryModel/SymbolTableInfo.h +27 -6
- package/include/SVF-FE/DCHG.h +1 -1
- package/include/SVF-FE/SVFIRBuilder.h +6 -6
- 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/ICFG.cpp +4 -0
- package/lib/Graphs/SVFG.cpp +2 -2
- package/lib/Graphs/VFG.cpp +36 -43
- package/lib/MSSA/SVFGBuilder.cpp +4 -11
- package/lib/MTA/MTAAnnotator.cpp +3 -3
- package/lib/MemoryModel/LocationSet.cpp +69 -7
- package/lib/MemoryModel/PointerAnalysis.cpp +0 -6
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
- package/lib/MemoryModel/SVFIR.cpp +27 -35
- package/lib/MemoryModel/SVFStatements.cpp +0 -22
- package/lib/MemoryModel/SVFVariables.cpp +1 -1
- package/lib/MemoryModel/SymbolTableInfo.cpp +24 -17
- package/lib/SABER/SrcSnkDDA.cpp +2 -2
- package/lib/SVF-FE/DCHG.cpp +1 -1
- package/lib/SVF-FE/Graph2Json.cpp +24 -27
- package/lib/SVF-FE/SVFIRBuilder.cpp +9 -4
- package/lib/Util/Options.cpp +1 -1
- 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 +7 -12
- package/lib/WPA/FlowSensitiveStat.cpp +2 -2
- package/lib/WPA/FlowSensitiveTBHC.cpp +6 -9
- package/lib/WPA/WPAPass.cpp +1 -9
- package/package.json +1 -1
- package/tools/Example/svf-ex.cpp +1 -1
|
@@ -302,8 +302,8 @@ Protected Member Functions</h2></td></tr>
|
|
|
302
302
|
<tr class="separator:a1973126243ff619033a78a3782944278"><td class="memSeparator" colspan="2"> </td></tr>
|
|
303
303
|
<tr class="memitem:a77ba38543b1ee164f1ae95589d5dbc44"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">destroy</a> ()</td></tr>
|
|
304
304
|
<tr class="separator:a77ba38543b1ee164f1ae95589d5dbc44"><td class="memSeparator" colspan="2"> </td></tr>
|
|
305
|
-
<tr class="memitem:
|
|
306
|
-
<tr class="separator:
|
|
305
|
+
<tr class="memitem:a4dd7feb1ed62883dd35ced962ba6b59e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a> (<a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</td></tr>
|
|
306
|
+
<tr class="separator:a4dd7feb1ed62883dd35ced962ba6b59e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
307
307
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
308
308
|
<tr class="memitem:a00242eb1c1204abf1f5eb0cae759a38c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ConstraintGraph.html#a00242eb1c1204abf1f5eb0cae759a38c">getValueNode</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *value) const</td></tr>
|
|
309
309
|
<tr class="memdesc:a00242eb1c1204abf1f5eb0cae759a38c"><td class="mdescLeft"> </td><td class="mdescRight">Wappers used internally, not expose to Andernsen Pass. <a href="#a00242eb1c1204abf1f5eb0cae759a38c">More...</a><br /></td></tr>
|
|
@@ -493,7 +493,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
493
493
|
<p>Destructor. </p>
|
|
494
494
|
|
|
495
495
|
<p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00100">100</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
|
|
496
|
-
<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">destroy</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a77ba38543b1ee164f1ae95589d5dbc44"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">SVF::ConstraintGraph::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
496
|
+
<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">destroy</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a77ba38543b1ee164f1ae95589d5dbc44"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">SVF::ConstraintGraph::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00141">ConsG.cpp:141</a></div></div>
|
|
497
497
|
</div><!-- fragment -->
|
|
498
498
|
</div>
|
|
499
499
|
</div>
|
|
@@ -528,8 +528,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
528
528
|
<p>Add Address edge</p>
|
|
529
529
|
<p>Add an address edge </p>
|
|
530
530
|
|
|
531
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
532
|
-
<div class="fragment"><div class="line"><a name="
|
|
531
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00160">160</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
532
|
+
<div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>))</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a5bbd6df25027d26911f5d8d6a10881dc">AddrCGEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added && <span class="stringliteral">"not added??"</span>);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  srcNode-><a class="code" href="classSVF_1_1ConstraintNode.html#af129941c522dbc1b0fe94f84eea0d97a">addOutgoingAddrEdge</a>(edge);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  dstNode-><a class="code" href="classSVF_1_1ConstraintNode.html#aeff08dd512d0a97fb14069b37386e9fe">addIncomingAddrEdge</a>(edge);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
|
|
533
533
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
534
534
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_aeff08dd512d0a97fb14069b37386e9fe"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#aeff08dd512d0a97fb14069b37386e9fe">SVF::ConstraintNode::addIncomingAddrEdge</a></div><div class="ttdeci">void addIncomingAddrEdge(AddrCGEdge *inEdge)</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00315">ConsGNode.h:315</a></div></div>
|
|
535
535
|
<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>
|
|
@@ -610,8 +610,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
610
610
|
<p>Add Copy edge. </p>
|
|
611
611
|
<p>Add Copy edge </p>
|
|
612
612
|
|
|
613
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
614
|
-
<div class="fragment"><div class="line"><a name="
|
|
613
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00177">177</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
614
|
+
<div class="fragment"><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  || srcNode == dstNode)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added && <span class="stringliteral">"not added??"</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  srcNode-><a class="code" href="classSVF_1_1ConstraintNode.html#a2395948518a1befb7a3762bbad6adf9f">addOutgoingCopyEdge</a>(edge);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  dstNode-><a class="code" href="classSVF_1_1ConstraintNode.html#ad54cc825bb7f5642671e75b90b2633a2">addIncomingCopyEdge</a>(edge);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
|
|
615
615
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
616
616
|
<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>
|
|
617
617
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_a2395948518a1befb7a3762bbad6adf9f"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a2395948518a1befb7a3762bbad6adf9f">SVF::ConstraintNode::addOutgoingCopyEdge</a></div><div class="ttdeci">void addOutgoingCopyEdge(CopyCGEdge *outEdge)</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00305">ConsGNode.h:305</a></div></div>
|
|
@@ -653,8 +653,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
653
653
|
<p>Add Load edge. </p>
|
|
654
654
|
<p>Add Load edge </p>
|
|
655
655
|
|
|
656
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
657
|
-
<div class="fragment"><div class="line"><a name="
|
|
656
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00234">234</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
657
|
+
<div class="fragment"><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">ConstraintEdge::Load</a>))</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1cb9124b29720e7a5b39d83419f9cc17">LoadCGEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added && <span class="stringliteral">"not added??"</span>);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  srcNode-><a class="code" href="classSVF_1_1ConstraintNode.html#abcab7a3b98dc0cfeecaed279ca74ea53">addOutgoingLoadEdge</a>(edge);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  dstNode-><a class="code" href="classSVF_1_1ConstraintNode.html#a9d1bb95ad5549d7e6030fe07f8e070a2">addIncomingLoadEdge</a>(edge);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
|
|
658
658
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
659
659
|
<div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">SVF::ConstraintEdge::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
660
660
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_abcab7a3b98dc0cfeecaed279ca74ea53"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#abcab7a3b98dc0cfeecaed279ca74ea53">SVF::ConstraintNode::addOutgoingLoadEdge</a></div><div class="ttdeci">void addOutgoingLoadEdge(LoadCGEdge *outEdge)</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00342">ConsGNode.h:342</a></div></div>
|
|
@@ -732,8 +732,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
732
732
|
<p>Add Gep edge. </p>
|
|
733
733
|
<p>Add Gep edge </p>
|
|
734
734
|
|
|
735
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
736
|
-
<div class="fragment"><div class="line"><a name="
|
|
735
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00198">198</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
736
|
+
<div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a>))</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>(srcNode, dstNode,ls, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added && <span class="stringliteral">"not added??"</span>);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  srcNode-><a class="code" href="classSVF_1_1ConstraintNode.html#abc56843c51c00a9018473f415f73e9f6">addOutgoingGepEdge</a>(edge);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  dstNode-><a class="code" href="classSVF_1_1ConstraintNode.html#aaf0b98573a980aea1151a837580a40a5">addIncomingGepEdge</a>(edge);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
|
|
737
737
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
738
738
|
<div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
|
|
739
739
|
<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>
|
|
@@ -775,8 +775,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
775
775
|
<p>Add Store edge. </p>
|
|
776
776
|
<p>Add Store edge </p>
|
|
777
777
|
|
|
778
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
779
|
-
<div class="fragment"><div class="line"><a name="
|
|
778
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00252">252</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
779
|
+
<div class="fragment"><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">ConstraintEdge::Store</a>))</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">StoreCGEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added && <span class="stringliteral">"not added??"</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  srcNode-><a class="code" href="classSVF_1_1ConstraintNode.html#a349b8c461adfa2a0bd1376ecb81d36d5">addOutgoingStoreEdge</a>(edge);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  dstNode-><a class="code" href="classSVF_1_1ConstraintNode.html#a202193059dd3122d969561080b82c504">addIncomingStoreEdge</a>(edge);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
|
|
780
780
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
781
781
|
<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>
|
|
782
782
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_a349b8c461adfa2a0bd1376ecb81d36d5"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a349b8c461adfa2a0bd1376ecb81d36d5">SVF::ConstraintNode::addOutgoingStoreEdge</a></div><div class="ttdeci">void addOutgoingStoreEdge(StoreCGEdge *outEdge)</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00348">ConsGNode.h:348</a></div></div>
|
|
@@ -816,8 +816,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
816
816
|
</div><div class="memdoc">
|
|
817
817
|
<p>Add variant gep edge </p>
|
|
818
818
|
|
|
819
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
820
|
-
<div class="fragment"><div class="line"><a name="
|
|
819
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00216">216</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
820
|
+
<div class="fragment"><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">ConstraintEdge::VariantGep</a>))</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added && <span class="stringliteral">"not added??"</span>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  srcNode-><a class="code" href="classSVF_1_1ConstraintNode.html#abc56843c51c00a9018473f415f73e9f6">addOutgoingGepEdge</a>(edge);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  dstNode-><a class="code" href="classSVF_1_1ConstraintNode.html#aaf0b98573a980aea1151a837580a40a5">addIncomingGepEdge</a>(edge);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
|
|
821
821
|
<div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">SVF::ConstraintEdge::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
822
822
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
823
823
|
<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>
|
|
@@ -855,47 +855,46 @@ Additional Inherited Members</h2></td></tr>
|
|
|
855
855
|
<p>Start building constraint graph </p>
|
|
856
856
|
|
|
857
857
|
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00042">42</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
858
|
-
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// initialize nodes</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a5ea9c47d232f36b66d985f979f33293b">addConstraintNode</a>(<span class="keyword">new</span> <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>(it->first), it->first);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">// initialize edges</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& addrs = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">PAGEdge::Addr</a>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = addrs.begin(), eiter =</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  addrs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>* edge = SVFUtil::cast<AddrStmt>(*iter);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a56cfcc39637cf5208f65297a63dde266">addAddrCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& copys = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">PAGEdge::Copy</a>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = copys.begin(), eiter =</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  copys.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>* edge = SVFUtil::cast<CopyStmt>(*iter);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& phis = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">PAGEdge::Phi</a>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = phis.begin(), eiter =</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  phis.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>* edge = SVFUtil::cast<PhiStmt>(*iter);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> opVar : edge-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(opVar->getId(),edge-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& calls = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">PAGEdge::Call</a>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = calls.begin(), eiter =</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  calls.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* edge = SVFUtil::cast<CallPE>(*iter);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& rets = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">PAGEdge::Ret</a>);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = rets.begin(), eiter =</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  rets.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* edge = SVFUtil::cast<RetPE>(*iter);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& tdfks = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">PAGEdge::ThreadFork</a>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = tdfks.begin(), eiter =</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  tdfks.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>* edge = SVFUtil::cast<TDForkPE>(*iter);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& tdjns = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">PAGEdge::ThreadJoin</a>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = tdjns.begin(), eiter =</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  tdjns.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>* edge = SVFUtil::cast<TDJoinPE>(*iter);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& ngeps = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">PAGEdge::NormalGep</a>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = ngeps.begin(), eiter =</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  ngeps.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>* edge = SVFUtil::cast<NormalGepStmt>(*iter);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>(),edge-><a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>());</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& vgeps = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">PAGEdge::VariantGep</a>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = vgeps.begin(), eiter =</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  vgeps.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>* edge = SVFUtil::cast<VariantGepStmt>(*iter);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& loads = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">PAGEdge::Load</a>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = loads.begin(), eiter =</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  loads.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* edge = SVFUtil::cast<LoadStmt>(*iter);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& stores = <a class="code" href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">PAGEdge::Store</a>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = stores.begin(), eiter =</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  stores.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* edge = SVFUtil::cast<StoreStmt>(*iter);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> }</div><div class="ttc" id="classSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00269">SVFStatements.h:269</a></div></div>
|
|
858
|
+
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// initialize nodes</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a5ea9c47d232f36b66d985f979f33293b">addConstraintNode</a>(<span class="keyword">new</span> <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>(it->first), it->first);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">// initialize edges</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& addrs = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = addrs.begin(), eiter =</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  addrs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>* edge = SVFUtil::cast<AddrStmt>(*iter);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a56cfcc39637cf5208f65297a63dde266">addAddrCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& copys = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = copys.begin(), eiter =</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  copys.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>* edge = SVFUtil::cast<CopyStmt>(*iter);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& phis = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = phis.begin(), eiter =</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  phis.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>* edge = SVFUtil::cast<PhiStmt>(*iter);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> opVar : edge-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(opVar->getId(),edge-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& calls = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = calls.begin(), eiter =</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  calls.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* edge = SVFUtil::cast<CallPE>(*iter);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& rets = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a>);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = rets.begin(), eiter =</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  rets.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* edge = SVFUtil::cast<RetPE>(*iter);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& tdfks = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = tdfks.begin(), eiter =</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  tdfks.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>* edge = SVFUtil::cast<TDForkPE>(*iter);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& tdjns = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = tdjns.begin(), eiter =</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  tdjns.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>* edge = SVFUtil::cast<TDJoinPE>(*iter);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& ngeps = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = ngeps.begin(), eiter =</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  ngeps.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* edge = SVFUtil::cast<GepStmt>(*iter);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>())</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>(),edge-><a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>());</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& loads = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = loads.begin(), eiter =</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  loads.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* edge = SVFUtil::cast<LoadStmt>(*iter);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& stores = <a class="code" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">for</span> (SVFStmt::SVFStmtSetTy::iterator iter = stores.begin(), eiter =</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  stores.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* edge = SVFUtil::cast<StoreStmt>(*iter);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(edge-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>(),edge-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }</div><div class="ttc" id="classSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00266">SVFStatements.h:266</a></div></div>
|
|
859
859
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
|
|
860
|
-
<div class="ttc" id="classSVF_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#
|
|
861
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a0441f2646fed28830439c41a0704ed4b"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">SVF::MultiOpndStmt::getOpndVars</a></div><div class="ttdeci">const OPVars & getOpndVars() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
860
|
+
<div class="ttc" id="classSVF_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#l00521">SVFStatements.h:521</a></div></div>
|
|
861
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a0441f2646fed28830439c41a0704ed4b"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">SVF::MultiOpndStmt::getOpndVars</a></div><div class="ttdeci">const OPVars & getOpndVars() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00630">SVFStatements.h:630</a></div></div>
|
|
862
862
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVF::SVFStmt::Call</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
863
|
+
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVF::SVFStmt::Gep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
863
864
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVF::SVFStmt::Phi</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
864
865
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVF::SVFStmt::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
865
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a56cfcc39637cf5208f65297a63dde266"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a56cfcc39637cf5208f65297a63dde266">SVF::ConstraintGraph::addAddrCGEdge</a></div><div class="ttdeci">AddrCGEdge * addAddrCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add a SVFIR edge into Edge map. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
866
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a56cfcc39637cf5208f65297a63dde266"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a56cfcc39637cf5208f65297a63dde266">SVF::ConstraintGraph::addAddrCGEdge</a></div><div class="ttdeci">AddrCGEdge * addAddrCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add a SVFIR edge into Edge map. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00160">ConsG.cpp:160</a></div></div>
|
|
867
|
+
<div class="ttc" id="classSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00409">SVFStatements.h:409</a></div></div>
|
|
866
868
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
867
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
868
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
869
|
-
<div class="ttc" id="classSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
870
|
-
<div class="ttc" id="
|
|
871
|
-
<div class="ttc" id="
|
|
872
|
-
<div class="ttc" id="
|
|
873
|
-
<div class="ttc" id="classSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01015">SVFStatements.h:1015</a></div></div>
|
|
869
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00252">ConsG.cpp:252</a></div></div>
|
|
870
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00234">ConsG.cpp:234</a></div></div>
|
|
871
|
+
<div class="ttc" id="classSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00253">SVFStatements.h:253</a></div></div>
|
|
872
|
+
<div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode< SVFVar, SVFStmt >::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00177">SVFStatements.h:177</a></div></div>
|
|
873
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a4dd7feb1ed62883dd35ced962ba6b59e"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">SVF::ConstraintGraph::getPAGEdgeSet</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy & getPAGEdgeSet(SVFStmt::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00070">ConsG.h:70</a></div></div>
|
|
874
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00958">SVFStatements.h:958</a></div></div>
|
|
874
875
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5ea9c47d232f36b66d985f979f33293b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5ea9c47d232f36b66d985f979f33293b">SVF::ConstraintGraph::addConstraintNode</a></div><div class="ttdeci">void addConstraintNode(ConstraintNode *node, NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00112">ConsG.h:112</a></div></div>
|
|
875
876
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVF::SVFStmt::Copy</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
876
|
-
<div class="ttc" id="classSVF_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#
|
|
877
|
+
<div class="ttc" id="classSVF_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#l00469">SVFStatements.h:469</a></div></div>
|
|
877
878
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVF::SVFStmt::Ret</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
878
879
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
879
880
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph< SVFVar, SVFStmt >::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00338">GenericGraph.h:338</a></div></div>
|
|
880
|
-
<div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
881
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
882
|
-
<div class="ttc" id="classSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
883
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
884
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a08478529524005aba86660f031cf55af"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a08478529524005aba86660f031cf55af">SVF::ConstraintGraph::getPAGEdgeSet</a></div><div class="ttdeci">PAGEdge::SVFStmtSetTy & getPAGEdgeSet(PAGEdge::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00070">ConsG.h:70</a></div></div>
|
|
881
|
+
<div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00373">SVFStatements.h:373</a></div></div>
|
|
882
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00648">SVFStatements.h:648</a></div></div>
|
|
883
|
+
<div class="ttc" id="classSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00256">SVFStatements.h:256</a></div></div>
|
|
884
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00177">ConsG.cpp:177</a></div></div>
|
|
885
885
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVF::SVFStmt::ThreadJoin</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
886
886
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html">SVF::ConstraintNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00040">ConsGNode.h:40</a></div></div>
|
|
887
|
-
<div class="ttc" id="
|
|
888
|
-
<div class="ttc" id="
|
|
889
|
-
<div class="ttc" id="
|
|
887
|
+
<div class="ttc" id="classSVF_1_1GepStmt_html_abec33091e0dac0cdd5b95b6d7b0db3d8"><div class="ttname"><a href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">SVF::GepStmt::getLocationSet</a></div><div class="ttdeci">const LocationSet & getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00435">SVFStatements.h:435</a></div></div>
|
|
888
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00920">SVFStatements.h:920</a></div></div>
|
|
889
|
+
<div class="ttc" id="classSVF_1_1GepStmt_html_a0ddf180a0f7ba64fc8655687910e3788"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">SVF::GepStmt::isVariantFieldGep</a></div><div class="ttdeci">bool isVariantFieldGep() const</div><div class="ttdoc">Gep statement with a variant field index (pointer arithmetic) for struct field access. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00451">SVFStatements.h:451</a></div></div>
|
|
890
890
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVF::SVFStmt::ThreadFork</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
891
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
892
|
-
<div class="ttc" id="classSVF_1_1NormalGepStmt_html"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html">SVF::NormalGepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00459">SVFStatements.h:459</a></div></div>
|
|
891
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00198">ConsG.cpp:198</a></div></div>
|
|
893
892
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVF::SVFStmt::Store</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
894
|
-
<div class="ttc" id="classSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
895
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#
|
|
896
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
893
|
+
<div class="ttc" id="classSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00336">SVFStatements.h:336</a></div></div>
|
|
894
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00239">SVFStatements.cpp:239</a></div></div>
|
|
895
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00216">ConsG.cpp:216</a></div></div>
|
|
897
896
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
|
|
898
|
-
<div class="ttc" id="classSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
897
|
+
<div class="ttc" id="classSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00302">SVFStatements.h:302</a></div></div>
|
|
899
898
|
</div><!-- fragment -->
|
|
900
899
|
</div>
|
|
901
900
|
</div>
|
|
@@ -923,8 +922,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
923
922
|
</div><div class="memdoc">
|
|
924
923
|
<p>Memory has been cleaned up at <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a> </p>
|
|
925
924
|
|
|
926
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
927
|
-
<div class="fragment"><div class="line"><a name="
|
|
925
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00141">141</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
926
|
+
<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> }</div></div><!-- fragment -->
|
|
928
927
|
</div>
|
|
929
928
|
</div>
|
|
930
929
|
<a id="af9fc8308845628fe8900528573e30462"></a>
|
|
@@ -946,8 +945,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
946
945
|
<p>Dump graph into dot file. </p>
|
|
947
946
|
<p>Dump constraint graph </p>
|
|
948
947
|
|
|
949
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
950
|
-
<div class="fragment"><div class="line"><a name="
|
|
948
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00528">528</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
949
|
+
<div class="fragment"><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> {</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <a class="code" href="classllvm_1_1GraphPrinter.html#a53b3809728c30389a594076097884b82">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>(), name, <span class="keyword">this</span>);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
951
950
|
<div class="ttc" id="classllvm_1_1GraphPrinter_html_a53b3809728c30389a594076097884b82"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#a53b3809728c30389a594076097884b82">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(llvm::raw_ostream &O, const std::string &GraphName, const GraphType &GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00057">GraphPrinter.h:57</a></div></div>
|
|
952
951
|
</div><!-- fragment -->
|
|
953
952
|
</div>
|
|
@@ -1365,8 +1364,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1365
1364
|
</div><!-- fragment -->
|
|
1366
1365
|
</div>
|
|
1367
1366
|
</div>
|
|
1368
|
-
<a id="
|
|
1369
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1367
|
+
<a id="a4dd7feb1ed62883dd35ced962ba6b59e"></a>
|
|
1368
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a4dd7feb1ed62883dd35ced962ba6b59e">◆ </a></span>getPAGEdgeSet()</h2>
|
|
1370
1369
|
|
|
1371
1370
|
<div class="memitem">
|
|
1372
1371
|
<div class="memproto">
|
|
@@ -1375,9 +1374,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1375
1374
|
<td class="mlabels-left">
|
|
1376
1375
|
<table class="memname">
|
|
1377
1376
|
<tr>
|
|
1378
|
-
<td class="memname"><a class="el" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">
|
|
1377
|
+
<td class="memname"><a class="el" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& SVF::ConstraintGraph::getPAGEdgeSet </td>
|
|
1379
1378
|
<td>(</td>
|
|
1380
|
-
<td class="paramtype"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">
|
|
1379
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> </td>
|
|
1381
1380
|
<td class="paramname"><em>kind</em></td><td>)</td>
|
|
1382
1381
|
<td></td>
|
|
1383
1382
|
</tr>
|
|
@@ -1811,7 +1810,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1811
1810
|
<p>Check if a given edge is a <a class="el" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a> with 0 offset. </p>
|
|
1812
1811
|
|
|
1813
1812
|
<p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00291">291</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
|
|
1814
|
-
<div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">if</span> (NormalGepCGEdge *normalGepCGEdge = SVFUtil::dyn_cast<NormalGepCGEdge>(edge))</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span> (0 == normalGepCGEdge->
|
|
1813
|
+
<div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">if</span> (NormalGepCGEdge *normalGepCGEdge = SVFUtil::dyn_cast<NormalGepCGEdge>(edge))</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span> (0 == normalGepCGEdge->getConstantFieldIdx())</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div></div><!-- fragment -->
|
|
1815
1814
|
</div>
|
|
1816
1815
|
</div>
|
|
1817
1816
|
<a id="aabe2861fcbc364e2c8aa8114d4879c39"></a>
|
|
@@ -1850,8 +1849,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1850
1849
|
<p><a class="el" href="structMove.html">Move</a> incoming/outgoing direct edges of a sub node to its rep node Return TRUE if there's a gep edge inside this SCC (PWC). </p>
|
|
1851
1850
|
|
|
1852
1851
|
<p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00283">283</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
|
|
1853
|
-
<div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordtype">bool</span> gepIn = <a class="code" href="classSVF_1_1ConstraintGraph.html#a081bf1238121eb52a0c9ad60f77ecbcd">moveInEdgesToRepNode</a>(node, rep);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordtype">bool</span> gepOut = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa436aac95be84d1946169f4984deae59">moveOutEdgesToRepNode</a>(node, rep);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">return</span> (gepIn || gepOut);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa436aac95be84d1946169f4984deae59"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa436aac95be84d1946169f4984deae59">SVF::ConstraintGraph::moveOutEdgesToRepNode</a></div><div class="ttdeci">bool moveOutEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
1854
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a081bf1238121eb52a0c9ad60f77ecbcd"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a081bf1238121eb52a0c9ad60f77ecbcd">SVF::ConstraintGraph::moveInEdgesToRepNode</a></div><div class="ttdeci">bool moveInEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
1852
|
+
<div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordtype">bool</span> gepIn = <a class="code" href="classSVF_1_1ConstraintGraph.html#a081bf1238121eb52a0c9ad60f77ecbcd">moveInEdgesToRepNode</a>(node, rep);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordtype">bool</span> gepOut = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa436aac95be84d1946169f4984deae59">moveOutEdgesToRepNode</a>(node, rep);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">return</span> (gepIn || gepOut);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa436aac95be84d1946169f4984deae59"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa436aac95be84d1946169f4984deae59">SVF::ConstraintGraph::moveOutEdgesToRepNode</a></div><div class="ttdeci">bool moveOutEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00469">ConsG.cpp:469</a></div></div>
|
|
1853
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a081bf1238121eb52a0c9ad60f77ecbcd"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a081bf1238121eb52a0c9ad60f77ecbcd">SVF::ConstraintGraph::moveInEdgesToRepNode</a></div><div class="ttdeci">bool moveInEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00411">ConsG.cpp:411</a></div></div>
|
|
1855
1854
|
</div><!-- fragment -->
|
|
1856
1855
|
</div>
|
|
1857
1856
|
</div>
|
|
@@ -1884,16 +1883,16 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1884
1883
|
<p><a class="el" href="structMove.html">Move</a> incoming direct edges of a sub node which is outside SCC to its rep node Remove incoming direct edges of a sub node which is inside SCC from its rep node </p>
|
|
1885
1884
|
<p>only copy and gep edge can be removed </p>
|
|
1886
1885
|
|
|
1887
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
1888
|
-
<div class="fragment"><div class="line"><a name="
|
|
1886
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00411">411</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
1887
|
+
<div class="fragment"><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  std::vector<ConstraintEdge*> sccEdges;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  std::vector<ConstraintEdge*> nonSccEdges;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-><a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>(), eit = node-><a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>(); it != eit;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  ++it)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* subInEdge = *it;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(subInEdge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) != rep-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  nonSccEdges.push_back(subInEdge);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  sccEdges.push_back(subInEdge);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="comment">// if this edge is outside scc, then re-target edge dst to rep</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">while</span>(!nonSccEdges.empty())</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = nonSccEdges.back();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  nonSccEdges.pop_back();</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">reTargetDstOfEdge</a>(edge,rep);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordtype">bool</span> criticalGepInsideSCC = <span class="keyword">false</span>;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="comment">// if this edge is inside scc, then remove this edge and two end nodes</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">while</span>(!sccEdges.empty())</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = sccEdges.back();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  sccEdges.pop_back();</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">if</span>(SVFUtil::isa<CopyCGEdge>(edge))</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<GepCGEdge>(edge))</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="comment">// If the GEP is critical (i.e. may have a non-zero offset),</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="comment">// then it brings impact on field-sensitivity.</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ConstraintGraph.html#af790af4146197682dd4f9abfad1434f6">isZeroOffsettedGepCGEdge</a>(edge))</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  criticalGepInsideSCC = <span class="keyword">true</span>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  }</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<LoadCGEdge>(edge) || SVFUtil::isa<StoreCGEdge>(edge))</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">reTargetDstOfEdge</a>(edge,rep);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast<AddrCGEdge>(edge))</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"no such edge"</span>);</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">return</span> criticalGepInsideSCC;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</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>
|
|
1889
1888
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_ab1868f04de44f6fe1e9ac14f3d4ee56b"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">SVF::ConstraintNode::const_iterator</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00045">ConsGNode.h:45</a></div></div>
|
|
1890
1889
|
<div class="ttc" id="classSVF_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#l00073">GenericGraph.h:73</a></div></div>
|
|
1891
1890
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
|
|
1892
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
1891
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00360">ConsG.cpp:360</a></div></div>
|
|
1893
1892
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00214">GenericGraph.h:214</a></div></div>
|
|
1894
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a4db3484e3710c3f5cc86ec32dd643722"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">SVF::ConstraintGraph::reTargetDstOfEdge</a></div><div class="ttdeci">void reTargetDstOfEdge(ConstraintEdge *edge, ConstraintNode *newDstNode)</div><div class="ttdoc">Used for cycle elimination. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
1893
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a4db3484e3710c3f5cc86ec32dd643722"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">SVF::ConstraintGraph::reTargetDstOfEdge</a></div><div class="ttdeci">void reTargetDstOfEdge(ConstraintEdge *edge, ConstraintNode *newDstNode)</div><div class="ttdoc">Used for cycle elimination. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00275">ConsG.cpp:275</a></div></div>
|
|
1895
1894
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a39b973543acdcdc5493832cc9d0f586f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">SVF::ConstraintGraph::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC rep/sub nodes methods. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00232">ConsG.h:232</a></div></div>
|
|
1896
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
1895
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00396">ConsG.cpp:396</a></div></div>
|
|
1897
1896
|
<div class="ttc" id="classSVF_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#l00165">GenericGraph.h:165</a></div></div>
|
|
1898
1897
|
<div class="ttc" id="classSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
|
|
1899
1898
|
<div class="ttc" id="classSVF_1_1ConstraintEdge_html"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html">SVF::ConstraintEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00048">ConsGEdge.h:48</a></div></div>
|
|
@@ -1930,16 +1929,16 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1930
1929
|
<p><a class="el" href="structMove.html">Move</a> outgoing direct edges of a sub node which is outside SCC to its rep node Remove outgoing direct edges of a sub node which is inside SCC from its rep node </p>
|
|
1931
1930
|
<p>only copy and gep edge can be removed </p>
|
|
1932
1931
|
|
|
1933
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
1934
|
-
<div class="fragment"><div class="line"><a name="
|
|
1932
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00469">469</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
1933
|
+
<div class="fragment"><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  std::vector<ConstraintEdge*> sccEdges;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  std::vector<ConstraintEdge*> nonSccEdges;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit = node-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  ++it)</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  {</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* subOutEdge = *it;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(subOutEdge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()) != rep-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  nonSccEdges.push_back(subOutEdge);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  sccEdges.push_back(subOutEdge);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  }</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="comment">// if this edge is outside scc, then re-target edge src to rep</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">while</span>(!nonSccEdges.empty())</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  {</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = nonSccEdges.back();</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  nonSccEdges.pop_back();</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">reTargetSrcOfEdge</a>(edge,rep);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordtype">bool</span> criticalGepInsideSCC = <span class="keyword">false</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="comment">// if this edge is inside scc, then remove this edge and two end nodes</span></div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">while</span>(!sccEdges.empty())</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = sccEdges.back();</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  sccEdges.pop_back();</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">if</span>(SVFUtil::isa<CopyCGEdge>(edge))</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<GepCGEdge>(edge))</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="comment">// If the GEP is critical (i.e. may have a non-zero offset),</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="comment">// then it brings impact on field-sensitivity.</span></div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ConstraintGraph.html#af790af4146197682dd4f9abfad1434f6">isZeroOffsettedGepCGEdge</a>(edge))</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  criticalGepInsideSCC = <span class="keyword">true</span>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<LoadCGEdge>(edge) || SVFUtil::isa<StoreCGEdge>(edge))</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">reTargetSrcOfEdge</a>(edge,rep);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast<AddrCGEdge>(edge))</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  {</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  }</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"no such edge"</span>);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">return</span> criticalGepInsideSCC;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> }</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
1935
1934
|
<div class="ttc" id="classSVF_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#l00202">GenericGraph.h:202</a></div></div>
|
|
1936
1935
|
<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>
|
|
1937
1936
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_ab1868f04de44f6fe1e9ac14f3d4ee56b"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">SVF::ConstraintNode::const_iterator</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00045">ConsGNode.h:45</a></div></div>
|
|
1938
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
1937
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00360">ConsG.cpp:360</a></div></div>
|
|
1939
1938
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a39b973543acdcdc5493832cc9d0f586f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">SVF::ConstraintGraph::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC rep/sub nodes methods. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00232">ConsG.h:232</a></div></div>
|
|
1940
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
1939
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00396">ConsG.cpp:396</a></div></div>
|
|
1941
1940
|
<div class="ttc" id="classSVF_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#l00165">GenericGraph.h:165</a></div></div>
|
|
1942
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aaae56afed424f7cd59fddb3fcb2f7214"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">SVF::ConstraintGraph::reTargetSrcOfEdge</a></div><div class="ttdeci">void reTargetSrcOfEdge(ConstraintEdge *edge, ConstraintNode *newSrcNode)</div><div class="ttdoc">Remove edge from old src target, change edge dst id and add modifed edge into new src...</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
1941
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aaae56afed424f7cd59fddb3fcb2f7214"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">SVF::ConstraintGraph::reTargetSrcOfEdge</a></div><div class="ttdeci">void reTargetSrcOfEdge(ConstraintEdge *edge, ConstraintNode *newSrcNode)</div><div class="ttdoc">Remove edge from old src target, change edge dst id and add modifed edge into new src...</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00319">ConsG.cpp:319</a></div></div>
|
|
1943
1942
|
<div class="ttc" id="classSVF_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#l00206">GenericGraph.h:206</a></div></div>
|
|
1944
1943
|
<div class="ttc" id="classSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
|
|
1945
1944
|
<div class="ttc" id="classSVF_1_1ConstraintEdge_html"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html">SVF::ConstraintEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00048">ConsGEdge.h:48</a></div></div>
|
|
@@ -1965,8 +1964,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1965
1964
|
<p>Print CG into terminal. </p>
|
|
1966
1965
|
<p>Print this constraint graph including its nodes and edges </p>
|
|
1967
1966
|
|
|
1968
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
1969
|
-
<div class="fragment"><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"-----------------ConstraintGraph--------------------------------------\n"</span>;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>& addrs = this-><a class="code" href="classSVF_1_1ConstraintGraph.html#adee52f15f5ff58dd455e419c2643f89b">getAddrCGEdges</a>();</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = addrs.begin(),</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  eiter = addrs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  {</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << (*iter)->getSrcID() << <span class="stringliteral">" -- Addr --> "</span> << (*iter)->getDstID()</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>& directs = this-><a class="code" href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">getDirectCGEdges</a>();</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = directs.begin(),</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  eiter = directs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast<CopyCGEdge>(*iter))</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << copy->getSrcID() << <span class="stringliteral">" -- Copy --> "</span> << copy->getDstID()</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* ngep = SVFUtil::dyn_cast<NormalGepCGEdge>(*iter))</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << ngep->getSrcID() << <span class="stringliteral">" -- NormalGep ("</span> << ngep->getFieldOffset()</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  << <span class="stringliteral">") --> "</span> << ngep->getDstID() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* vgep = SVFUtil::dyn_cast<VariantGepCGEdge>(*iter))</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << vgep->getSrcID() << <span class="stringliteral">" -- VarintGep --> "</span></div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  << vgep->getDstID() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"wrong constraint edge kind!"</span>);</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>& loads = this-><a class="code" href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">getLoadCGEdges</a>();</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = loads.begin(),</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  eiter = loads.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << (*iter)->getSrcID() << <span class="stringliteral">" -- Load --> "</span> << (*iter)->getDstID()</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  }</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>& stores = this-><a class="code" href="classSVF_1_1ConstraintGraph.html#a61ef90be6ccc01634e5440f22a0f746e">getStoreCGEdges</a>();</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = stores.begin(),</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  eiter = stores.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << (*iter)->getSrcID() << <span class="stringliteral">" -- Store --> "</span> << (*iter)->getDstID()</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  }</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>()</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  << <span class="stringliteral">"--------------------------------------------------------------\n"</span>;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_afb849d8f3425ff36497d062ecefd2cc1"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">SVF::ConstraintGraph::getLoadCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy & getLoadCGEdges()</div><div class="ttdoc">Get Load edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00203">ConsG.h:203</a></div></div>
|
|
1967
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00536">536</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
1968
|
+
<div class="fragment"><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> {</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"-----------------ConstraintGraph--------------------------------------\n"</span>;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>& addrs = this-><a class="code" href="classSVF_1_1ConstraintGraph.html#adee52f15f5ff58dd455e419c2643f89b">getAddrCGEdges</a>();</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = addrs.begin(),</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  eiter = addrs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << (*iter)->getSrcID() << <span class="stringliteral">" -- Addr --> "</span> << (*iter)->getDstID()</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>& directs = this-><a class="code" href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">getDirectCGEdges</a>();</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = directs.begin(),</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  eiter = directs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast<CopyCGEdge>(*iter))</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << copy->getSrcID() << <span class="stringliteral">" -- Copy --> "</span> << copy->getDstID()</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  }</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* ngep = SVFUtil::dyn_cast<NormalGepCGEdge>(*iter))</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << ngep->getSrcID() << <span class="stringliteral">" -- NormalGep ("</span> << ngep->getConstantFieldIdx()</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  << <span class="stringliteral">") --> "</span> << ngep->getDstID() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* vgep = SVFUtil::dyn_cast<VariantGepCGEdge>(*iter))</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << vgep->getSrcID() << <span class="stringliteral">" -- VarintGep --> "</span></div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  << vgep->getDstID() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"wrong constraint edge kind!"</span>);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>& loads = this-><a class="code" href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">getLoadCGEdges</a>();</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = loads.begin(),</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  eiter = loads.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << (*iter)->getSrcID() << <span class="stringliteral">" -- Load --> "</span> << (*iter)->getDstID()</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>& stores = this-><a class="code" href="classSVF_1_1ConstraintGraph.html#a61ef90be6ccc01634e5440f22a0f746e">getStoreCGEdges</a>();</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = stores.begin(),</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  eiter = stores.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  {</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << (*iter)->getSrcID() << <span class="stringliteral">" -- Store --> "</span> << (*iter)->getDstID()</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  }</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>()</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  << <span class="stringliteral">"--------------------------------------------------------------\n"</span>;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_afb849d8f3425ff36497d062ecefd2cc1"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">SVF::ConstraintGraph::getLoadCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy & getLoadCGEdges()</div><div class="ttdoc">Get Load edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00203">ConsG.h:203</a></div></div>
|
|
1970
1969
|
<div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
|
|
1971
1970
|
<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>
|
|
1972
1971
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_ad7196d5f05192d9468ee0ca93b6b66ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">SVF::ConstraintGraph::getDirectCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy & getDirectCGEdges()</div><div class="ttdoc">Get Copy/call/ret/gep edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00198">ConsG.h:198</a></div></div>
|
|
@@ -1998,8 +1997,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1998
1997
|
<p>Remove addr edge from their src and dst edge sets. </p>
|
|
1999
1998
|
<p>Remove addr edge from their src and dst edge sets </p>
|
|
2000
1999
|
|
|
2001
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
2002
|
-
<div class="fragment"><div class="line"><a name="
|
|
2000
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00360">360</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
2001
|
+
<div class="fragment"><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())->removeOutgoingAddrEdge(edge);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())->removeIncomingAddrEdge(edge);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a5bbd6df25027d26911f5d8d6a10881dc">AddrCGEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num && <span class="stringliteral">"edge not in the set, can not remove!!!"</span>);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
2003
2002
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
2004
2003
|
<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>
|
|
2005
2004
|
<div class="ttc" id="classSVF_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#l00073">GenericGraph.h:73</a></div></div>
|
|
@@ -2056,8 +2055,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2056
2055
|
<p>Remove direct edge from their src and dst edge sets. </p>
|
|
2057
2056
|
<p>Remove edges from their src and dst edge sets </p>
|
|
2058
2057
|
|
|
2059
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
2060
|
-
<div class="fragment"><div class="line"><a name="
|
|
2058
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00396">396</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
2059
|
+
<div class="fragment"><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())->removeOutgoingDirectEdge(edge);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())->removeIncomingDirectEdge(edge);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num && <span class="stringliteral">"edge not in the set, can not remove!!!"</span>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
2061
2060
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
2062
2061
|
<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>
|
|
2063
2062
|
<div class="ttc" id="classSVF_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#l00073">GenericGraph.h:73</a></div></div>
|
|
@@ -2085,8 +2084,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2085
2084
|
<p>Remove load edge from their src and dst edge sets. </p>
|
|
2086
2085
|
<p>Remove load edge from their src and dst edge sets </p>
|
|
2087
2086
|
|
|
2088
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
2089
|
-
<div class="fragment"><div class="line"><a name="
|
|
2087
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00372">372</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
2088
|
+
<div class="fragment"><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())->removeOutgoingLoadEdge(edge);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())->removeIncomingLoadEdge(edge);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1cb9124b29720e7a5b39d83419f9cc17">LoadCGEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num && <span class="stringliteral">"edge not in the set, can not remove!!!"</span>);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
2090
2089
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
2091
2090
|
<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>
|
|
2092
2091
|
<div class="ttc" id="classSVF_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#l00073">GenericGraph.h:73</a></div></div>
|
|
@@ -2114,8 +2113,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2114
2113
|
<p>Remove store edge from their src and dst edge sets. </p>
|
|
2115
2114
|
<p>Remove store edge from their src and dst edge sets </p>
|
|
2116
2115
|
|
|
2117
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
2118
|
-
<div class="fragment"><div class="line"><a name="
|
|
2116
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00384">384</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
2117
|
+
<div class="fragment"><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())->removeOutgoingStoreEdge(edge);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())->removeIncomingStoreEdge(edge);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">StoreCGEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num && <span class="stringliteral">"edge not in the set, can not remove!!!"</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
2119
2118
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
2120
2119
|
<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>
|
|
2121
2120
|
<div class="ttc" id="classSVF_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#l00073">GenericGraph.h:73</a></div></div>
|
|
@@ -2213,27 +2212,27 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2213
2212
|
<p>Re-target dst node of an edge</p>
|
|
2214
2213
|
<p>(1) Remove edge from old dst target, (2) Change edge dst id and (3) Add modifed edge into new dst </p>
|
|
2215
2214
|
|
|
2216
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
2217
|
-
<div class="fragment"><div class="line"><a name="
|
|
2218
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad3d05c949c33a587b3ac6d627f5a0a2"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">SVF::ConstraintGraph::removeStoreEdge</a></div><div class="ttdeci">void removeStoreEdge(StoreCGEdge *edge)</div><div class="ttdoc">Remove store edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2215
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00275">275</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
2216
|
+
<div class="fragment"><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newDstNodeID = newDstNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcId = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>* load = SVFUtil::dyn_cast<LoadCGEdge>(edge))</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">removeLoadEdge</a>(load);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>* store = SVFUtil::dyn_cast<StoreCGEdge>(edge))</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">removeStoreEdge</a>(store);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast<CopyCGEdge>(edge))</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(copy);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* gep = SVFUtil::dyn_cast<NormalGepCGEdge>(edge))</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> ls = gep->getLocationSet();</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(srcId,newDstNodeID,ls);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* gep = SVFUtil::dyn_cast<VariantGepCGEdge>(edge))</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast<AddrCGEdge>(edge))</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"no other edge type!!"</span>);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> }</div><div class="ttc" id="namespaceSVF_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="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
2217
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad3d05c949c33a587b3ac6d627f5a0a2"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">SVF::ConstraintGraph::removeStoreEdge</a></div><div class="ttdeci">void removeStoreEdge(StoreCGEdge *edge)</div><div class="ttdoc">Remove store edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00384">ConsG.cpp:384</a></div></div>
|
|
2219
2218
|
<div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
|
|
2220
2219
|
<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>
|
|
2221
2220
|
<div class="ttc" id="classSVF_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#l00073">GenericGraph.h:73</a></div></div>
|
|
2222
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2223
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2221
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00252">ConsG.cpp:252</a></div></div>
|
|
2222
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00234">ConsG.cpp:234</a></div></div>
|
|
2224
2223
|
<div class="ttc" id="classSVF_1_1VariantGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1VariantGepCGEdge.html">SVF::VariantGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00316">ConsGEdge.h:316</a></div></div>
|
|
2225
2224
|
<div class="ttc" id="classSVF_1_1LoadCGEdge_html"><div class="ttname"><a href="classSVF_1_1LoadCGEdge.html">SVF::LoadCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00191">ConsGEdge.h:191</a></div></div>
|
|
2226
2225
|
<div class="ttc" id="classSVF_1_1CopyCGEdge_html"><div class="ttname"><a href="classSVF_1_1CopyCGEdge.html">SVF::CopyCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00124">ConsGEdge.h:124</a></div></div>
|
|
2227
2226
|
<div class="ttc" id="classSVF_1_1StoreCGEdge_html"><div class="ttname"><a href="classSVF_1_1StoreCGEdge.html">SVF::StoreCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00157">ConsGEdge.h:157</a></div></div>
|
|
2228
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2229
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2230
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2231
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2227
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00360">ConsG.cpp:360</a></div></div>
|
|
2228
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00177">ConsG.cpp:177</a></div></div>
|
|
2229
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00396">ConsG.cpp:396</a></div></div>
|
|
2230
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00198">ConsG.cpp:198</a></div></div>
|
|
2232
2231
|
<div class="ttc" id="classSVF_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#l00165">GenericGraph.h:165</a></div></div>
|
|
2233
2232
|
<div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
|
|
2234
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa4bca2422049413439cb0c3400f2ce28"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">SVF::ConstraintGraph::removeLoadEdge</a></div><div class="ttdeci">void removeLoadEdge(LoadCGEdge *edge)</div><div class="ttdoc">Remove load edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2233
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa4bca2422049413439cb0c3400f2ce28"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">SVF::ConstraintGraph::removeLoadEdge</a></div><div class="ttdeci">void removeLoadEdge(LoadCGEdge *edge)</div><div class="ttdoc">Remove load edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00372">ConsG.cpp:372</a></div></div>
|
|
2235
2234
|
<div class="ttc" id="classSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
|
|
2236
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2235
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00216">ConsG.cpp:216</a></div></div>
|
|
2237
2236
|
</div><!-- fragment -->
|
|
2238
2237
|
</div>
|
|
2239
2238
|
</div>
|
|
@@ -2266,27 +2265,27 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2266
2265
|
<p>Remove edge from old src target, change edge dst id and add modifed edge into new src. </p>
|
|
2267
2266
|
<p>Re-target src node of an edge (1) Remove edge from old src target, (2) Change edge src id and (3) Add modified edge into new src </p>
|
|
2268
2267
|
|
|
2269
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
2270
|
-
<div class="fragment"><div class="line"><a name="
|
|
2268
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00319">319</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
2269
|
+
<div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newSrcNodeID = newSrcNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstId = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>* load = SVFUtil::dyn_cast<LoadCGEdge>(edge))</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">removeLoadEdge</a>(load);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(newSrcNodeID,dstId);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>* store = SVFUtil::dyn_cast<StoreCGEdge>(edge))</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">removeStoreEdge</a>(store);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(newSrcNodeID,dstId);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast<CopyCGEdge>(edge))</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(copy);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(newSrcNodeID,dstId);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* gep = SVFUtil::dyn_cast<NormalGepCGEdge>(edge))</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> ls = gep->getLocationSet();</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(newSrcNodeID,dstId,ls);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* gep = SVFUtil::dyn_cast<VariantGepCGEdge>(edge))</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(newSrcNodeID,dstId);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast<AddrCGEdge>(edge))</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"no other edge type!!"</span>);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> }</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
2271
2270
|
<div class="ttc" id="namespaceSVF_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="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
2272
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad3d05c949c33a587b3ac6d627f5a0a2"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">SVF::ConstraintGraph::removeStoreEdge</a></div><div class="ttdeci">void removeStoreEdge(StoreCGEdge *edge)</div><div class="ttdoc">Remove store edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2271
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad3d05c949c33a587b3ac6d627f5a0a2"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">SVF::ConstraintGraph::removeStoreEdge</a></div><div class="ttdeci">void removeStoreEdge(StoreCGEdge *edge)</div><div class="ttdoc">Remove store edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00384">ConsG.cpp:384</a></div></div>
|
|
2273
2272
|
<div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
|
|
2274
2273
|
<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>
|
|
2275
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2276
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2274
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00252">ConsG.cpp:252</a></div></div>
|
|
2275
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00234">ConsG.cpp:234</a></div></div>
|
|
2277
2276
|
<div class="ttc" id="classSVF_1_1VariantGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1VariantGepCGEdge.html">SVF::VariantGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00316">ConsGEdge.h:316</a></div></div>
|
|
2278
2277
|
<div class="ttc" id="classSVF_1_1LoadCGEdge_html"><div class="ttname"><a href="classSVF_1_1LoadCGEdge.html">SVF::LoadCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00191">ConsGEdge.h:191</a></div></div>
|
|
2279
2278
|
<div class="ttc" id="classSVF_1_1CopyCGEdge_html"><div class="ttname"><a href="classSVF_1_1CopyCGEdge.html">SVF::CopyCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00124">ConsGEdge.h:124</a></div></div>
|
|
2280
2279
|
<div class="ttc" id="classSVF_1_1StoreCGEdge_html"><div class="ttname"><a href="classSVF_1_1StoreCGEdge.html">SVF::StoreCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00157">ConsGEdge.h:157</a></div></div>
|
|
2281
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2282
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2283
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2284
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2280
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00360">ConsG.cpp:360</a></div></div>
|
|
2281
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00177">ConsG.cpp:177</a></div></div>
|
|
2282
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00396">ConsG.cpp:396</a></div></div>
|
|
2283
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00198">ConsG.cpp:198</a></div></div>
|
|
2285
2284
|
<div class="ttc" id="classSVF_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#l00165">GenericGraph.h:165</a></div></div>
|
|
2286
2285
|
<div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
|
|
2287
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa4bca2422049413439cb0c3400f2ce28"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">SVF::ConstraintGraph::removeLoadEdge</a></div><div class="ttdeci">void removeLoadEdge(LoadCGEdge *edge)</div><div class="ttdoc">Remove load edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2286
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa4bca2422049413439cb0c3400f2ce28"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">SVF::ConstraintGraph::removeLoadEdge</a></div><div class="ttdeci">void removeLoadEdge(LoadCGEdge *edge)</div><div class="ttdoc">Remove load edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00372">ConsG.cpp:372</a></div></div>
|
|
2288
2287
|
<div class="ttc" id="classSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
|
|
2289
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#
|
|
2288
|
+
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00216">ConsG.cpp:216</a></div></div>
|
|
2290
2289
|
</div><!-- fragment -->
|
|
2291
2290
|
</div>
|
|
2292
2291
|
</div>
|
|
@@ -2476,8 +2475,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2476
2475
|
<p>View graph from the debugger. </p>
|
|
2477
2476
|
<p>View dot graph of Constraint graph from debugger. </p>
|
|
2478
2477
|
|
|
2479
|
-
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#
|
|
2480
|
-
<div class="fragment"><div class="line"><a name="
|
|
2478
|
+
<p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00596">596</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
|
|
2479
|
+
<div class="fragment"><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  llvm::ViewGraph(<span class="keyword">this</span>, <span class="stringliteral">"Constraint Graph"</span>);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span> }</div></div><!-- fragment -->
|
|
2481
2480
|
</div>
|
|
2482
2481
|
</div>
|
|
2483
2482
|
<h2 class="groupheader">Member Data Documentation</h2>
|