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
|
@@ -303,7 +303,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
303
303
|
</table>
|
|
304
304
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
305
305
|
<div class="textblock">
|
|
306
|
-
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#
|
|
306
|
+
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00325">325</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
307
307
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
308
308
|
<a id="a3ccbe6bbe3f565641e0cf46c5ecbb6bb"></a>
|
|
309
309
|
<h2 class="memtitle"><span class="permalink"><a href="#a3ccbe6bbe3f565641e0cf46c5ecbb6bb">◆ </a></span>ObjVar()</h2>
|
|
@@ -353,9 +353,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
353
353
|
|
|
354
354
|
<p>Constructor. </p>
|
|
355
355
|
|
|
356
|
-
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#
|
|
357
|
-
<div class="fragment"><div class="line"><a name="
|
|
358
|
-
<div class="ttc" id="classSVF_1_1ObjVar_html_a3d08dc1d15a449ff4b7018da4bfdcb88"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">SVF::ObjVar::mem</a></div><div class="ttdeci">const MemObj * mem</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#
|
|
356
|
+
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00331">331</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
357
|
+
<div class="fragment"><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  :</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classSVF_1_1SVFVar.html#a24daf5faa4b1d159c193e61951d17414">SVFVar</a>(val, i, ty), <a class="code" href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">mem</a>(m)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a24daf5faa4b1d159c193e61951d17414"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a24daf5faa4b1d159c193e61951d17414">SVF::SVFVar::SVFVar</a></div><div class="ttdeci">SVFVar(const Value *val, NodeID i, PNODEK k)</div><div class="ttdoc">address-taken pointer </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8cpp_source.html#l00040">SVFVariables.cpp:40</a></div></div>
|
|
358
|
+
<div class="ttc" id="classSVF_1_1ObjVar_html_a3d08dc1d15a449ff4b7018da4bfdcb88"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">SVF::ObjVar::mem</a></div><div class="ttdeci">const MemObj * mem</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00329">SVFVariables.h:329</a></div></div>
|
|
359
359
|
</div><!-- fragment -->
|
|
360
360
|
</div>
|
|
361
361
|
</div>
|
|
@@ -386,8 +386,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
386
386
|
|
|
387
387
|
<p>Methods for support type inquiry through isa, cast, and dyn_cast: </p>
|
|
388
388
|
|
|
389
|
-
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#
|
|
390
|
-
<div class="fragment"><div class="line"><a name="
|
|
389
|
+
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00338">338</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
390
|
+
<div class="fragment"><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="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div></div><!-- fragment -->
|
|
391
391
|
</div>
|
|
392
392
|
</div>
|
|
393
393
|
<a id="a78ee2be4a346728be947ce29d3820c13"></a>
|
|
@@ -414,8 +414,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
414
414
|
</table>
|
|
415
415
|
</div><div class="memdoc">
|
|
416
416
|
|
|
417
|
-
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#
|
|
418
|
-
<div class="fragment"><div class="line"><a name="
|
|
417
|
+
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00342">342</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
418
|
+
<div class="fragment"><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">return</span> node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">SVFVar::ObjNode</a> ||</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a> ||</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a> ||</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a> ||</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a> ||</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a> ||</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVF::SVFVar::FIObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00071">SVFVariables.h:71</a></div></div>
|
|
419
419
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVF::SVFVar::CloneGepObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00074">SVFVariables.h:74</a></div></div>
|
|
420
420
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVF::SVFVar::GepObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00070">SVFVariables.h:70</a></div></div>
|
|
421
421
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVF::SVFVar::CloneFIObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00075">SVFVariables.h:75</a></div></div>
|
|
@@ -449,8 +449,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
449
449
|
</table>
|
|
450
450
|
</div><div class="memdoc">
|
|
451
451
|
|
|
452
|
-
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#
|
|
453
|
-
<div class="fragment"><div class="line"><a name="
|
|
452
|
+
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00352">352</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
453
|
+
<div class="fragment"><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">return</span> node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">SVFVar::ObjNode</a> ||</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a> ||</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a> ||</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a> ||</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a> ||</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a> ||</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  node->getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVF::SVFVar::FIObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00071">SVFVariables.h:71</a></div></div>
|
|
454
454
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVF::SVFVar::CloneGepObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00074">SVFVariables.h:74</a></div></div>
|
|
455
455
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVF::SVFVar::GepObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00070">SVFVariables.h:70</a></div></div>
|
|
456
456
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVF::SVFVar::CloneFIObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00075">SVFVariables.h:75</a></div></div>
|
|
@@ -485,8 +485,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
485
485
|
|
|
486
486
|
<p>Return memory object. </p>
|
|
487
487
|
|
|
488
|
-
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#
|
|
489
|
-
<div class="fragment"><div class="line"><a name="
|
|
488
|
+
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00365">365</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
489
|
+
<div class="fragment"><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">mem</a>;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  }</div><div class="ttc" id="classSVF_1_1ObjVar_html_a3d08dc1d15a449ff4b7018da4bfdcb88"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">SVF::ObjVar::mem</a></div><div class="ttdeci">const MemObj * mem</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00329">SVFVariables.h:329</a></div></div>
|
|
490
490
|
</div><!-- fragment -->
|
|
491
491
|
</div>
|
|
492
492
|
</div>
|
|
@@ -519,9 +519,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
519
519
|
|
|
520
520
|
<p>Reimplemented in <a class="el" href="classSVF_1_1GepObjVar.html#ab2348a9378f1c64cf5c176b21a655d14">SVF::GepObjVar</a>.</p>
|
|
521
521
|
|
|
522
|
-
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#
|
|
523
|
-
<div class="fragment"><div class="line"><a name="
|
|
524
|
-
<div class="ttc" id="classSVF_1_1ObjVar_html_a3d08dc1d15a449ff4b7018da4bfdcb88"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">SVF::ObjVar::mem</a></div><div class="ttdeci">const MemObj * mem</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#
|
|
522
|
+
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00378">378</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
523
|
+
<div class="fragment"><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">mem</a>-><a class="code" href="classSVF_1_1MemObj.html#aa4fa7a1b86d66692ffffeaee0e187216">getType</a>();</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  }</div><div class="ttc" id="classSVF_1_1MemObj_html_aa4fa7a1b86d66692ffffeaee0e187216"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa4fa7a1b86d66692ffffeaee0e187216">SVF::MemObj::getType</a></div><div class="ttdeci">const Type * getType() const</div><div class="ttdoc">Get obj type. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00626">SymbolTableInfo.cpp:626</a></div></div>
|
|
524
|
+
<div class="ttc" id="classSVF_1_1ObjVar_html_a3d08dc1d15a449ff4b7018da4bfdcb88"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">SVF::ObjVar::mem</a></div><div class="ttdeci">const MemObj * mem</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00329">SVFVariables.h:329</a></div></div>
|
|
525
525
|
</div><!-- fragment -->
|
|
526
526
|
</div>
|
|
527
527
|
</div>
|
|
@@ -554,8 +554,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
554
554
|
|
|
555
555
|
<p>Reimplemented in <a class="el" href="classSVF_1_1CloneFIObjVar.html#abac4095a6a60c321caa40f837a752803">SVF::CloneFIObjVar</a>, <a class="el" href="classSVF_1_1CloneGepObjVar.html#a9d4cf31155950c889b5965566ab3d45e">SVF::CloneGepObjVar</a>, <a class="el" href="classSVF_1_1CloneDummyObjVar.html#a2ddf5e4067c537a7dfd9bf74f7195931">SVF::CloneDummyObjVar</a>, <a class="el" href="classSVF_1_1DummyObjVar.html#aec23bc498cf78ed065565681e14dd2dd">SVF::DummyObjVar</a>, <a class="el" href="classSVF_1_1FIObjVar.html#a330b28f8488de9e186bedf73e5576a08">SVF::FIObjVar</a>, and <a class="el" href="classSVF_1_1GepObjVar.html#a88f86fe8abcb0550d838e5de11ae3ef7">SVF::GepObjVar</a>.</p>
|
|
556
556
|
|
|
557
|
-
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#
|
|
558
|
-
<div class="fragment"><div class="line"><a name="
|
|
557
|
+
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00371">371</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
558
|
+
<div class="fragment"><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> && <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>->hasName())</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>->getName().str();</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a7deb494ac20ed56fca31a4f1fd92deea"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">SVF::SVFVar::value</a></div><div class="ttdeci">const Value * value</div><div class="ttdoc">value of this SVFIR node </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00081">SVFVariables.h:81</a></div></div>
|
|
559
559
|
</div><!-- fragment -->
|
|
560
560
|
</div>
|
|
561
561
|
</div>
|
|
@@ -617,7 +617,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
617
617
|
</div><div class="memdoc">
|
|
618
618
|
<p>memory object </p>
|
|
619
619
|
|
|
620
|
-
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#
|
|
620
|
+
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00329">329</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
621
621
|
|
|
622
622
|
</div>
|
|
623
623
|
</div>
|
|
@@ -116,7 +116,7 @@ $(function() {
|
|
|
116
116
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1OfflineConsG.html#a5deba2c74d1a3dc24ec55e3ecf3227be">getNorRep</a>(NodeID nor) const</td><td class="entry"><a class="el" href="classSVF_1_1OfflineConsG.html">SVF::OfflineConsG</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
|
|
117
117
|
<tr><td class="entry"><a class="el" href="classSVF_1_1OfflineConsG.html#a3f390900ee8761055c6d59107bc0ad27">getOCGRep</a>(NodeID node) const</td><td class="entry"><a class="el" href="classSVF_1_1OfflineConsG.html">SVF::OfflineConsG</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
118
118
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1OfflineConsG.html#a4c27bd33977816db33d0e7d92036239a">getOCGRepMap</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1OfflineConsG.html">SVF::OfflineConsG</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
119
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1ConstraintGraph.html#
|
|
119
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1ConstraintGraph.html#a4dd7feb1ed62883dd35ced962ba6b59e">getPAGEdgeSet</a>(SVFStmt::PEDGEK kind)</td><td class="entry"><a class="el" href="classSVF_1_1ConstraintGraph.html">SVF::ConstraintGraph</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
|
|
120
120
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1OfflineConsG.html#af701f54b1db07a16e926cd40ab17eb12">getRef</a>(NodeID node) const</td><td class="entry"><a class="el" href="classSVF_1_1OfflineConsG.html">SVF::OfflineConsG</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
121
121
|
<tr><td class="entry"><a class="el" href="classSVF_1_1ConstraintGraph.html#acd1f0ce7936ced59bfaf04956a0f8214">getRep</a>(NodeID node)</td><td class="entry"><a class="el" href="classSVF_1_1ConstraintGraph.html">SVF::ConstraintGraph</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
122
122
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ConstraintGraph.html#a802d7aa5c5bdc5c8720120f71d316b68">getReturnNode</a>(const SVFFunction *value) const</td><td class="entry"><a class="el" href="classSVF_1_1ConstraintGraph.html">SVF::ConstraintGraph</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
|
|
@@ -339,8 +339,8 @@ Protected Member Functions</h2></td></tr>
|
|
|
339
339
|
<tr class="separator:a1973126243ff619033a78a3782944278 inherit pro_methods_classSVF_1_1ConstraintGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
340
340
|
<tr class="memitem:a77ba38543b1ee164f1ae95589d5dbc44 inherit pro_methods_classSVF_1_1ConstraintGraph"><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>
|
|
341
341
|
<tr class="separator:a77ba38543b1ee164f1ae95589d5dbc44 inherit pro_methods_classSVF_1_1ConstraintGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
342
|
-
<tr class="memitem:
|
|
343
|
-
<tr class="separator:
|
|
342
|
+
<tr class="memitem:a4dd7feb1ed62883dd35ced962ba6b59e inherit pro_methods_classSVF_1_1ConstraintGraph"><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>
|
|
343
|
+
<tr class="separator:a4dd7feb1ed62883dd35ced962ba6b59e inherit pro_methods_classSVF_1_1ConstraintGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
344
344
|
<tr class="memitem:a00242eb1c1204abf1f5eb0cae759a38c inherit pro_methods_classSVF_1_1ConstraintGraph"><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>
|
|
345
345
|
<tr class="memdesc:a00242eb1c1204abf1f5eb0cae759a38c inherit pro_methods_classSVF_1_1ConstraintGraph"><td class="mdescLeft"> </td><td class="mdescRight">Wappers used internally, not expose to Andernsen Pass. <a href="classSVF_1_1ConstraintGraph.html#a00242eb1c1204abf1f5eb0cae759a38c">More...</a><br /></td></tr>
|
|
346
346
|
<tr class="separator:a00242eb1c1204abf1f5eb0cae759a38c inherit pro_methods_classSVF_1_1ConstraintGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -516,7 +516,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
516
516
|
<p class="definition">Definition at line <a class="el" href="OfflineConsG_8cpp_source.html#l00086">86</a> of file <a class="el" href="OfflineConsG_8cpp_source.html">OfflineConsG.cpp</a>.</p>
|
|
517
517
|
<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classSVF_1_1OfflineConsG.html#a984e82f3185be03b8d1cb942685b2010">createRefNode</a>(src);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ref = <a class="code" href="classSVF_1_1OfflineConsG.html#aebeb8a44fcfbb677a738fa04c8e9c5e1">nodeToRefMap</a>[src];</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(ref, dst);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</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>
|
|
518
518
|
<div class="ttc" id="classSVF_1_1OfflineConsG_html_aebeb8a44fcfbb677a738fa04c8e9c5e1"><div class="ttname"><a href="classSVF_1_1OfflineConsG.html#aebeb8a44fcfbb677a738fa04c8e9c5e1">SVF::OfflineConsG::nodeToRefMap</a></div><div class="ttdeci">NodeToRepMap nodeToRefMap</div><div class="ttdef"><b>Definition:</b> <a href="OfflineConsG_8h_source.html#l00054">OfflineConsG.h:54</a></div></div>
|
|
519
|
-
<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#
|
|
519
|
+
<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>
|
|
520
520
|
<div class="ttc" id="classSVF_1_1OfflineConsG_html_a984e82f3185be03b8d1cb942685b2010"><div class="ttname"><a href="classSVF_1_1OfflineConsG.html#a984e82f3185be03b8d1cb942685b2010">SVF::OfflineConsG::createRefNode</a></div><div class="ttdeci">bool createRefNode(NodeID nodeId)</div><div class="ttdef"><b>Definition:</b> <a href="OfflineConsG_8cpp_source.html#l00107">OfflineConsG.cpp:107</a></div></div>
|
|
521
521
|
</div><!-- fragment -->
|
|
522
522
|
</div>
|
|
@@ -559,7 +559,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
559
559
|
<p class="definition">Definition at line <a class="el" href="OfflineConsG_8cpp_source.html#l00097">97</a> of file <a class="el" href="OfflineConsG_8cpp_source.html">OfflineConsG.cpp</a>.</p>
|
|
560
560
|
<div class="fragment"><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1OfflineConsG.html#a984e82f3185be03b8d1cb942685b2010">createRefNode</a>(dst);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ref = <a class="code" href="classSVF_1_1OfflineConsG.html#aebeb8a44fcfbb677a738fa04c8e9c5e1">nodeToRefMap</a>[dst];</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(src, ref);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</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>
|
|
561
561
|
<div class="ttc" id="classSVF_1_1OfflineConsG_html_aebeb8a44fcfbb677a738fa04c8e9c5e1"><div class="ttname"><a href="classSVF_1_1OfflineConsG.html#aebeb8a44fcfbb677a738fa04c8e9c5e1">SVF::OfflineConsG::nodeToRefMap</a></div><div class="ttdeci">NodeToRepMap nodeToRefMap</div><div class="ttdef"><b>Definition:</b> <a href="OfflineConsG_8h_source.html#l00054">OfflineConsG.h:54</a></div></div>
|
|
562
|
-
<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#
|
|
562
|
+
<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>
|
|
563
563
|
<div class="ttc" id="classSVF_1_1OfflineConsG_html_a984e82f3185be03b8d1cb942685b2010"><div class="ttname"><a href="classSVF_1_1OfflineConsG.html#a984e82f3185be03b8d1cb942685b2010">SVF::OfflineConsG::createRefNode</a></div><div class="ttdeci">bool createRefNode(NodeID nodeId)</div><div class="ttdef"><b>Definition:</b> <a href="OfflineConsG_8cpp_source.html#l00107">OfflineConsG.cpp:107</a></div></div>
|
|
564
564
|
</div><!-- fragment -->
|
|
565
565
|
</div>
|
|
@@ -591,7 +591,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
591
591
|
<p class="definition">Definition at line <a class="el" href="OfflineConsG_8cpp_source.html#l00039">39</a> of file <a class="el" href="OfflineConsG_8cpp_source.html">OfflineConsG.cpp</a>.</p>
|
|
592
592
|
<div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="classSVF_1_1OfflineConsG.html#a832953ac86452c45f55aa6ff3c545f36">LoadEdges</a> loads;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1OfflineConsG.html#a9880cb387e24fa2c87297487411f95ea">StoreEdges</a> stores;</div><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>  <span class="comment">// Add a copy edge between the ref node of src node and dst node</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator it = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1cb9124b29720e7a5b39d83419f9cc17">LoadCGEdgeSet</a>.begin(), eit =</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a1cb9124b29720e7a5b39d83419f9cc17">LoadCGEdgeSet</a>.end(); 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_1LoadCGEdge.html">LoadCGEdge</a> *load = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>>(*it);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  loads.insert(load);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src = load-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = load-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1OfflineConsG.html#a6c8afd3dc37fc60aecc6efd238312940">addRefLoadEdge</a>(src, dst);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// Add a copy edge between src node and the ref node of dst node</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator it = <a class="code" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">StoreCGEdgeSet</a>.begin(), eit =</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">StoreCGEdgeSet</a>.end(); it != eit; ++it)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a> *store = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>>(*it);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  stores.insert(store);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src = store-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = store-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1OfflineConsG.html#a99e2de184d8f532074666881b67e0b17">addRefStoreEdge</a>(src, dst);</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> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">// Dump offline graph with all edges</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classSVF_1_1OfflineConsG.html#a727c635892986998167f30ff23a75f4c">dump</a>(<span class="stringliteral">"oCG_initial"</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>  <span class="comment">// Remove load and store edges in offline constraint graph</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">for</span> (LoadEdges::iterator it = loads.begin(), eit = loads.end(); it != eit; ++it)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">removeLoadEdge</a>(*it);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">for</span> (StoreEdges::iterator it = stores.begin(), eit = stores.end(); it != eit; ++it)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">removeStoreEdge</a>(*it);</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> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// Dump offline graph with removed load and store edges</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1OfflineConsG.html#a727c635892986998167f30ff23a75f4c">dump</a>(<span class="stringliteral">"oCG_final"</span>);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</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>
|
|
593
593
|
<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>
|
|
594
|
-
<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#
|
|
594
|
+
<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>
|
|
595
595
|
<div class="ttc" id="classSVF_1_1OfflineConsG_html_a6c8afd3dc37fc60aecc6efd238312940"><div class="ttname"><a href="classSVF_1_1OfflineConsG.html#a6c8afd3dc37fc60aecc6efd238312940">SVF::OfflineConsG::addRefLoadEdge</a></div><div class="ttdeci">bool addRefLoadEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="OfflineConsG_8cpp_source.html#l00086">OfflineConsG.cpp:86</a></div></div>
|
|
596
596
|
<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>
|
|
597
597
|
<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>
|
|
@@ -601,7 +601,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
601
601
|
<div class="ttc" id="classSVF_1_1OfflineConsG_html_a832953ac86452c45f55aa6ff3c545f36"><div class="ttname"><a href="classSVF_1_1OfflineConsG.html#a832953ac86452c45f55aa6ff3c545f36">SVF::OfflineConsG::LoadEdges</a></div><div class="ttdeci">Set< LoadCGEdge * > LoadEdges</div><div class="ttdef"><b>Definition:</b> <a href="OfflineConsG_8h_source.html#l00049">OfflineConsG.h:49</a></div></div>
|
|
602
602
|
<div class="ttc" id="classSVF_1_1OfflineConsG_html_a727c635892986998167f30ff23a75f4c"><div class="ttname"><a href="classSVF_1_1OfflineConsG.html#a727c635892986998167f30ff23a75f4c">SVF::OfflineConsG::dump</a></div><div class="ttdeci">void dump(std::string name)</div><div class="ttdef"><b>Definition:</b> <a href="OfflineConsG_8cpp_source.html#l00169">OfflineConsG.cpp:169</a></div></div>
|
|
603
603
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
604
|
-
<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#
|
|
604
|
+
<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>
|
|
605
605
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a0f9d5eef25827ac1d380e5d8bd225025"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">SVF::ConstraintGraph::StoreCGEdgeSet</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy StoreCGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00064">ConsG.h:64</a></div></div>
|
|
606
606
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1cb9124b29720e7a5b39d83419f9cc17"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1cb9124b29720e7a5b39d83419f9cc17">SVF::ConstraintGraph::LoadCGEdgeSet</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy LoadCGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00063">ConsG.h:63</a></div></div>
|
|
607
607
|
</div><!-- fragment -->
|
|
@@ -209,17 +209,17 @@ Private Attributes</h2></td></tr>
|
|
|
209
209
|
<p>sanity check for <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> from txt </p>
|
|
210
210
|
|
|
211
211
|
<p class="definition">Definition at line <a class="el" href="PAGBuilderFromFile_8cpp_source.html#l00146">146</a> of file <a class="el" href="PAGBuilderFromFile_8cpp_source.html">PAGBuilderFromFile.cpp</a>.</p>
|
|
212
|
-
<div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="comment">//check whether these two nodes available</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* srcNode = <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(srcID);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* dstNode = <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dstID);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<ValVar>(dstNode) && <span class="stringliteral">"dst not an value node?"</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">if</span>(edge==<span class="stringliteral">"addr"</span>)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<ObjVar>(srcNode) && <span class="stringliteral">"src not an value node?"</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!SVFUtil::isa<ObjVar>(srcNode) && <span class="stringliteral">"src not an object node?"</span>);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span> (edge == <span class="stringliteral">"addr"</span>)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a8436a7eede7b5ff5d9b80a0c951ea729">addAddrStmt</a>(srcID, dstID);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"copy"</span>)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa54b93ebf36944b548aaa74dbf8a144f">addCopyStmt</a>(srcID, dstID);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"load"</span>)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a3837804b2622baf7e6991aa993286e9e">addLoadStmt</a>(srcID, dstID);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"store"</span>)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#af9804d78e4158d3c8961e1f84bbef91e">addStoreStmt</a>(srcID, dstID, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"gep"</span>)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2a851ff7011e3bd71c36be5c7198a1f4">addNormalGepStmt</a>(srcID, dstID, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(offsetOrCSId));</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"variant-gep"</span>)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#abbd4b6430444a91e991636abf189c00b">addVariantGepStmt</a>(srcID, dstID, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(offsetOrCSId));</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"call"</span>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">addEdge</a>(srcNode, dstNode, <span class="keyword">new</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(srcNode, dstNode, <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"ret"</span>)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">addEdge</a>(srcNode, dstNode, <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(srcNode, dstNode, <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"cmp"</span>)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a7eb14738f0cf08cc8b5c623c953db4ba">addCmpStmt</a>(srcID, dstID, dstID, dstID);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"binary-op"</span>)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a955a2f93cf9eef857e40f19bc24edb2f">addBinaryOPStmt</a>(srcID, dstID, dstID, dstID);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"unary-op"</span>)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a8abc436992aa3b6b636084ff5f9a8ef2">addUnaryOPStmt</a>(srcID, dstID, dstID);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"phi"</span>)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#af6b4b35214d0e526dee13dadbb6326d0">addPhiStmt</a>(srcID, dstID);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"branch"</span>){</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"fix successors here!"</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">//pag->addBranchStmt(srcID, dstID, nullptr);</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"format not support, can not create such edge"</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> }</div><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#l00594">SVFStatements.h:594</a></div></div>
|
|
212
|
+
<div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="comment">//check whether these two nodes available</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* srcNode = <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(srcID);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* dstNode = <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dstID);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<ValVar>(dstNode) && <span class="stringliteral">"dst not an value node?"</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">if</span>(edge==<span class="stringliteral">"addr"</span>)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<ObjVar>(srcNode) && <span class="stringliteral">"src not an value node?"</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!SVFUtil::isa<ObjVar>(srcNode) && <span class="stringliteral">"src not an object node?"</span>);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span> (edge == <span class="stringliteral">"addr"</span>)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a8436a7eede7b5ff5d9b80a0c951ea729">addAddrStmt</a>(srcID, dstID);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"copy"</span>)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa54b93ebf36944b548aaa74dbf8a144f">addCopyStmt</a>(srcID, dstID);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"load"</span>)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a3837804b2622baf7e6991aa993286e9e">addLoadStmt</a>(srcID, dstID);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"store"</span>)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#af9804d78e4158d3c8961e1f84bbef91e">addStoreStmt</a>(srcID, dstID, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"gep"</span>)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a460011093c6426b98236c8381b1df0a0">addNormalGepStmt</a>(srcID, dstID, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(offsetOrCSId));</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"variant-gep"</span>)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a996574dbe5d5d79b1dc24cf5dc4145de">addVariantGepStmt</a>(srcID, dstID, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(offsetOrCSId));</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"call"</span>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">addEdge</a>(srcNode, dstNode, <span class="keyword">new</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(srcNode, dstNode, <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"ret"</span>)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">addEdge</a>(srcNode, dstNode, <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(srcNode, dstNode, <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"cmp"</span>)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a7eb14738f0cf08cc8b5c623c953db4ba">addCmpStmt</a>(srcID, dstID, dstID, dstID);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"binary-op"</span>)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a955a2f93cf9eef857e40f19bc24edb2f">addBinaryOPStmt</a>(srcID, dstID, dstID, dstID);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"unary-op"</span>)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a8abc436992aa3b6b636084ff5f9a8ef2">addUnaryOPStmt</a>(srcID, dstID, dstID);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"phi"</span>)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#af6b4b35214d0e526dee13dadbb6326d0">addPhiStmt</a>(srcID, dstID);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">"branch"</span>){</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"fix successors here!"</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">//pag->addBranchStmt(srcID, dstID, nullptr);</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"format not support, can not create such edge"</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> }</div><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>
|
|
213
213
|
<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>
|
|
214
214
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a8abc436992aa3b6b636084ff5f9a8ef2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a8abc436992aa3b6b636084ff5f9a8ef2">SVF::SVFIR::addUnaryOPStmt</a></div><div class="ttdeci">UnaryOPStmt * addUnaryOPStmt(NodeID src, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Unary edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00149">SVFIR.cpp:149</a></div></div>
|
|
215
215
|
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
|
|
216
216
|
<div class="ttc" id="classSVF_1_1SVFIR_html_af6b4b35214d0e526dee13dadbb6326d0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af6b4b35214d0e526dee13dadbb6326d0">SVF::SVFIR::addPhiStmt</a></div><div class="ttdeci">PhiStmt * addPhiStmt(NodeID res, NodeID opnd)</div><div class="ttdoc">Add phi node information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00087">SVFIR.cpp:87</a></div></div>
|
|
217
|
-
<div class="ttc" id="
|
|
217
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a996574dbe5d5d79b1dc24cf5dc4145de"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a996574dbe5d5d79b1dc24cf5dc4145de">SVF::SVFIR::addVariantGepStmt</a></div><div class="ttdeci">GepStmt * addVariantGepStmt(NodeID src, NodeID dst, const LocationSet &ls)</div><div class="ttdoc">Add Variant(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00347">SVFIR.cpp:347</a></div></div>
|
|
218
|
+
<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>
|
|
218
219
|
<div class="ttc" id="classSVF_1_1PAGBuilderFromFile_html_a79f00ac0ee4a67beec6e7ef45c504e4d"><div class="ttname"><a href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">SVF::PAGBuilderFromFile::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="PAGBuilderFromFile_8h_source.html#l00045">PAGBuilderFromFile.h:45</a></div></div>
|
|
219
220
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a722f32d0a0a3bafdd97fc74819d2621e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">SVF::IRGraph::addEdge</a></div><div class="ttdeci">bool addEdge(SVFVar *src, SVFVar *dst, SVFStmt *edge)</div><div class="ttdoc">Add an edge into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00044">IRGraph.cpp:44</a></div></div>
|
|
220
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a2a851ff7011e3bd71c36be5c7198a1f4"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2a851ff7011e3bd71c36be5c7198a1f4">SVF::SVFIR::addNormalGepStmt</a></div><div class="ttdeci">NormalGepStmt * addNormalGepStmt(NodeID src, NodeID dst, const LocationSet &ls)</div><div class="ttdoc">Add Offset(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00327">SVFIR.cpp:327</a></div></div>
|
|
221
221
|
<div class="ttc" id="classSVF_1_1SVFIR_html_af9804d78e4158d3c8961e1f84bbef91e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af9804d78e4158d3c8961e1f84bbef91e">SVF::SVFIR::addStoreStmt</a></div><div class="ttdeci">StoreStmt * addStoreStmt(NodeID src, NodeID dst, const IntraICFGNode *val)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00204">SVFIR.cpp:204</a></div></div>
|
|
222
|
-
<div class="ttc" id="
|
|
222
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a460011093c6426b98236c8381b1df0a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a460011093c6426b98236c8381b1df0a0">SVF::SVFIR::addNormalGepStmt</a></div><div class="ttdeci">GepStmt * addNormalGepStmt(NodeID src, NodeID dst, const LocationSet &ls)</div><div class="ttdoc">Add Offset(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00327">SVFIR.cpp:327</a></div></div>
|
|
223
223
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a7eb14738f0cf08cc8b5c623c953db4ba"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7eb14738f0cf08cc8b5c623c953db4ba">SVF::SVFIR::addCmpStmt</a></div><div class="ttdeci">CmpStmt * addCmpStmt(NodeID op1, NodeID op2, NodeID dst, u32_t predict)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00108">SVFIR.cpp:108</a></div></div>
|
|
224
224
|
<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>
|
|
225
225
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a3837804b2622baf7e6991aa993286e9e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3837804b2622baf7e6991aa993286e9e">SVF::SVFIR::addLoadStmt</a></div><div class="ttdeci">LoadStmt * addLoadStmt(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00185">SVFIR.cpp:185</a></div></div>
|
|
@@ -249,7 +249,7 @@ Private Attributes</h2></td></tr>
|
|
|
249
249
|
<p>new gep node's id from lower bound, nodeNum may not reflect the total nodes. </p>
|
|
250
250
|
|
|
251
251
|
<p class="definition">Definition at line <a class="el" href="PAGBuilderFromFile_8cpp_source.html#l00059">59</a> of file <a class="el" href="PAGBuilderFromFile_8cpp_source.html">PAGBuilderFromFile.cpp</a>.</p>
|
|
252
|
-
<div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">string</span> line;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  ifstream myfile(<a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a9ce304b448de65fbde586655dce885a4">file</a>.c_str());</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">if</span> (myfile.is_open())</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">while</span> (myfile.good())</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>  getline(myfile, line);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> token_count = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordtype">string</span> tmps;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  istringstream ss(line);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">while</span> (ss.good())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  ss >> tmps;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  token_count++;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (token_count == 0)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (token_count == 2)</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>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">string</span> nodetype;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  istringstream ss(line);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  ss >> nodeId;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  ss >> nodetype;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"reading node :"</span> << nodeId << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (nodetype == <span class="stringliteral">"v"</span>)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>(nodeId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (nodetype == <span class="stringliteral">"o"</span>)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a4ee79c74a7a2cea5c063fa598ab89532">addDummyMemObj</a>(nodeId, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a06465449e58e14bfb1c3eee2c97d3242">addFIObjNode</a>(mem);</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="keywordflow">else</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"format not support, pls specify node type"</span>);</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>  <span class="comment">// do consider gep edge</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (token_count == 4)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeSrc;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeDst;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> offsetOrCSId;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">string</span> edge;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  istringstream ss(line);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  ss >> nodeSrc;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  ss >> edge;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  ss >> nodeDst;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  ss >> offsetOrCSId;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"reading edge :"</span> << nodeSrc << <span class="stringliteral">" "</span> << edge << <span class="stringliteral">" "</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  << nodeDst << <span class="stringliteral">" offsetOrCSId="</span> << offsetOrCSId << <span class="stringliteral">" \n"</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#ac34cd4f9426da0325e67bc1b3d7bcecd">addEdge</a>(nodeSrc, nodeDst, offsetOrCSId, edge);</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>  <span class="keywordflow">else</span></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>  <span class="keywordflow">if</span> (!line.empty())</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="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"format not supported, token count = "</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  << token_count << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"format not supported"</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>  }</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>  myfile.close();</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> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"Unable to open file\n"</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lower_bound = <a class="code" href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40">gepNodeNumIndex</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < lower_bound; i++)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a7388dabef7300e77adf33f3999639f21">incNodeNum</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0">setNodeNumAfterPAGBuild</a>(<a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00418">SymbolTableInfo.h:418</a></div></div>
|
|
252
|
+
<div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">string</span> line;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  ifstream myfile(<a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a9ce304b448de65fbde586655dce885a4">file</a>.c_str());</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">if</span> (myfile.is_open())</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">while</span> (myfile.good())</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>  getline(myfile, line);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> token_count = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordtype">string</span> tmps;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  istringstream ss(line);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">while</span> (ss.good())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  ss >> tmps;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  token_count++;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (token_count == 0)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (token_count == 2)</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>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">string</span> nodetype;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  istringstream ss(line);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  ss >> nodeId;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  ss >> nodetype;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"reading node :"</span> << nodeId << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (nodetype == <span class="stringliteral">"v"</span>)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>(nodeId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (nodetype == <span class="stringliteral">"o"</span>)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a4ee79c74a7a2cea5c063fa598ab89532">addDummyMemObj</a>(nodeId, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a06465449e58e14bfb1c3eee2c97d3242">addFIObjNode</a>(mem);</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="keywordflow">else</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"format not support, pls specify node type"</span>);</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>  <span class="comment">// do consider gep edge</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (token_count == 4)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeSrc;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeDst;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> offsetOrCSId;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">string</span> edge;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  istringstream ss(line);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  ss >> nodeSrc;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  ss >> edge;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  ss >> nodeDst;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  ss >> offsetOrCSId;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"reading edge :"</span> << nodeSrc << <span class="stringliteral">" "</span> << edge << <span class="stringliteral">" "</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  << nodeDst << <span class="stringliteral">" offsetOrCSId="</span> << offsetOrCSId << <span class="stringliteral">" \n"</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#ac34cd4f9426da0325e67bc1b3d7bcecd">addEdge</a>(nodeSrc, nodeDst, offsetOrCSId, edge);</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>  <span class="keywordflow">else</span></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>  <span class="keywordflow">if</span> (!line.empty())</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="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"format not supported, token count = "</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  << token_count << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"format not supported"</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>  }</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>  myfile.close();</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> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <span class="stringliteral">"Unable to open file\n"</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lower_bound = <a class="code" href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40">gepNodeNumIndex</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < lower_bound; i++)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a7388dabef7300e77adf33f3999639f21">incNodeNum</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0">setNodeNumAfterPAGBuild</a>(<a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAGBuilderFromFile.html#a79f00ac0ee4a67beec6e7ef45c504e4d">pag</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00422">SymbolTableInfo.h:422</a></div></div>
|
|
253
253
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa7e98cd2fd599aedefa4c2e6fb659da0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">SVF::SVFIR::addDummyValNode</a></div><div class="ttdeci">NodeID addDummyValNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00461">SVFIR.h:461</a></div></div>
|
|
254
254
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a8c8d16036008f87c7811586047599858"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">SVF::GenericGraph::getTotalNodeNum</a></div><div class="ttdeci">u32_t getTotalNodeNum() const</div><div class="ttdoc">Get total number of node/edge. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00414">GenericGraph.h:414</a></div></div>
|
|
255
255
|
<div class="ttc" id="PAGBuilderFromFile_8cpp_html_a1af3947dbaf1ad4364bc4818f70ead40"><div class="ttname"><a href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40">gepNodeNumIndex</a></div><div class="ttdeci">static u32_t gepNodeNumIndex</div><div class="ttdef"><b>Definition:</b> <a href="PAGBuilderFromFile_8cpp_source.html#l00038">PAGBuilderFromFile.cpp:38</a></div></div>
|
|
@@ -551,8 +551,8 @@ Protected Attributes</h2></td></tr>
|
|
|
551
551
|
|
|
552
552
|
<p>Reimplemented from <a class="el" href="classSVF_1_1VFGNode.html#a5ac80149696c243f77e4b4d25ad44898">SVF::VFGNode</a>.</p>
|
|
553
553
|
|
|
554
|
-
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#
|
|
555
|
-
<div class="fragment"><div class="line"><a name="
|
|
554
|
+
<p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00925">925</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
|
|
555
|
+
<div class="fragment"><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  {</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PHIVFGNode.html#abd54e567a0826bbec277302e0c4f78a2">getRes</a>()-><a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>();</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span> }</div><div class="ttc" id="classSVF_1_1PHIVFGNode_html_abd54e567a0826bbec277302e0c4f78a2"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html#abd54e567a0826bbec277302e0c4f78a2">SVF::PHIVFGNode::getRes</a></div><div class="ttdeci">const PAGNode * getRes() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00655">VFGNode.h:655</a></div></div>
|
|
556
556
|
<div class="ttc" id="classSVF_1_1SVFVar_html_afaa33caa8d2a306f6741d9d066243e40"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">SVF::SVFVar::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00097">SVFVariables.h:97</a></div></div>
|
|
557
557
|
</div><!-- fragment -->
|
|
558
558
|
</div>
|