svf-tools 1.0.342 → 1.0.346
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/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +15 -15
- package/SVF-doxygen/html/html/ICFGNode_8h.html +7 -7
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +69 -69
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +45 -44
- package/SVF-doxygen/html/html/ICFG_8h_source.html +34 -34
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +26 -26
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +18 -18
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +12 -12
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +41 -41
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +47 -46
- package/SVF-doxygen/html/html/Options_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -17
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +17 -17
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +31 -31
- package/SVF-doxygen/html/html/SVFG_8h_source.html +27 -27
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +31 -31
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +14 -14
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +20 -20
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/VFG_8h_source.html +19 -19
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/annotated.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +158 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +852 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallMU-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +60 -60
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +52 -52
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +45 -45
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +150 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +618 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +149 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +624 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +413 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +191 -184
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +69 -66
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +399 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +146 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +494 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +61 -61
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MHP-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +196 -196
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator-members.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +43 -39
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +90 -90
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +118 -118
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +107 -107
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +153 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +696 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +159 -159
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +76 -76
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +132 -132
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +58 -58
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +220 -220
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +96 -96
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/html/classes.html +16 -16
- package/SVF-doxygen/html/html/functions_a.html +59 -59
- package/SVF-doxygen/html/html/functions_c.html +65 -67
- package/SVF-doxygen/html/html/functions_eval_r.html +3 -0
- package/SVF-doxygen/html/html/functions_f.html +14 -14
- package/SVF-doxygen/html/html/functions_func.html +56 -56
- package/SVF-doxygen/html/html/functions_func_c.html +28 -28
- package/SVF-doxygen/html/html/functions_func_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func_g.html +86 -86
- package/SVF-doxygen/html/html/functions_func_h.html +17 -17
- package/SVF-doxygen/html/html/functions_func_i.html +12 -12
- package/SVF-doxygen/html/html/functions_func_m.html +1 -1
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_r.html +6 -6
- package/SVF-doxygen/html/html/functions_func_s.html +2 -2
- package/SVF-doxygen/html/html/functions_func_t.html +7 -7
- package/SVF-doxygen/html/html/functions_func_u.html +3 -3
- package/SVF-doxygen/html/html/functions_g.html +88 -88
- package/SVF-doxygen/html/html/functions_h.html +16 -16
- package/SVF-doxygen/html/html/functions_i.html +22 -22
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_m.html +2 -2
- package/SVF-doxygen/html/html/functions_o.html +13 -13
- package/SVF-doxygen/html/html/functions_p.html +14 -14
- package/SVF-doxygen/html/html/functions_r.html +13 -12
- package/SVF-doxygen/html/html/functions_s.html +13 -13
- package/SVF-doxygen/html/html/functions_t.html +12 -14
- package/SVF-doxygen/html/html/functions_type.html +1 -1
- package/SVF-doxygen/html/html/functions_type_c.html +24 -24
- package/SVF-doxygen/html/html/functions_type_f.html +3 -3
- package/SVF-doxygen/html/html/functions_type_i.html +2 -2
- package/SVF-doxygen/html/html/functions_type_p.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_type_v.html +2 -2
- package/SVF-doxygen/html/html/functions_u.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +8 -8
- package/SVF-doxygen/html/html/functions_vars_a.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_c.html +11 -11
- package/SVF-doxygen/html/html/functions_vars_f.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
- package/SVF-doxygen/html/html/functions_w.html +9 -5
- package/SVF-doxygen/html/html/hierarchy.html +7 -7
- package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
- package/SVF-doxygen/html/html/search/all_1.js +58 -58
- package/SVF-doxygen/html/html/search/all_10.js +8 -8
- package/SVF-doxygen/html/html/search/all_12.js +8 -7
- package/SVF-doxygen/html/html/search/all_13.js +11 -11
- package/SVF-doxygen/html/html/search/all_14.js +8 -8
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +4 -4
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +35 -34
- package/SVF-doxygen/html/html/search/all_6.js +12 -12
- package/SVF-doxygen/html/html/search/all_7.js +62 -61
- package/SVF-doxygen/html/html/search/all_8.js +17 -17
- package/SVF-doxygen/html/html/search/all_9.js +16 -16
- package/SVF-doxygen/html/html/search/all_c.js +2 -2
- package/SVF-doxygen/html/html/search/all_d.js +5 -5
- package/SVF-doxygen/html/html/search/all_e.js +3 -3
- package/SVF-doxygen/html/html/search/all_f.js +3 -3
- package/SVF-doxygen/html/html/search/classes_2.js +1 -1
- package/SVF-doxygen/html/html/search/classes_5.js +2 -2
- package/SVF-doxygen/html/html/search/classes_6.js +1 -1
- package/SVF-doxygen/html/html/search/classes_8.js +2 -2
- package/SVF-doxygen/html/html/search/classes_e.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_e.js +2 -1
- package/SVF-doxygen/html/html/search/functions_0.js +55 -55
- package/SVF-doxygen/html/html/search/functions_10.js +3 -3
- package/SVF-doxygen/html/html/search/functions_11.js +4 -4
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_2.js +10 -10
- package/SVF-doxygen/html/html/search/functions_5.js +4 -4
- package/SVF-doxygen/html/html/search/functions_6.js +61 -61
- package/SVF-doxygen/html/html/search/functions_7.js +17 -17
- package/SVF-doxygen/html/html/search/functions_8.js +12 -12
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_f.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_0.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +21 -21
- package/SVF-doxygen/html/html/search/typedefs_5.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1.js +2 -2
- package/SVF-doxygen/html/html/search/variables_12.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +4 -4
- package/SVF-doxygen/html/html/search/variables_6.js +5 -5
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +22 -22
- package/include/DDA/ContextDDA.h +3 -3
- package/include/DDA/DDAClient.h +2 -2
- package/include/DDA/DDAVFSolver.h +2 -2
- package/include/DDA/FlowDDA.h +2 -2
- package/include/Graphs/ICFG.h +33 -33
- package/include/Graphs/ICFGNode.h +33 -33
- package/include/Graphs/ICFGStat.h +11 -11
- package/include/Graphs/PTACallGraph.h +19 -19
- package/include/Graphs/SVFG.h +16 -16
- package/include/Graphs/SVFGNode.h +14 -14
- package/include/Graphs/SVFGOPT.h +1 -1
- package/include/Graphs/ThreadCallGraph.h +25 -25
- package/include/Graphs/VFG.h +10 -10
- package/include/Graphs/VFGNode.h +8 -8
- package/include/MSSA/MSSAMuChi.h +6 -6
- package/include/MSSA/MemRegion.h +24 -24
- package/include/MSSA/MemSSA.h +10 -10
- package/include/MTA/LockResultValidator.h +2 -2
- package/include/MTA/MHP.h +4 -4
- package/include/MTA/PCG.h +1 -1
- package/include/MTA/TCT.h +2 -2
- package/include/MemoryModel/PointerAnalysis.h +12 -12
- package/include/MemoryModel/SVFIR.h +21 -21
- package/include/MemoryModel/SVFStatements.h +11 -11
- package/include/SABER/LeakChecker.h +4 -4
- package/include/SABER/ProgSlice.h +2 -2
- package/include/SABER/SaberCheckerAPI.h +4 -4
- package/include/SABER/SaberSVFGBuilder.h +1 -1
- package/include/SABER/SrcSnkDDA.h +1 -1
- package/include/SVF-FE/ICFGBuilder.h +4 -4
- package/include/SVF-FE/SVFIRBuilder.h +5 -5
- package/include/Util/NodeIDAllocator.h +3 -0
- package/lib/DDA/ContextDDA.cpp +3 -3
- package/lib/DDA/DDAClient.cpp +1 -1
- package/lib/DDA/FlowDDA.cpp +1 -1
- package/lib/Graphs/ICFG.cpp +55 -50
- package/lib/Graphs/PTACallGraph.cpp +5 -5
- package/lib/Graphs/SVFG.cpp +7 -7
- package/lib/Graphs/ThreadCallGraph.cpp +6 -6
- package/lib/Graphs/VFG.cpp +6 -6
- package/lib/MSSA/MemRegion.cpp +17 -17
- package/lib/MSSA/MemSSA.cpp +3 -3
- package/lib/MTA/LockAnalysis.cpp +4 -4
- package/lib/MTA/MHP.cpp +5 -5
- package/lib/MTA/MTAResultValidator.cpp +1 -1
- package/lib/MTA/PCG.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +10 -10
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
- package/lib/MemoryModel/SVFIR.cpp +5 -5
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/FileChecker.cpp +2 -2
- package/lib/SABER/LeakChecker.cpp +8 -8
- package/lib/SABER/ProgSlice.cpp +2 -2
- package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
- package/lib/SVF-FE/Graph2Json.cpp +5 -5
- package/lib/SVF-FE/ICFGBuilder.cpp +31 -25
- package/lib/SVF-FE/SVFIRBuilder.cpp +8 -8
- package/lib/Util/NodeIDAllocator.cpp +12 -0
- package/lib/Util/Options.cpp +2 -1
- package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
- package/lib/WPA/Andersen.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +2 -2
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
- package/lib/WPA/WPAPass.cpp +4 -4
- package/package.json +1 -1
|
@@ -103,10 +103,10 @@ Public Types</h2></td></tr>
|
|
|
103
103
|
<tr class="separator:a8859409373454b6b3d1252776e169cf5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
104
104
|
<tr class="memitem:acb7262c3b9161c77eb1b491048152fb0"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0">FormalOUTSVFGNodeSet</a></td></tr>
|
|
105
105
|
<tr class="separator:acb7262c3b9161c77eb1b491048152fb0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
106
|
-
<tr class="memitem:
|
|
107
|
-
<tr class="separator:
|
|
108
|
-
<tr class="memitem:
|
|
109
|
-
<tr class="separator:
|
|
106
|
+
<tr class="memitem:a727af89a305e48f399ad33cc7149dbcb"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">ActualINSVFGNodeSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a727af89a305e48f399ad33cc7149dbcb">CallSiteToActualINsMapTy</a></td></tr>
|
|
107
|
+
<tr class="separator:a727af89a305e48f399ad33cc7149dbcb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
108
|
+
<tr class="memitem:a7c4e9c0fad457a2dc81a85f96fcec9ec"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">ActualOUTSVFGNodeSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a7c4e9c0fad457a2dc81a85f96fcec9ec">CallSiteToActualOUTsMapTy</a></td></tr>
|
|
109
|
+
<tr class="separator:a7c4e9c0fad457a2dc81a85f96fcec9ec"><td class="memSeparator" colspan="2"> </td></tr>
|
|
110
110
|
<tr class="memitem:a2b4850c833564916c7fce46d55672038"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *, <a class="el" href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5">FormalINSVFGNodeSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a2b4850c833564916c7fce46d55672038">FunctionToFormalINsMapTy</a></td></tr>
|
|
111
111
|
<tr class="separator:a2b4850c833564916c7fce46d55672038"><td class="memSeparator" colspan="2"> </td></tr>
|
|
112
112
|
<tr class="memitem:ac4c65501e9beba5495a57dd469f78e5b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *, <a class="el" href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0">FormalOUTSVFGNodeSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ac4c65501e9beba5495a57dd469f78e5b">FunctionToFormalOUTsMapTy</a></td></tr>
|
|
@@ -147,8 +147,8 @@ Public Types</h2></td></tr>
|
|
|
147
147
|
<tr class="separator:a03d388eec513f713f5e0d06f920168db inherit pub_types_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
148
148
|
<tr class="memitem:ab9381c54f2339b3738348ae8b0d6659f inherit pub_types_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#ab9381c54f2339b3738348ae8b0d6659f">PAGNodeToDefMapTy</a></td></tr>
|
|
149
149
|
<tr class="separator:ab9381c54f2339b3738348ae8b0d6659f inherit pub_types_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
150
|
-
<tr class="memitem:
|
|
151
|
-
<tr class="separator:
|
|
150
|
+
<tr class="memitem:a6d0a91e8c2cd18d846870c7e062a1bb4 inherit pub_types_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< std::pair< <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * >, <a class="el" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a6d0a91e8c2cd18d846870c7e062a1bb4">PAGNodeToActualParmMapTy</a></td></tr>
|
|
151
|
+
<tr class="separator:a6d0a91e8c2cd18d846870c7e062a1bb4 inherit pub_types_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
152
152
|
<tr class="memitem:a999654aa377639db5c1e40f603e655a7 inherit pub_types_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *, <a class="el" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a999654aa377639db5c1e40f603e655a7">PAGNodeToActualRetMapTy</a></td></tr>
|
|
153
153
|
<tr class="separator:a999654aa377639db5c1e40f603e655a7 inherit pub_types_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
154
154
|
<tr class="memitem:a6eb72d2fe080def018d09604fe3affcf inherit pub_types_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *, <a class="el" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a6eb72d2fe080def018d09604fe3affcf">PAGNodeToFormalParmMapTy</a></td></tr>
|
|
@@ -226,15 +226,15 @@ Public Member Functions</h2></td></tr>
|
|
|
226
226
|
<tr class="memitem:a1b9d1ad76785ae0eb07979aa75325640"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a1b9d1ad76785ae0eb07979aa75325640">hasSVFGNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id) const</td></tr>
|
|
227
227
|
<tr class="memdesc:a1b9d1ad76785ae0eb07979aa75325640"><td class="mdescLeft"> </td><td class="mdescRight">Whether has the SVFGNode. <a href="#a1b9d1ad76785ae0eb07979aa75325640">More...</a><br /></td></tr>
|
|
228
228
|
<tr class="separator:a1b9d1ad76785ae0eb07979aa75325640"><td class="memSeparator" colspan="2"> </td></tr>
|
|
229
|
-
<tr class="memitem:
|
|
230
|
-
<tr class="memdesc:
|
|
231
|
-
<tr class="separator:
|
|
229
|
+
<tr class="memitem:a49fc2c505720d5cfa57231529d1c7534"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a49fc2c505720d5cfa57231529d1c7534">getInterVFEdgesForIndirectCallSite</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &edges)</td></tr>
|
|
230
|
+
<tr class="memdesc:a49fc2c505720d5cfa57231529d1c7534"><td class="mdescLeft"> </td><td class="mdescRight">Get all inter value flow edges of a indirect call site. <a href="#a49fc2c505720d5cfa57231529d1c7534">More...</a><br /></td></tr>
|
|
231
|
+
<tr class="separator:a49fc2c505720d5cfa57231529d1c7534"><td class="memSeparator" colspan="2"> </td></tr>
|
|
232
232
|
<tr class="memitem:a5fdaddc52e7342b834d76d64c1a1e498"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a> (const std::string &file, bool simple=false)</td></tr>
|
|
233
233
|
<tr class="memdesc:a5fdaddc52e7342b834d76d64c1a1e498"><td class="mdescLeft"> </td><td class="mdescRight">Dump graph into dot file. <a href="#a5fdaddc52e7342b834d76d64c1a1e498">More...</a><br /></td></tr>
|
|
234
234
|
<tr class="separator:a5fdaddc52e7342b834d76d64c1a1e498"><td class="memSeparator" colspan="2"> </td></tr>
|
|
235
|
-
<tr class="memitem:
|
|
236
|
-
<tr class="memdesc:
|
|
237
|
-
<tr class="separator:
|
|
235
|
+
<tr class="memitem:aefca97f043b3e220ef6012a049b83fdf"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">connectCallerAndCallee</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &edges)</td></tr>
|
|
236
|
+
<tr class="memdesc:aefca97f043b3e220ef6012a049b83fdf"><td class="mdescLeft"> </td><td class="mdescRight">Connect <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> nodes between caller and callee for indirect call site. <a href="#aefca97f043b3e220ef6012a049b83fdf">More...</a><br /></td></tr>
|
|
237
|
+
<tr class="separator:aefca97f043b3e220ef6012a049b83fdf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
238
238
|
<tr class="memitem:a8e7a945f4266e8dc7dcfff2ad6494bfb"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *pagNode) const</td></tr>
|
|
239
239
|
<tr class="memdesc:a8e7a945f4266e8dc7dcfff2ad6494bfb"><td class="mdescLeft"> </td><td class="mdescRight">Given a pagNode, return its definition site. <a href="#a8e7a945f4266e8dc7dcfff2ad6494bfb">More...</a><br /></td></tr>
|
|
240
240
|
<tr class="separator:a8e7a945f4266e8dc7dcfff2ad6494bfb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -246,9 +246,9 @@ Public Member Functions</h2></td></tr>
|
|
|
246
246
|
<tr class="memitem:ae2cff3c963136f474fac0a66aa8cff7b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ae2cff3c963136f474fac0a66aa8cff7b">isFunEntrySVFGNode</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *node) const</td></tr>
|
|
247
247
|
<tr class="memdesc:ae2cff3c963136f474fac0a66aa8cff7b"><td class="mdescLeft"> </td><td class="mdescRight">Whether a node is function entry SVFGNode. <a href="#ae2cff3c963136f474fac0a66aa8cff7b">More...</a><br /></td></tr>
|
|
248
248
|
<tr class="separator:ae2cff3c963136f474fac0a66aa8cff7b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
249
|
-
<tr class="memitem:
|
|
250
|
-
<tr class="memdesc:
|
|
251
|
-
<tr class="separator:
|
|
249
|
+
<tr class="memitem:ad189e45b0c810e68566ccc3bdb3f2e59"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ad189e45b0c810e68566ccc3bdb3f2e59">isCallSiteRetSVFGNode</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *node) const</td></tr>
|
|
250
|
+
<tr class="memdesc:ad189e45b0c810e68566ccc3bdb3f2e59"><td class="mdescLeft"> </td><td class="mdescRight">Whether a node is callsite return SVFGNode. <a href="#ad189e45b0c810e68566ccc3bdb3f2e59">More...</a><br /></td></tr>
|
|
251
|
+
<tr class="separator:ad189e45b0c810e68566ccc3bdb3f2e59"><td class="memSeparator" colspan="2"> </td></tr>
|
|
252
252
|
<tr class="memitem:a931d8b82e10a54d68c68cf6bd80264be"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a> (<a class="el" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a> *edge)</td></tr>
|
|
253
253
|
<tr class="memdesc:a931d8b82e10a54d68c68cf6bd80264be"><td class="mdescLeft"> </td><td class="mdescRight">Remove a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> edge. <a href="#a931d8b82e10a54d68c68cf6bd80264be">More...</a><br /></td></tr>
|
|
254
254
|
<tr class="separator:a931d8b82e10a54d68c68cf6bd80264be"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -264,21 +264,21 @@ Public Member Functions</h2></td></tr>
|
|
|
264
264
|
<tr class="memitem:a8dd513e8e5343beeb5d117c1ff4e45ea"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1DummyVersionPropSVFGNode.html">DummyVersionPropSVFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a8dd513e8e5343beeb5d117c1ff4e45ea">addDummyVersionPropSVFGNode</a> (const <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> object, const <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> version)</td></tr>
|
|
265
265
|
<tr class="separator:a8dd513e8e5343beeb5d117c1ff4e45ea"><td class="memSeparator" colspan="2"> </td></tr>
|
|
266
266
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
267
|
-
<tr class="memitem:
|
|
268
|
-
<tr class="memdesc:
|
|
269
|
-
<tr class="separator:
|
|
270
|
-
<tr class="memitem:
|
|
271
|
-
<tr class="separator:
|
|
267
|
+
<tr class="memitem:a21577bc4b4e55b23aa55083f5321b399"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a21577bc4b4e55b23aa55083f5321b399">hasActualINSVFGNodes</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
268
|
+
<tr class="memdesc:a21577bc4b4e55b23aa55083f5321b399"><td class="mdescLeft"> </td><td class="mdescRight">Has a SVFGNode. <a href="#a21577bc4b4e55b23aa55083f5321b399">More...</a><br /></td></tr>
|
|
269
|
+
<tr class="separator:a21577bc4b4e55b23aa55083f5321b399"><td class="memSeparator" colspan="2"> </td></tr>
|
|
270
|
+
<tr class="memitem:ab1fde654cc464c5b4d1bafff83d346ed"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ab1fde654cc464c5b4d1bafff83d346ed">hasActualOUTSVFGNodes</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
271
|
+
<tr class="separator:ab1fde654cc464c5b4d1bafff83d346ed"><td class="memSeparator" colspan="2"> </td></tr>
|
|
272
272
|
<tr class="memitem:a65f28035e0fa5bebf76d28612b2f8ba8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a65f28035e0fa5bebf76d28612b2f8ba8">hasFormalINSVFGNodes</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun) const</td></tr>
|
|
273
273
|
<tr class="separator:a65f28035e0fa5bebf76d28612b2f8ba8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
274
274
|
<tr class="memitem:a1f8c60ad57bf473e0186b794d666b5c2"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a1f8c60ad57bf473e0186b794d666b5c2">hasFormalOUTSVFGNodes</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun) const</td></tr>
|
|
275
275
|
<tr class="separator:a1f8c60ad57bf473e0186b794d666b5c2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
276
276
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
277
|
-
<tr class="memitem:
|
|
278
|
-
<tr class="memdesc:
|
|
279
|
-
<tr class="separator:
|
|
280
|
-
<tr class="memitem:
|
|
281
|
-
<tr class="separator:
|
|
277
|
+
<tr class="memitem:a475205e221890204c7770c414ee63975"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">ActualINSVFGNodeSet</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">getActualINSVFGNodes</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
278
|
+
<tr class="memdesc:a475205e221890204c7770c414ee63975"><td class="mdescLeft"> </td><td class="mdescRight">Get SVFGNode set. <a href="#a475205e221890204c7770c414ee63975">More...</a><br /></td></tr>
|
|
279
|
+
<tr class="separator:a475205e221890204c7770c414ee63975"><td class="memSeparator" colspan="2"> </td></tr>
|
|
280
|
+
<tr class="memitem:a5b7ae610bee28acc2905ca82928e714f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">ActualOUTSVFGNodeSet</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">getActualOUTSVFGNodes</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
281
|
+
<tr class="separator:a5b7ae610bee28acc2905ca82928e714f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
282
282
|
<tr class="memitem:a9d0714075d6071c26d26cf16c4dec7c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5">FormalINSVFGNodeSet</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5">getFormalINSVFGNodes</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
|
|
283
283
|
<tr class="separator:a9d0714075d6071c26d26cf16c4dec7c5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
284
284
|
<tr class="memitem:a287c337697eed7d92889bca0a0e370d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0">FormalOUTSVFGNodeSet</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7">getFormalOUTSVFGNodes</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
|
|
@@ -343,11 +343,11 @@ Public Member Functions</h2></td></tr>
|
|
|
343
343
|
<tr class="memitem:a84cf5facb15e1d598c2527fba0c7634d inherit pub_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a84cf5facb15e1d598c2527fba0c7634d">addVFGEdge</a> (<a class="el" href="classSVF_1_1VFGEdge.html">VFGEdge</a> *edge)</td></tr>
|
|
344
344
|
<tr class="memdesc:a84cf5facb15e1d598c2527fba0c7634d inherit pub_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Add <a class="el" href="classSVF_1_1VFG.html">VFG</a> edge. <a href="classSVF_1_1VFG.html#a84cf5facb15e1d598c2527fba0c7634d">More...</a><br /></td></tr>
|
|
345
345
|
<tr class="separator:a84cf5facb15e1d598c2527fba0c7634d inherit pub_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
346
|
-
<tr class="memitem:
|
|
347
|
-
<tr class="memdesc:
|
|
348
|
-
<tr class="separator:
|
|
349
|
-
<tr class="memitem:
|
|
350
|
-
<tr class="separator:
|
|
346
|
+
<tr class="memitem:a5f82b3c2e8e6412e2781b960ffa98387 inherit pub_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a5f82b3c2e8e6412e2781b960ffa98387">getCallSiteID</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *func) const</td></tr>
|
|
347
|
+
<tr class="memdesc:a5f82b3c2e8e6412e2781b960ffa98387 inherit pub_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Get callsite given a callsiteID. <a href="classSVF_1_1VFG.html#a5f82b3c2e8e6412e2781b960ffa98387">More...</a><br /></td></tr>
|
|
348
|
+
<tr class="separator:a5f82b3c2e8e6412e2781b960ffa98387 inherit pub_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
349
|
+
<tr class="memitem:a246cce511b8e9164a7c1760d1983f492 inherit pub_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a246cce511b8e9164a7c1760d1983f492">getCallSite</a> (<a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> id) const</td></tr>
|
|
350
|
+
<tr class="separator:a246cce511b8e9164a7c1760d1983f492 inherit pub_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
351
351
|
<tr class="memitem:a32b1586d326fbe47080bd1fa2d3270e6 inherit pub_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a32b1586d326fbe47080bd1fa2d3270e6">getStmtVFGNode</a> (const <a class="el" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152">PAGEdge</a> *pagEdge) const</td></tr>
|
|
352
352
|
<tr class="memdesc:a32b1586d326fbe47080bd1fa2d3270e6 inherit pub_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Get an <a class="el" href="classSVF_1_1VFGNode.html">VFGNode</a>. <a href="classSVF_1_1VFG.html#a32b1586d326fbe47080bd1fa2d3270e6">More...</a><br /></td></tr>
|
|
353
353
|
<tr class="separator:a32b1586d326fbe47080bd1fa2d3270e6 inherit pub_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -361,8 +361,8 @@ Public Member Functions</h2></td></tr>
|
|
|
361
361
|
<tr class="separator:a47609382fcd9ef36706e1d0f0531a843 inherit pub_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
362
362
|
<tr class="memitem:a9215c1d7f1152967f0731057a085e793 inherit pub_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a9215c1d7f1152967f0731057a085e793">getCmpVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *pagNode) const</td></tr>
|
|
363
363
|
<tr class="separator:a9215c1d7f1152967f0731057a085e793 inherit pub_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
364
|
-
<tr class="memitem:
|
|
365
|
-
<tr class="separator:
|
|
364
|
+
<tr class="memitem:a6bbfe457dcc7104e6928323499ea964e inherit pub_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a6bbfe457dcc7104e6928323499ea964e">getActualParmVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *aparm, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
365
|
+
<tr class="separator:a6bbfe457dcc7104e6928323499ea964e inherit pub_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
366
366
|
<tr class="memitem:a0b072e8e45899b89da0a466140563c38 inherit pub_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a0b072e8e45899b89da0a466140563c38">getActualRetVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *aret) const</td></tr>
|
|
367
367
|
<tr class="separator:a0b072e8e45899b89da0a466140563c38 inherit pub_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
368
368
|
<tr class="memitem:a75eb519e4f89a116db98fccb263af4d6 inherit pub_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a75eb519e4f89a116db98fccb263af4d6">getFormalParmVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *fparm) const</td></tr>
|
|
@@ -463,18 +463,18 @@ Protected Member Functions</h2></td></tr>
|
|
|
463
463
|
<tr class="memitem:a88e1f6f77421c5274ceeb14928bdcb43"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a> (<a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *node, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *icfgNode)</td></tr>
|
|
464
464
|
<tr class="memdesc:a88e1f6f77421c5274ceeb14928bdcb43"><td class="mdescLeft"> </td><td class="mdescRight">Add <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. <a href="#a88e1f6f77421c5274ceeb14928bdcb43">More...</a><br /></td></tr>
|
|
465
465
|
<tr class="separator:a88e1f6f77421c5274ceeb14928bdcb43"><td class="memSeparator" colspan="2"> </td></tr>
|
|
466
|
-
<tr class="memitem:
|
|
467
|
-
<tr class="memdesc:
|
|
468
|
-
<tr class="separator:
|
|
469
|
-
<tr class="memitem:
|
|
470
|
-
<tr class="memdesc:
|
|
471
|
-
<tr class="separator:
|
|
472
|
-
<tr class="memitem:
|
|
473
|
-
<tr class="memdesc:
|
|
474
|
-
<tr class="separator:
|
|
475
|
-
<tr class="memitem:
|
|
476
|
-
<tr class="memdesc:
|
|
477
|
-
<tr class="separator:
|
|
466
|
+
<tr class="memitem:ab4690114393820f580e805d2e0d6a41d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ab4690114393820f580e805d2e0d6a41d">addFormalINSVFGNode</a> (const <a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *funEntry, const <a class="el" href="classSVF_1_1MRVer.html">MRVer</a> *resVer, const <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</td></tr>
|
|
467
|
+
<tr class="memdesc:ab4690114393820f580e805d2e0d6a41d"><td class="mdescLeft"> </td><td class="mdescRight">Add memory Function entry chi <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. <a href="#ab4690114393820f580e805d2e0d6a41d">More...</a><br /></td></tr>
|
|
468
|
+
<tr class="separator:ab4690114393820f580e805d2e0d6a41d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
469
|
+
<tr class="memitem:a804824faa3a042cb1b63edd9e9eb7207"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207">addFormalOUTSVFGNode</a> (const <a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> *funExit, const <a class="el" href="classSVF_1_1MRVer.html">MRVer</a> *ver, const <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</td></tr>
|
|
470
|
+
<tr class="memdesc:a804824faa3a042cb1b63edd9e9eb7207"><td class="mdescLeft"> </td><td class="mdescRight">Add memory Function return mu <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. <a href="#a804824faa3a042cb1b63edd9e9eb7207">More...</a><br /></td></tr>
|
|
471
|
+
<tr class="separator:a804824faa3a042cb1b63edd9e9eb7207"><td class="memSeparator" colspan="2"> </td></tr>
|
|
472
|
+
<tr class="memitem:a923924d3887c668b355f4029502a3754"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a923924d3887c668b355f4029502a3754">addActualINSVFGNode</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *callsite, const <a class="el" href="classSVF_1_1MRVer.html">MRVer</a> *ver, const <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</td></tr>
|
|
473
|
+
<tr class="memdesc:a923924d3887c668b355f4029502a3754"><td class="mdescLeft"> </td><td class="mdescRight">Add memory callsite mu <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. <a href="#a923924d3887c668b355f4029502a3754">More...</a><br /></td></tr>
|
|
474
|
+
<tr class="separator:a923924d3887c668b355f4029502a3754"><td class="memSeparator" colspan="2"> </td></tr>
|
|
475
|
+
<tr class="memitem:a74aa824a68f99756ac3e65231c7bc2e9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9">addActualOUTSVFGNode</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *callsite, const <a class="el" href="classSVF_1_1MRVer.html">MRVer</a> *resVer, const <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</td></tr>
|
|
476
|
+
<tr class="memdesc:a74aa824a68f99756ac3e65231c7bc2e9"><td class="mdescLeft"> </td><td class="mdescRight">Add memory callsite chi <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. <a href="#a74aa824a68f99756ac3e65231c7bc2e9">More...</a><br /></td></tr>
|
|
477
|
+
<tr class="separator:a74aa824a68f99756ac3e65231c7bc2e9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
478
478
|
<tr class="memitem:a0554abe7c072b66ab24a900284646572"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572">addIntraMSSAPHISVFGNode</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *BlockICFGNode, const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, const <a class="el" href="classSVF_1_1MRVer.html">MRVer</a> *>::<a class="el" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">const_iterator</a> opVerBegin, const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, const <a class="el" href="classSVF_1_1MRVer.html">MRVer</a> *>::<a class="el" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">const_iterator</a> opVerEnd, const <a class="el" href="classSVF_1_1MRVer.html">MRVer</a> *resVer, const <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</td></tr>
|
|
479
479
|
<tr class="memdesc:a0554abe7c072b66ab24a900284646572"><td class="mdescLeft"> </td><td class="mdescRight">Add memory SSA PHI <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. <a href="#a0554abe7c072b66ab24a900284646572">More...</a><br /></td></tr>
|
|
480
480
|
<tr class="separator:a0554abe7c072b66ab24a900284646572"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -496,9 +496,9 @@ Protected Member Functions</h2></td></tr>
|
|
|
496
496
|
<tr class="memdesc:a402dfe93b8692be453c4f76d048b690a"><td class="mdescLeft"> </td><td class="mdescRight">Connect formal-out and actual-out. <a href="#a402dfe93b8692be453c4f76d048b690a">More...</a><br /></td></tr>
|
|
497
497
|
<tr class="separator:a402dfe93b8692be453c4f76d048b690a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
498
498
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
499
|
-
<tr class="memitem:
|
|
500
|
-
<tr class="memdesc:
|
|
501
|
-
<tr class="separator:
|
|
499
|
+
<tr class="memitem:ac1acdf7bc468d7734359591e45f485fe"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">getInterVFEdgeAtIndCSFromAPToFP</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *cs_arg, const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *fun_arg, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &edges)</td></tr>
|
|
500
|
+
<tr class="memdesc:ac1acdf7bc468d7734359591e45f485fe"><td class="mdescLeft"> </td><td class="mdescRight">Get inter value flow edges between indirect call site and callee. <a href="#ac1acdf7bc468d7734359591e45f485fe">More...</a><br /></td></tr>
|
|
501
|
+
<tr class="separator:ac1acdf7bc468d7734359591e45f485fe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
502
502
|
<tr class="memitem:ab2b969b7d5922427622dd875e6b8fe14"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">getInterVFEdgeAtIndCSFromFRToAR</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *fun_ret, const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *cs_ret, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &edges)</td></tr>
|
|
503
503
|
<tr class="separator:ab2b969b7d5922427622dd875e6b8fe14"><td class="memSeparator" colspan="2"> </td></tr>
|
|
504
504
|
<tr class="memitem:afbaf925e1e165f75161999229fa5f782"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782">getInterVFEdgeAtIndCSFromAInToFIn</a> (<a class="el" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a> *actualIn, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &edges)</td></tr>
|
|
@@ -525,10 +525,10 @@ Protected Member Functions</h2></td></tr>
|
|
|
525
525
|
<tr class="separator:a23ca21b90feca5e7d00c9ba9f489374a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
526
526
|
<tr class="memitem:a32378226c18a0b1e22271a2338a635f6"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">hasFuncRetMu</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *func) const</td></tr>
|
|
527
527
|
<tr class="separator:a32378226c18a0b1e22271a2338a635f6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
528
|
-
<tr class="memitem:
|
|
529
|
-
<tr class="separator:
|
|
530
|
-
<tr class="memitem:
|
|
531
|
-
<tr class="separator:
|
|
528
|
+
<tr class="memitem:ad9cc1581261182b56ae232d9a9b13296"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296">hasCallSiteChi</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
529
|
+
<tr class="separator:ad9cc1581261182b56ae232d9a9b13296"><td class="memSeparator" colspan="2"> </td></tr>
|
|
530
|
+
<tr class="memitem:a842f6f2325c9e93ea96367e9cf624ee8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8">hasCallSiteMu</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
531
|
+
<tr class="separator:a842f6f2325c9e93ea96367e9cf624ee8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
532
532
|
<tr class="inherit_header pro_methods_classSVF_1_1VFG"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1VFG')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classSVF_1_1VFG.html">SVF::VFG</a></td></tr>
|
|
533
533
|
<tr class="memitem:af5005136743913d760d7402bbd308c69 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#af5005136743913d760d7402bbd308c69">destroy</a> ()</td></tr>
|
|
534
534
|
<tr class="memdesc:af5005136743913d760d7402bbd308c69 inherit pro_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Clean up memory. <a href="classSVF_1_1VFG.html#af5005136743913d760d7402bbd308c69">More...</a><br /></td></tr>
|
|
@@ -559,9 +559,9 @@ Protected Member Functions</h2></td></tr>
|
|
|
559
559
|
<tr class="memitem:adedaba0713164e10ce6273b2947535e0 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#adedaba0713164e10ce6273b2947535e0">connectDirectVFGEdges</a> ()</td></tr>
|
|
560
560
|
<tr class="memdesc:adedaba0713164e10ce6273b2947535e0 inherit pro_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Create edges between <a class="el" href="classSVF_1_1VFG.html">VFG</a> nodes within a function. <a href="classSVF_1_1VFG.html#adedaba0713164e10ce6273b2947535e0">More...</a><br /></td></tr>
|
|
561
561
|
<tr class="separator:adedaba0713164e10ce6273b2947535e0 inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
562
|
-
<tr class="memitem:
|
|
563
|
-
<tr class="memdesc:
|
|
564
|
-
<tr class="separator:
|
|
562
|
+
<tr class="memitem:aff0c7fcfe42752388f34d16d3d91b0b6 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#aff0c7fcfe42752388f34d16d3d91b0b6">addVFGInterEdges</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee)</td></tr>
|
|
563
|
+
<tr class="memdesc:aff0c7fcfe42752388f34d16d3d91b0b6 inherit pro_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Create edges between <a class="el" href="classSVF_1_1VFG.html">VFG</a> nodes across functions. <a href="classSVF_1_1VFG.html#aff0c7fcfe42752388f34d16d3d91b0b6">More...</a><br /></td></tr>
|
|
564
|
+
<tr class="separator:aff0c7fcfe42752388f34d16d3d91b0b6 inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
565
565
|
<tr class="memitem:a8ddf15d89a1b11a7f7720b671f4f0295 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a8ddf15d89a1b11a7f7720b671f4f0295">isPhiCopyEdge</a> (const <a class="el" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152">PAGEdge</a> *copy) const</td></tr>
|
|
566
566
|
<tr class="separator:a8ddf15d89a1b11a7f7720b671f4f0295 inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
567
567
|
<tr class="memitem:ad8c76cdb73541eed5aa1c2ba9de60383 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#ad8c76cdb73541eed5aa1c2ba9de60383">addVFGNode</a> (<a class="el" href="classSVF_1_1VFGNode.html">VFGNode</a> *vfgNode, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *icfgNode)</td></tr>
|
|
@@ -586,16 +586,16 @@ Protected Member Functions</h2></td></tr>
|
|
|
586
586
|
<tr class="separator:a373e7066630719ffb7c62681f2c2a74e inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
587
587
|
<tr class="memitem:a13f7caf44741db3b0e8a44b13d8931f5 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a13f7caf44741db3b0e8a44b13d8931f5">addStoreVFGNode</a> (const <a class="el" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store)</td></tr>
|
|
588
588
|
<tr class="separator:a13f7caf44741db3b0e8a44b13d8931f5 inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
589
|
-
<tr class="memitem:
|
|
590
|
-
<tr class="separator:
|
|
589
|
+
<tr class="memitem:a6b373385fa30c83c24844c41c2f05e53 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a6b373385fa30c83c24844c41c2f05e53">addActualParmVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *aparm, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
590
|
+
<tr class="separator:a6b373385fa30c83c24844c41c2f05e53 inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
591
591
|
<tr class="memitem:afdb1560eecf692fb646d412dc760088d inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#afdb1560eecf692fb646d412dc760088d">addFormalParmVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *fparm, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun, <a class="el" href="classSVF_1_1VFG.html#ade3f735b3c7b1a53cab3d67cd9f7b874">CallPESet</a> &callPEs)</td></tr>
|
|
592
592
|
<tr class="memdesc:afdb1560eecf692fb646d412dc760088d inherit pro_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Add a formal parameter <a class="el" href="classSVF_1_1VFG.html">VFG</a> node. <a href="classSVF_1_1VFG.html#afdb1560eecf692fb646d412dc760088d">More...</a><br /></td></tr>
|
|
593
593
|
<tr class="separator:afdb1560eecf692fb646d412dc760088d inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
594
594
|
<tr class="memitem:aae3bddc73e39d96fcc97d56ea3dec373 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#aae3bddc73e39d96fcc97d56ea3dec373">addFormalRetVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *uniqueFunRet, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun, <a class="el" href="classSVF_1_1VFG.html#abf966182c28f0521dcd161aa299e453d">RetPESet</a> &retPEs)</td></tr>
|
|
595
595
|
<tr class="separator:aae3bddc73e39d96fcc97d56ea3dec373 inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
596
|
-
<tr class="memitem:
|
|
597
|
-
<tr class="memdesc:
|
|
598
|
-
<tr class="separator:
|
|
596
|
+
<tr class="memitem:a63994c100593efda25dbd50646dfe0dc inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a63994c100593efda25dbd50646dfe0dc">addActualRetVFGNode</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *ret, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
597
|
+
<tr class="memdesc:a63994c100593efda25dbd50646dfe0dc inherit pro_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Add a callsite Receive <a class="el" href="classSVF_1_1VFG.html">VFG</a> node. <a href="classSVF_1_1VFG.html#a63994c100593efda25dbd50646dfe0dc">More...</a><br /></td></tr>
|
|
598
|
+
<tr class="separator:a63994c100593efda25dbd50646dfe0dc inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
599
599
|
<tr class="memitem:a6a1435f8ac7f74cc81608839fa3da3df inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a6a1435f8ac7f74cc81608839fa3da3df">addIntraPHIVFGNode</a> (const <a class="el" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *edge)</td></tr>
|
|
600
600
|
<tr class="memdesc:a6a1435f8ac7f74cc81608839fa3da3df inherit pro_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Add an llvm PHI <a class="el" href="classSVF_1_1VFG.html">VFG</a> node. <a href="classSVF_1_1VFG.html#a6a1435f8ac7f74cc81608839fa3da3df">More...</a><br /></td></tr>
|
|
601
601
|
<tr class="separator:a6a1435f8ac7f74cc81608839fa3da3df inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -611,9 +611,9 @@ Protected Member Functions</h2></td></tr>
|
|
|
611
611
|
<tr class="memitem:a18afc4baf33eb700e0510928016019f5 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a18afc4baf33eb700e0510928016019f5">addBranchVFGNode</a> (const <a class="el" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *edge)</td></tr>
|
|
612
612
|
<tr class="memdesc:a18afc4baf33eb700e0510928016019f5 inherit pro_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Add a <a class="el" href="classSVF_1_1BranchVFGNode.html">BranchVFGNode</a>. <a href="classSVF_1_1VFG.html#a18afc4baf33eb700e0510928016019f5">More...</a><br /></td></tr>
|
|
613
613
|
<tr class="separator:a18afc4baf33eb700e0510928016019f5 inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
614
|
-
<tr class="memitem:
|
|
615
|
-
<tr class="memdesc:
|
|
616
|
-
<tr class="separator:
|
|
614
|
+
<tr class="memitem:a2c508fbf07bad33d5b56d2acc6e012d3 inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a2c508fbf07bad33d5b56d2acc6e012d3">connectAParamAndFParam</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *csArg, const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *funArg, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cbn, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#a0bdac7337a393ad2e21a33ec1978ca3f">VFGEdgeSetTy</a> &edges)</td></tr>
|
|
615
|
+
<tr class="memdesc:a2c508fbf07bad33d5b56d2acc6e012d3 inherit pro_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Connect <a class="el" href="classSVF_1_1VFG.html">VFG</a> nodes between caller and callee for indirect call site. <a href="classSVF_1_1VFG.html#a2c508fbf07bad33d5b56d2acc6e012d3">More...</a><br /></td></tr>
|
|
616
|
+
<tr class="separator:a2c508fbf07bad33d5b56d2acc6e012d3 inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
617
617
|
<tr class="memitem:ab4e8ab307ad6beb46812a60ebd31ae3b inherit pro_methods_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#ab4e8ab307ad6beb46812a60ebd31ae3b">connectFRetAndARet</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *funReturn, const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *csReturn, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#a0bdac7337a393ad2e21a33ec1978ca3f">VFGEdgeSetTy</a> &edges)</td></tr>
|
|
618
618
|
<tr class="memdesc:ab4e8ab307ad6beb46812a60ebd31ae3b inherit pro_methods_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">Connect formal-ret and actual ret. <a href="classSVF_1_1VFG.html#ab4e8ab307ad6beb46812a60ebd31ae3b">More...</a><br /></td></tr>
|
|
619
619
|
<tr class="separator:ab4e8ab307ad6beb46812a60ebd31ae3b inherit pro_methods_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -630,9 +630,9 @@ Protected Attributes</h2></td></tr>
|
|
|
630
630
|
<tr class="memitem:aafa1b445bd3578daaba8f82e517745f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#ac84d3749671f177b14749a825e36efe3">MSSAVarToDefMapTy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#aafa1b445bd3578daaba8f82e517745f1">MSSAVarToDefMap</a></td></tr>
|
|
631
631
|
<tr class="memdesc:aafa1b445bd3578daaba8f82e517745f1"><td class="mdescLeft"> </td><td class="mdescRight">map a memory SSA operator to its definition <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node <a href="#aafa1b445bd3578daaba8f82e517745f1">More...</a><br /></td></tr>
|
|
632
632
|
<tr class="separator:aafa1b445bd3578daaba8f82e517745f1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
633
|
-
<tr class="memitem:af9313ebec4a52fd887169b7c6373a7d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#
|
|
633
|
+
<tr class="memitem:af9313ebec4a52fd887169b7c6373a7d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#a727af89a305e48f399ad33cc7149dbcb">CallSiteToActualINsMapTy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#af9313ebec4a52fd887169b7c6373a7d4">callSiteToActualINMap</a></td></tr>
|
|
634
634
|
<tr class="separator:af9313ebec4a52fd887169b7c6373a7d4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
635
|
-
<tr class="memitem:a39873b954b6e0eb0641f56ca4cd06ef9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#
|
|
635
|
+
<tr class="memitem:a39873b954b6e0eb0641f56ca4cd06ef9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#a7c4e9c0fad457a2dc81a85f96fcec9ec">CallSiteToActualOUTsMapTy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a39873b954b6e0eb0641f56ca4cd06ef9">callSiteToActualOUTMap</a></td></tr>
|
|
636
636
|
<tr class="separator:a39873b954b6e0eb0641f56ca4cd06ef9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
637
637
|
<tr class="memitem:ae51cd0493e4e767848b96b69045762fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html#a2b4850c833564916c7fce46d55672038">FunctionToFormalINsMapTy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ae51cd0493e4e767848b96b69045762fd">funToFormalINMap</a></td></tr>
|
|
638
638
|
<tr class="separator:ae51cd0493e4e767848b96b69045762fd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -650,7 +650,7 @@ Protected Attributes</h2></td></tr>
|
|
|
650
650
|
<tr class="memitem:ac89b3917ed73ac70aac6205af8f7a4fe inherit pro_attribs_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1VFG.html#ab9381c54f2339b3738348ae8b0d6659f">PAGNodeToDefMapTy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#ac89b3917ed73ac70aac6205af8f7a4fe">PAGNodeToDefMap</a></td></tr>
|
|
651
651
|
<tr class="memdesc:ac89b3917ed73ac70aac6205af8f7a4fe inherit pro_attribs_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">map a pag node to its definition SVG node <a href="classSVF_1_1VFG.html#ac89b3917ed73ac70aac6205af8f7a4fe">More...</a><br /></td></tr>
|
|
652
652
|
<tr class="separator:ac89b3917ed73ac70aac6205af8f7a4fe inherit pro_attribs_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
653
|
-
<tr class="memitem:a8b256a40e690f31b7a56308d55bad45a inherit pro_attribs_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1VFG.html#
|
|
653
|
+
<tr class="memitem:a8b256a40e690f31b7a56308d55bad45a inherit pro_attribs_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1VFG.html#a6d0a91e8c2cd18d846870c7e062a1bb4">PAGNodeToActualParmMapTy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a8b256a40e690f31b7a56308d55bad45a">PAGNodeToActualParmMap</a></td></tr>
|
|
654
654
|
<tr class="memdesc:a8b256a40e690f31b7a56308d55bad45a inherit pro_attribs_classSVF_1_1VFG"><td class="mdescLeft"> </td><td class="mdescRight">map a PAGNode to an actual parameter <a href="classSVF_1_1VFG.html#a8b256a40e690f31b7a56308d55bad45a">More...</a><br /></td></tr>
|
|
655
655
|
<tr class="separator:a8b256a40e690f31b7a56308d55bad45a inherit pro_attribs_classSVF_1_1VFG"><td class="memSeparator" colspan="2"> </td></tr>
|
|
656
656
|
<tr class="memitem:a28c5f7e331a437e09682b972769acf66 inherit pro_attribs_classSVF_1_1VFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1VFG.html#a999654aa377639db5c1e40f603e655a7">PAGNodeToActualRetMapTy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1VFG.html#a28c5f7e331a437e09682b972769acf66">PAGNodeToActualRetMap</a></td></tr>
|
|
@@ -791,14 +791,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
791
791
|
|
|
792
792
|
</div>
|
|
793
793
|
</div>
|
|
794
|
-
<a id="
|
|
795
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
794
|
+
<a id="a727af89a305e48f399ad33cc7149dbcb"></a>
|
|
795
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a727af89a305e48f399ad33cc7149dbcb">◆ </a></span>CallSiteToActualINsMapTy</h2>
|
|
796
796
|
|
|
797
797
|
<div class="memitem">
|
|
798
798
|
<div class="memproto">
|
|
799
799
|
<table class="memname">
|
|
800
800
|
<tr>
|
|
801
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="
|
|
801
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*, <a class="el" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">ActualINSVFGNodeSet</a>> <a class="el" href="classSVF_1_1SVFG.html#a727af89a305e48f399ad33cc7149dbcb">SVF::SVFG::CallSiteToActualINsMapTy</a></td>
|
|
802
802
|
</tr>
|
|
803
803
|
</table>
|
|
804
804
|
</div><div class="memdoc">
|
|
@@ -807,14 +807,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
807
807
|
|
|
808
808
|
</div>
|
|
809
809
|
</div>
|
|
810
|
-
<a id="
|
|
811
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
810
|
+
<a id="a7c4e9c0fad457a2dc81a85f96fcec9ec"></a>
|
|
811
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a7c4e9c0fad457a2dc81a85f96fcec9ec">◆ </a></span>CallSiteToActualOUTsMapTy</h2>
|
|
812
812
|
|
|
813
813
|
<div class="memitem">
|
|
814
814
|
<div class="memproto">
|
|
815
815
|
<table class="memname">
|
|
816
816
|
<tr>
|
|
817
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="
|
|
817
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*, <a class="el" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">ActualOUTSVFGNodeSet</a>> <a class="el" href="classSVF_1_1SVFG.html#a7c4e9c0fad457a2dc81a85f96fcec9ec">SVF::SVFG::CallSiteToActualOUTsMapTy</a></td>
|
|
818
818
|
</tr>
|
|
819
819
|
</table>
|
|
820
820
|
</div><div class="memdoc">
|
|
@@ -1159,8 +1159,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1159
1159
|
</div>
|
|
1160
1160
|
</div>
|
|
1161
1161
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
1162
|
-
<a id="
|
|
1163
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1162
|
+
<a id="a923924d3887c668b355f4029502a3754"></a>
|
|
1163
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a923924d3887c668b355f4029502a3754">◆ </a></span>addActualINSVFGNode()</h2>
|
|
1164
1164
|
|
|
1165
1165
|
<div class="memitem">
|
|
1166
1166
|
<div class="memproto">
|
|
@@ -1171,7 +1171,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1171
1171
|
<tr>
|
|
1172
1172
|
<td class="memname">void SVF::SVFG::addActualINSVFGNode </td>
|
|
1173
1173
|
<td>(</td>
|
|
1174
|
-
<td class="paramtype">const <a class="el" href="
|
|
1174
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1175
1175
|
<td class="paramname"><em>callsite</em>, </td>
|
|
1176
1176
|
</tr>
|
|
1177
1177
|
<tr>
|
|
@@ -1202,16 +1202,16 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1202
1202
|
<p>Add memory callsite mu <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. </p>
|
|
1203
1203
|
|
|
1204
1204
|
<p class="definition">Definition at line <a class="el" href="SVFG_8h_source.html#l00414">414</a> of file <a class="el" href="SVFG_8h_source.html">SVFG.h</a>.</p>
|
|
1205
|
-
<div class="fragment"><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  ActualINSVFGNode* sNode = <span class="keyword">new</span> ActualINSVFGNode(nodeId, callsite, ver);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode,<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#
|
|
1206
|
-
<div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00209">ICFG.cpp:209</a></div></div>
|
|
1205
|
+
<div class="fragment"><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  ActualINSVFGNode* sNode = <span class="keyword">new</span> ActualINSVFGNode(nodeId, callsite, ver);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode,<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a483e92e076a426ec8f177eab3b971723">getCallBlockNode</a>(callsite->getCallSite()));</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSVF_1_1SVFG.html#af9313ebec4a52fd887169b7c6373a7d4">callSiteToActualINMap</a>[callsite].set(sNode->getId());</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div><div class="ttc" id="classSVF_1_1SVFG_html_af9313ebec4a52fd887169b7c6373a7d4"><div class="ttname"><a href="classSVF_1_1SVFG.html#af9313ebec4a52fd887169b7c6373a7d4">SVF::SVFG::callSiteToActualINMap</a></div><div class="ttdeci">CallSiteToActualINsMapTy callSiteToActualINMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00100">SVFG.h:100</a></div></div>
|
|
1207
1206
|
<div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
|
|
1207
|
+
<div class="ttc" id="classSVF_1_1ICFG_html_a483e92e076a426ec8f177eab3b971723"><div class="ttname"><a href="classSVF_1_1ICFG.html#a483e92e076a426ec8f177eab3b971723">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallICFGNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00209">ICFG.cpp:209</a></div></div>
|
|
1208
1208
|
<div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00391">SVFG.h:391</a></div></div>
|
|
1209
1209
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
|
|
1210
1210
|
</div><!-- fragment -->
|
|
1211
1211
|
</div>
|
|
1212
1212
|
</div>
|
|
1213
|
-
<a id="
|
|
1214
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1213
|
+
<a id="a74aa824a68f99756ac3e65231c7bc2e9"></a>
|
|
1214
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a74aa824a68f99756ac3e65231c7bc2e9">◆ </a></span>addActualOUTSVFGNode()</h2>
|
|
1215
1215
|
|
|
1216
1216
|
<div class="memitem">
|
|
1217
1217
|
<div class="memproto">
|
|
@@ -1222,7 +1222,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1222
1222
|
<tr>
|
|
1223
1223
|
<td class="memname">void SVF::SVFG::addActualOUTSVFGNode </td>
|
|
1224
1224
|
<td>(</td>
|
|
1225
|
-
<td class="paramtype">const <a class="el" href="
|
|
1225
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1226
1226
|
<td class="paramname"><em>callsite</em>, </td>
|
|
1227
1227
|
</tr>
|
|
1228
1228
|
<tr>
|
|
@@ -1253,10 +1253,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1253
1253
|
<p>Add memory callsite chi <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. </p>
|
|
1254
1254
|
|
|
1255
1255
|
<p class="definition">Definition at line <a class="el" href="SVFG_8h_source.html#l00422">422</a> of file <a class="el" href="SVFG_8h_source.html">SVFG.h</a>.</p>
|
|
1256
|
-
<div class="fragment"><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  ActualOUTSVFGNode* sNode = <span class="keyword">new</span> ActualOUTSVFGNode(nodeId, callsite, resVer);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#
|
|
1256
|
+
<div class="fragment"><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  ActualOUTSVFGNode* sNode = <span class="keyword">new</span> ActualOUTSVFGNode(nodeId, callsite, resVer);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a392e5ea7c356763a988407f91343f034">getRetBlockNode</a>(callsite->getCallSite()));</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(resVer,sNode);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <a class="code" href="classSVF_1_1SVFG.html#a39873b954b6e0eb0641f56ca4cd06ef9">callSiteToActualOUTMap</a>[callsite].set(sNode->getId());</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div><div class="ttc" id="classSVF_1_1SVFG_html_a39873b954b6e0eb0641f56ca4cd06ef9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a39873b954b6e0eb0641f56ca4cd06ef9">SVF::SVFG::callSiteToActualOUTMap</a></div><div class="ttdeci">CallSiteToActualOUTsMapTy callSiteToActualOUTMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00101">SVFG.h:101</a></div></div>
|
|
1257
|
+
<div class="ttc" id="classSVF_1_1ICFG_html_a392e5ea7c356763a988407f91343f034"><div class="ttname"><a href="classSVF_1_1ICFG.html#a392e5ea7c356763a988407f91343f034">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetICFGNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00222">ICFG.cpp:222</a></div></div>
|
|
1257
1258
|
<div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
|
|
1258
1259
|
<div class="ttc" id="classSVF_1_1SVFG_html_accd1cbd26c9b194971f3107a57a0ab2e"><div class="ttname"><a href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">SVF::SVFG::setDef</a></div><div class="ttdeci">void setDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdoc">Given a PAGNode, set/get its def SVFG node (definition of top level pointers) </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00346">SVFG.h:346</a></div></div>
|
|
1259
|
-
<div class="ttc" id="classSVF_1_1ICFG_html_a6d66c83cb1656d0f8ec8b8b65a9e9c41"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetBlockNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00222">ICFG.cpp:222</a></div></div>
|
|
1260
1260
|
<div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00391">SVFG.h:391</a></div></div>
|
|
1261
1261
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
|
|
1262
1262
|
</div><!-- fragment -->
|
|
@@ -1362,8 +1362,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1362
1362
|
</div><!-- fragment -->
|
|
1363
1363
|
</div>
|
|
1364
1364
|
</div>
|
|
1365
|
-
<a id="
|
|
1366
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1365
|
+
<a id="ab4690114393820f580e805d2e0d6a41d"></a>
|
|
1366
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ab4690114393820f580e805d2e0d6a41d">◆ </a></span>addFormalINSVFGNode()</h2>
|
|
1367
1367
|
|
|
1368
1368
|
<div class="memitem">
|
|
1369
1369
|
<div class="memproto">
|
|
@@ -1374,7 +1374,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1374
1374
|
<tr>
|
|
1375
1375
|
<td class="memname">void SVF::SVFG::addFormalINSVFGNode </td>
|
|
1376
1376
|
<td>(</td>
|
|
1377
|
-
<td class="paramtype">const <a class="el" href="
|
|
1377
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> * </td>
|
|
1378
1378
|
<td class="paramname"><em>funEntry</em>, </td>
|
|
1379
1379
|
</tr>
|
|
1380
1380
|
<tr>
|
|
@@ -1405,17 +1405,17 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1405
1405
|
<p>Add memory Function entry chi <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. </p>
|
|
1406
1406
|
|
|
1407
1407
|
<p class="definition">Definition at line <a class="el" href="SVFG_8h_source.html#l00397">397</a> of file <a class="el" href="SVFG_8h_source.html">SVFG.h</a>.</p>
|
|
1408
|
-
<div class="fragment"><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  FormalINSVFGNode* sNode = <span class="keyword">new</span> FormalINSVFGNode(nodeId, resVer, funEntry);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#
|
|
1408
|
+
<div class="fragment"><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  FormalINSVFGNode* sNode = <span class="keyword">new</span> FormalINSVFGNode(nodeId, resVer, funEntry);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a2b32cfb0b4b3e420aa8e67fc6d4f1025">getFunEntryBlockNode</a>(funEntry->getFun()));</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(resVer,sNode);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="classSVF_1_1SVFG.html#ae51cd0493e4e767848b96b69045762fd">funToFormalINMap</a>[funEntry->getFun()].set(sNode->getId());</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  }</div><div class="ttc" id="classSVF_1_1SVFG_html_ae51cd0493e4e767848b96b69045762fd"><div class="ttname"><a href="classSVF_1_1SVFG.html#ae51cd0493e4e767848b96b69045762fd">SVF::SVFG::funToFormalINMap</a></div><div class="ttdeci">FunctionToFormalINsMapTy funToFormalINMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00102">SVFG.h:102</a></div></div>
|
|
1409
1409
|
<div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
|
|
1410
|
+
<div class="ttc" id="classSVF_1_1ICFG_html_a2b32cfb0b4b3e420aa8e67fc6d4f1025"><div class="ttname"><a href="classSVF_1_1ICFG.html#a2b32cfb0b4b3e420aa8e67fc6d4f1025">SVF::ICFG::getFunEntryBlockNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryBlockNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00242">ICFG.cpp:242</a></div></div>
|
|
1410
1411
|
<div class="ttc" id="classSVF_1_1SVFG_html_accd1cbd26c9b194971f3107a57a0ab2e"><div class="ttname"><a href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">SVF::SVFG::setDef</a></div><div class="ttdeci">void setDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdoc">Given a PAGNode, set/get its def SVFG node (definition of top level pointers) </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00346">SVFG.h:346</a></div></div>
|
|
1411
|
-
<div class="ttc" id="classSVF_1_1ICFG_html_ae1ef14cdda27a2062c4c454750444108"><div class="ttname"><a href="classSVF_1_1ICFG.html#ae1ef14cdda27a2062c4c454750444108">SVF::ICFG::getFunEntryBlockNode</a></div><div class="ttdeci">FunEntryBlockNode * getFunEntryBlockNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00242">ICFG.cpp:242</a></div></div>
|
|
1412
1412
|
<div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00391">SVFG.h:391</a></div></div>
|
|
1413
1413
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
|
|
1414
1414
|
</div><!-- fragment -->
|
|
1415
1415
|
</div>
|
|
1416
1416
|
</div>
|
|
1417
|
-
<a id="
|
|
1418
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1417
|
+
<a id="a804824faa3a042cb1b63edd9e9eb7207"></a>
|
|
1418
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a804824faa3a042cb1b63edd9e9eb7207">◆ </a></span>addFormalOUTSVFGNode()</h2>
|
|
1419
1419
|
|
|
1420
1420
|
<div class="memitem">
|
|
1421
1421
|
<div class="memproto">
|
|
@@ -1426,7 +1426,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1426
1426
|
<tr>
|
|
1427
1427
|
<td class="memname">void SVF::SVFG::addFormalOUTSVFGNode </td>
|
|
1428
1428
|
<td>(</td>
|
|
1429
|
-
<td class="paramtype">const <a class="el" href="
|
|
1429
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> * </td>
|
|
1430
1430
|
<td class="paramname"><em>funExit</em>, </td>
|
|
1431
1431
|
</tr>
|
|
1432
1432
|
<tr>
|
|
@@ -1457,7 +1457,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1457
1457
|
<p>Add memory Function return mu <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. </p>
|
|
1458
1458
|
|
|
1459
1459
|
<p class="definition">Definition at line <a class="el" href="SVFG_8h_source.html#l00406">406</a> of file <a class="el" href="SVFG_8h_source.html">SVFG.h</a>.</p>
|
|
1460
|
-
<div class="fragment"><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  FormalOUTSVFGNode* sNode = <span class="keyword">new</span> FormalOUTSVFGNode(nodeId, ver, funExit);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode,<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#
|
|
1460
|
+
<div class="fragment"><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  FormalOUTSVFGNode* sNode = <span class="keyword">new</span> FormalOUTSVFGNode(nodeId, ver, funExit);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode,<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a8f131fd585f6fa0c93023ee193500b26">getFunExitBlockNode</a>(funExit->getFun()));</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="classSVF_1_1SVFG.html#a7d58f9fe97071ec9936174689cb99301">funToFormalOUTMap</a>[funExit->getFun()].set(sNode->getId());</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  }</div><div class="ttc" id="classSVF_1_1ICFG_html_a8f131fd585f6fa0c93023ee193500b26"><div class="ttname"><a href="classSVF_1_1ICFG.html#a8f131fd585f6fa0c93023ee193500b26">SVF::ICFG::getFunExitBlockNode</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlockNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00251">ICFG.cpp:251</a></div></div>
|
|
1461
1461
|
<div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
|
|
1462
1462
|
<div class="ttc" id="classSVF_1_1SVFG_html_a7d58f9fe97071ec9936174689cb99301"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7d58f9fe97071ec9936174689cb99301">SVF::SVFG::funToFormalOUTMap</a></div><div class="ttdeci">FunctionToFormalOUTsMapTy funToFormalOUTMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00103">SVFG.h:103</a></div></div>
|
|
1463
1463
|
<div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00391">SVFG.h:391</a></div></div>
|
|
@@ -1844,12 +1844,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1844
1844
|
<p>initialize memory SSA callsite chi nodes </p>
|
|
1845
1845
|
|
|
1846
1846
|
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00223">223</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
1847
|
-
<div class="fragment"><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// set defs for address-taken vars defined at store statements</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& stores = <a class="code" href="classSVF_1_1VFG.html#a77c2855e80d85ee122e3ee076402d864">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">PAGEdge::Store</a>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = stores.begin(), eiter =</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  stores.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* store = SVFUtil::cast<StoreStmt>(*iter);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* sNode = <a class="code" href="classSVF_1_1VFG.html#a32b1586d326fbe47080bd1fa2d3270e6">getStmtVFGNode</a>(store);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">for</span>(CHISet::iterator pi = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(store).begin(), epi = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(store).end(); pi!=epi; ++pi)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>((*pi)->getResVer(),sNode);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">for</span>(MemSSA::BBToPhiSetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">getBBToPhiSetMap</a>().begin(),</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">getBBToPhiSetMap</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">for</span>(PHISet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classSVF_1_1MSSAPHI.html">MemSSA::PHI</a>* phi = *pi;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572">addIntraMSSAPHISVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">getBlockICFGNode</a>(&(phi-><a class="code" href="classSVF_1_1MSSAPHI.html#a00b3ab85b31b4de91398efea41db158f">getBasicBlock</a>()->front())), phi-><a class="code" href="classSVF_1_1MSSAPHI.html#a940f9afa26bf54c7175276ea27003c2f">opVerBegin</a>(), phi-><a class="code" href="classSVF_1_1MSSAPHI.html#a2a49ad9d2eedf1dea98d725b13878d88">opVerEnd</a>(),phi-><a class="code" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">getResVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">for</span>(MemSSA::FunToEntryChiSetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">getFunToEntryChiSetMap</a>().begin(),</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">getFunToEntryChiSetMap</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">for</span>(CHISet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1EntryCHI.html">MemSSA::ENTRYCHI</a>* chi = SVFUtil::cast<ENTRYCHI>(*pi);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1SVFG.html#aee7cd64ac52d2ae930ab527325a77a30">addFormalINSVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#ae1ef14cdda27a2062c4c454750444108">getFunEntryBlockNode</a>(chi-><a class="code" href="classSVF_1_1EntryCHI.html#ae021640611362449382668665710154c">getFunction</a>()), chi-><a class="code" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">getResVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">for</span>(MemSSA::FunToReturnMuSetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">getFunToRetMuSetMap</a>().begin(),</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">getFunToRetMuSetMap</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">for</span>(MUSet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1RetMU.html">MemSSA::RETMU</a>* mu = SVFUtil::cast<RETMU>(*pi);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1SVFG.html#ae54becb2073591bce004f820cd13b1ca">addFormalOUTSVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#aa33426d57dc150956902945a17a29bcb">getFunExitBlockNode</a>(mu-><a class="code" href="classSVF_1_1RetMU.html#a8ad6bf3d517e20089dac516742ee4b8f">getFunction</a>()), mu-><a class="code" href="classSVF_1_1MSSAMU.html#ad120dfc87b90b26649bcd8d0c0d3ca80">getMRVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">for</span>(MemSSA::CallSiteToMUSetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">getCallSiteToMuSetMap</a>().begin(),</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">getCallSiteToMuSetMap</a>().end();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  it!=eit; ++it)</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">for</span>(MUSet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallMU.html">MemSSA::CALLMU</a>* mu = SVFUtil::cast<CALLMU>(*pi);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="classSVF_1_1SVFG.html#ab6dfac64a363550ef51df246849a13aa">addActualINSVFGNode</a>(mu-><a class="code" href="classSVF_1_1CallMU.html#a401be4fc10a3b9f3d392f1c278bef866">getCallSite</a>(), mu-><a class="code" href="classSVF_1_1MSSAMU.html#ad120dfc87b90b26649bcd8d0c0d3ca80">getMRVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">for</span>(MemSSA::CallSiteToCHISetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">getCallSiteToChiSetMap</a>().begin(),</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">getCallSiteToChiSetMap</a>().end();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  it!=eit; ++it)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">for</span>(CHISet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallCHI.html">MemSSA::CALLCHI</a>* chi = SVFUtil::cast<CALLCHI>(*pi);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="classSVF_1_1SVFG.html#acc0c102c3773b7d8abb23959fb64ffa4">addActualOUTSVFGNode</a>(chi-><a class="code" href="classSVF_1_1CallCHI.html#a7bce9987b6377a24436b878dcd9c76c9">getCallSite</a>(), chi-><a class="code" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">getResVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div><div class="ttc" id="classSVF_1_1MemSSA_html_a2e656a50f8964fc3e99d1d436de64418"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">SVF::MemSSA::getCHISet</a></div><div class="ttdeci">CHISet & getCHISet(const StoreStmt *st)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00392">MemSSA.h:392</a></div></div>
|
|
1847
|
+
<div class="fragment"><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// set defs for address-taken vars defined at store statements</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">PAGEdge::SVFStmtSetTy</a>& stores = <a class="code" href="classSVF_1_1VFG.html#a77c2855e80d85ee122e3ee076402d864">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">PAGEdge::Store</a>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">for</span> (PAGEdge::SVFStmtSetTy::iterator iter = stores.begin(), eiter =</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  stores.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* store = SVFUtil::cast<StoreStmt>(*iter);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* sNode = <a class="code" href="classSVF_1_1VFG.html#a32b1586d326fbe47080bd1fa2d3270e6">getStmtVFGNode</a>(store);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">for</span>(CHISet::iterator pi = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(store).begin(), epi = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(store).end(); pi!=epi; ++pi)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>((*pi)->getResVer(),sNode);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">for</span>(MemSSA::BBToPhiSetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">getBBToPhiSetMap</a>().begin(),</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">getBBToPhiSetMap</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">for</span>(PHISet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classSVF_1_1MSSAPHI.html">MemSSA::PHI</a>* phi = *pi;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572">addIntraMSSAPHISVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">getBlockICFGNode</a>(&(phi-><a class="code" href="classSVF_1_1MSSAPHI.html#a00b3ab85b31b4de91398efea41db158f">getBasicBlock</a>()->front())), phi-><a class="code" href="classSVF_1_1MSSAPHI.html#a940f9afa26bf54c7175276ea27003c2f">opVerBegin</a>(), phi-><a class="code" href="classSVF_1_1MSSAPHI.html#a2a49ad9d2eedf1dea98d725b13878d88">opVerEnd</a>(),phi-><a class="code" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">getResVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">for</span>(MemSSA::FunToEntryChiSetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">getFunToEntryChiSetMap</a>().begin(),</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">getFunToEntryChiSetMap</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">for</span>(CHISet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1EntryCHI.html">MemSSA::ENTRYCHI</a>* chi = SVFUtil::cast<ENTRYCHI>(*pi);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1SVFG.html#ab4690114393820f580e805d2e0d6a41d">addFormalINSVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a2b32cfb0b4b3e420aa8e67fc6d4f1025">getFunEntryBlockNode</a>(chi-><a class="code" href="classSVF_1_1EntryCHI.html#ae021640611362449382668665710154c">getFunction</a>()), chi-><a class="code" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">getResVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">for</span>(MemSSA::FunToReturnMuSetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">getFunToRetMuSetMap</a>().begin(),</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">getFunToRetMuSetMap</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">for</span>(MUSet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1RetMU.html">MemSSA::RETMU</a>* mu = SVFUtil::cast<RETMU>(*pi);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207">addFormalOUTSVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a8f131fd585f6fa0c93023ee193500b26">getFunExitBlockNode</a>(mu-><a class="code" href="classSVF_1_1RetMU.html#a8ad6bf3d517e20089dac516742ee4b8f">getFunction</a>()), mu-><a class="code" href="classSVF_1_1MSSAMU.html#ad120dfc87b90b26649bcd8d0c0d3ca80">getMRVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">for</span>(MemSSA::CallSiteToMUSetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">getCallSiteToMuSetMap</a>().begin(),</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">getCallSiteToMuSetMap</a>().end();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  it!=eit; ++it)</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">for</span>(MUSet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallMU.html">MemSSA::CALLMU</a>* mu = SVFUtil::cast<CALLMU>(*pi);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="classSVF_1_1SVFG.html#a923924d3887c668b355f4029502a3754">addActualINSVFGNode</a>(mu-><a class="code" href="classSVF_1_1CallMU.html#a57616dc30fb97c6dc64c9210b42bbeb7">getCallSite</a>(), mu-><a class="code" href="classSVF_1_1MSSAMU.html#ad120dfc87b90b26649bcd8d0c0d3ca80">getMRVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">for</span>(MemSSA::CallSiteToCHISetMap::iterator it = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">getCallSiteToChiSetMap</a>().begin(),</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  eit = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">getCallSiteToChiSetMap</a>().end();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  it!=eit; ++it)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">for</span>(CHISet::iterator pi = it->second.begin(), epi = it->second.end(); pi!=epi; ++pi){</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallCHI.html">MemSSA::CALLCHI</a>* chi = SVFUtil::cast<CALLCHI>(*pi);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9">addActualOUTSVFGNode</a>(chi-><a class="code" href="classSVF_1_1CallCHI.html#af7f9fb3c01c487686453e25104a5bfc7">getCallSite</a>(), chi-><a class="code" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">getResVer</a>(), <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div><div class="ttc" id="classSVF_1_1MemSSA_html_a2e656a50f8964fc3e99d1d436de64418"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">SVF::MemSSA::getCHISet</a></div><div class="ttdeci">CHISet & getCHISet(const StoreStmt *st)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00392">MemSSA.h:392</a></div></div>
|
|
1848
1848
|
<div class="ttc" id="classSVF_1_1CallMU_html"><div class="ttname"><a href="classSVF_1_1CallMU.html">SVF::CallMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00221">MSSAMuChi.h:221</a></div></div>
|
|
1849
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a923924d3887c668b355f4029502a3754"><div class="ttname"><a href="classSVF_1_1SVFG.html#a923924d3887c668b355f4029502a3754">SVF::SVFG::addActualINSVFGNode</a></div><div class="ttdeci">void addActualINSVFGNode(const CallICFGNode *callsite, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory callsite mu SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00414">SVFG.h:414</a></div></div>
|
|
1849
1850
|
<div class="ttc" id="classSVF_1_1VFG_html_a32b1586d326fbe47080bd1fa2d3270e6"><div class="ttname"><a href="classSVF_1_1VFG.html#a32b1586d326fbe47080bd1fa2d3270e6">SVF::VFG::getStmtVFGNode</a></div><div class="ttdeci">StmtVFGNode * getStmtVFGNode(const PAGEdge *pagEdge) const</div><div class="ttdoc">Get an VFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00199">VFG.h:199</a></div></div>
|
|
1850
|
-
<div class="ttc" id="classSVF_1_1SVFG_html_aee7cd64ac52d2ae930ab527325a77a30"><div class="ttname"><a href="classSVF_1_1SVFG.html#aee7cd64ac52d2ae930ab527325a77a30">SVF::SVFG::addFormalINSVFGNode</a></div><div class="ttdeci">void addFormalINSVFGNode(const FunEntryBlockNode *funEntry, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory Function entry chi SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00397">SVFG.h:397</a></div></div>
|
|
1851
|
-
<div class="ttc" id="classSVF_1_1CallMU_html_a401be4fc10a3b9f3d392f1c278bef866"><div class="ttname"><a href="classSVF_1_1CallMU.html#a401be4fc10a3b9f3d392f1c278bef866">SVF::CallMU::getCallSite</a></div><div class="ttdeci">const CallBlockNode * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00241">MSSAMuChi.h:241</a></div></div>
|
|
1852
|
-
<div class="ttc" id="classSVF_1_1SVFG_html_ab6dfac64a363550ef51df246849a13aa"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab6dfac64a363550ef51df246849a13aa">SVF::SVFG::addActualINSVFGNode</a></div><div class="ttdeci">void addActualINSVFGNode(const CallBlockNode *callsite, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory callsite mu SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00414">SVFG.h:414</a></div></div>
|
|
1853
1851
|
<div class="ttc" id="classSVF_1_1VFG_html_a77c2855e80d85ee122e3ee076402d864"><div class="ttname"><a href="classSVF_1_1VFG.html#a77c2855e80d85ee122e3ee076402d864">SVF::VFG::getPAGEdgeSet</a></div><div class="ttdeci">virtual PAGEdge::SVFStmtSetTy & getPAGEdgeSet(PAGEdge::PEDGEK kind)</div><div class="ttdoc">Get PAGEdge set. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00430">VFG.h:430</a></div></div>
|
|
1854
1852
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode< SVFVar, SVFStmt >::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00178">SVFStatements.h:178</a></div></div>
|
|
1855
1853
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_a21cb532396180e0b6bab515c52bec282"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">SVF::MSSADEF::getResVer</a></div><div class="ttdeci">MRVer * getResVer() const</div><div class="ttdoc">Set operand vers. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00373">MSSAMuChi.h:373</a></div></div>
|
|
@@ -1857,19 +1855,20 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1857
1855
|
<div class="ttc" id="classSVF_1_1MSSAMU_html_ad120dfc87b90b26649bcd8d0c0d3ca80"><div class="ttname"><a href="classSVF_1_1MSSAMU.html#ad120dfc87b90b26649bcd8d0c0d3ca80">SVF::MSSAMU::getMRVer</a></div><div class="ttdeci">MRVer * getMRVer() const</div><div class="ttdoc">Get Ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00137">MSSAMuChi.h:137</a></div></div>
|
|
1858
1856
|
<div class="ttc" id="classSVF_1_1RetMU_html"><div class="ttname"><a href="classSVF_1_1RetMU.html">SVF::RetMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00277">MSSAMuChi.h:277</a></div></div>
|
|
1859
1857
|
<div class="ttc" id="classSVF_1_1SVFG_html_a0554abe7c072b66ab24a900284646572"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572">SVF::SVFG::addIntraMSSAPHISVFGNode</a></div><div class="ttdeci">void addIntraMSSAPHISVFGNode(ICFGNode *BlockICFGNode, const Map< u32_t, const MRVer *>::const_iterator opVerBegin, const Map< u32_t, const MRVer *>::const_iterator opVerEnd, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory SSA PHI SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00431">SVFG.h:431</a></div></div>
|
|
1860
|
-
<div class="ttc" id="
|
|
1858
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a74aa824a68f99756ac3e65231c7bc2e9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9">SVF::SVFG::addActualOUTSVFGNode</a></div><div class="ttdeci">void addActualOUTSVFGNode(const CallICFGNode *callsite, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory callsite chi SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00422">SVFG.h:422</a></div></div>
|
|
1859
|
+
<div class="ttc" id="classSVF_1_1ICFG_html_a8f131fd585f6fa0c93023ee193500b26"><div class="ttname"><a href="classSVF_1_1ICFG.html#a8f131fd585f6fa0c93023ee193500b26">SVF::ICFG::getFunExitBlockNode</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlockNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00251">ICFG.cpp:251</a></div></div>
|
|
1861
1860
|
<div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
|
|
1862
|
-
<div class="ttc" id="
|
|
1863
|
-
<div class="ttc" id="classSVF_1_1CallCHI_html_a7bce9987b6377a24436b878dcd9c76c9"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a7bce9987b6377a24436b878dcd9c76c9">SVF::CallCHI::getCallSite</a></div><div class="ttdeci">const CallBlockNode * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00544">MSSAMuChi.h:544</a></div></div>
|
|
1861
|
+
<div class="ttc" id="classSVF_1_1ICFG_html_a2b32cfb0b4b3e420aa8e67fc6d4f1025"><div class="ttname"><a href="classSVF_1_1ICFG.html#a2b32cfb0b4b3e420aa8e67fc6d4f1025">SVF::ICFG::getFunEntryBlockNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryBlockNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00242">ICFG.cpp:242</a></div></div>
|
|
1864
1862
|
<div class="ttc" id="classSVF_1_1SVFG_html_accd1cbd26c9b194971f3107a57a0ab2e"><div class="ttname"><a href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">SVF::SVFG::setDef</a></div><div class="ttdeci">void setDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdoc">Given a PAGNode, set/get its def SVFG node (definition of top level pointers) </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00346">SVFG.h:346</a></div></div>
|
|
1865
1863
|
<div class="ttc" id="classSVF_1_1EntryCHI_html"><div class="ttname"><a href="classSVF_1_1EntryCHI.html">SVF::EntryCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00578">MSSAMuChi.h:578</a></div></div>
|
|
1866
1864
|
<div class="ttc" id="classSVF_1_1RetMU_html_a8ad6bf3d517e20089dac516742ee4b8f"><div class="ttname"><a href="classSVF_1_1RetMU.html#a8ad6bf3d517e20089dac516742ee4b8f">SVF::RetMU::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Return function. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00292">MSSAMuChi.h:292</a></div></div>
|
|
1865
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a804824faa3a042cb1b63edd9e9eb7207"><div class="ttname"><a href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207">SVF::SVFG::addFormalOUTSVFGNode</a></div><div class="ttdeci">void addFormalOUTSVFGNode(const FunExitICFGNode *funExit, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory Function return mu SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00406">SVFG.h:406</a></div></div>
|
|
1867
1866
|
<div class="ttc" id="classSVF_1_1VFG_html_acb181d4f9faa40578c80e2018e2742b8"><div class="ttname"><a href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">SVF::VFG::totalVFGNode</a></div><div class="ttdeci">NodeID totalVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00088">VFG.h:88</a></div></div>
|
|
1868
1867
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a966477062a453901da3631015fcf737d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">SVF::MemSSA::getBBToPhiSetMap</a></div><div class="ttdeci">BBToPhiSetMap & getBBToPhiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00436">MemSSA.h:436</a></div></div>
|
|
1868
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_ab4690114393820f580e805d2e0d6a41d"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab4690114393820f580e805d2e0d6a41d">SVF::SVFG::addFormalINSVFGNode</a></div><div class="ttdeci">void addFormalINSVFGNode(const FunEntryICFGNode *funEntry, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory Function entry chi SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00397">SVFG.h:397</a></div></div>
|
|
1869
1869
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_a940f9afa26bf54c7175276ea27003c2f"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#a940f9afa26bf54c7175276ea27003c2f">SVF::MSSAPHI::opVerBegin</a></div><div class="ttdeci">OPVers::const_iterator opVerBegin() const</div><div class="ttdoc">Operand ver iterators. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00673">MSSAMuChi.h:673</a></div></div>
|
|
1870
|
-
<div class="ttc" id="
|
|
1870
|
+
<div class="ttc" id="classSVF_1_1CallCHI_html_af7f9fb3c01c487686453e25104a5bfc7"><div class="ttname"><a href="classSVF_1_1CallCHI.html#af7f9fb3c01c487686453e25104a5bfc7">SVF::CallCHI::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00544">MSSAMuChi.h:544</a></div></div>
|
|
1871
1871
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVF::SVFStmt::Store</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
1872
|
-
<div class="ttc" id="classSVF_1_1ICFG_html_ae1ef14cdda27a2062c4c454750444108"><div class="ttname"><a href="classSVF_1_1ICFG.html#ae1ef14cdda27a2062c4c454750444108">SVF::ICFG::getFunEntryBlockNode</a></div><div class="ttdeci">FunEntryBlockNode * getFunEntryBlockNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00242">ICFG.cpp:242</a></div></div>
|
|
1873
1872
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00113">VFGNode.h:113</a></div></div>
|
|
1874
1873
|
<div class="ttc" id="classSVF_1_1SVFG_html_a6f07410ee34e4bf1079e3b5902c81d28"><div class="ttname"><a href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">SVF::SVFG::mssa</a></div><div class="ttdeci">MemSSA * mssa</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00105">SVFG.h:105</a></div></div>
|
|
1875
1874
|
<div class="ttc" id="classSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00339">SVFStatements.h:339</a></div></div>
|
|
@@ -1880,6 +1879,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1880
1879
|
<div class="ttc" id="classSVF_1_1EntryCHI_html_ae021640611362449382668665710154c"><div class="ttname"><a href="classSVF_1_1EntryCHI.html#ae021640611362449382668665710154c">SVF::EntryCHI::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Return function. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00595">MSSAMuChi.h:595</a></div></div>
|
|
1881
1880
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
|
|
1882
1881
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_a00b3ab85b31b4de91398efea41db158f"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#a00b3ab85b31b4de91398efea41db158f">SVF::MSSAPHI::getBasicBlock</a></div><div class="ttdeci">const BasicBlock * getBasicBlock() const</div><div class="ttdoc">Return the basic block. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00684">MSSAMuChi.h:684</a></div></div>
|
|
1882
|
+
<div class="ttc" id="classSVF_1_1CallMU_html_a57616dc30fb97c6dc64c9210b42bbeb7"><div class="ttname"><a href="classSVF_1_1CallMU.html#a57616dc30fb97c6dc64c9210b42bbeb7">SVF::CallMU::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00241">MSSAMuChi.h:241</a></div></div>
|
|
1883
1883
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html">SVF::MSSAPHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00629">MSSAMuChi.h:629</a></div></div>
|
|
1884
1884
|
<div class="ttc" id="classSVF_1_1ICFG_html_ab7b0b3088b46ad65451905cc4f567a7b"><div class="ttname"><a href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">SVF::ICFG::getBlockICFGNode</a></div><div class="ttdeci">ICFGNode * getBlockICFGNode(const Instruction *inst)</div><div class="ttdoc">Get a basic block ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00193">ICFG.cpp:193</a></div></div>
|
|
1885
1885
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a44cbdb1231c2709c24d19ad2bae2475a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">SVF::MemSSA::getFunToRetMuSetMap</a></div><div class="ttdeci">FunToReturnMuSetMap & getFunToRetMuSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00420">MemSSA.h:420</a></div></div>
|
|
@@ -2071,8 +2071,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2071
2071
|
</div><!-- fragment -->
|
|
2072
2072
|
</div>
|
|
2073
2073
|
</div>
|
|
2074
|
-
<a id="
|
|
2075
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
2074
|
+
<a id="aefca97f043b3e220ef6012a049b83fdf"></a>
|
|
2075
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aefca97f043b3e220ef6012a049b83fdf">◆ </a></span>connectCallerAndCallee()</h2>
|
|
2076
2076
|
|
|
2077
2077
|
<div class="memitem">
|
|
2078
2078
|
<div class="memproto">
|
|
@@ -2083,7 +2083,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2083
2083
|
<tr>
|
|
2084
2084
|
<td class="memname">void SVFG::connectCallerAndCallee </td>
|
|
2085
2085
|
<td>(</td>
|
|
2086
|
-
<td class="paramtype">const <a class="el" href="
|
|
2086
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
2087
2087
|
<td class="paramname"><em>cs</em>, </td>
|
|
2088
2088
|
</tr>
|
|
2089
2089
|
<tr>
|
|
@@ -2114,28 +2114,28 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2114
2114
|
<p>Connect <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> nodes between caller and callee for indirect call site. </p>
|
|
2115
2115
|
<p>Connect actual params/return to formal params/return for top-level variables. Also connect indirect actual in/out and formal in/out. </p>
|
|
2116
2116
|
|
|
2117
|
-
<p>Reimplemented from <a class="el" href="classSVF_1_1VFG.html#
|
|
2117
|
+
<p>Reimplemented from <a class="el" href="classSVF_1_1VFG.html#aa055ce3c4fe1cde5529cd63dd1ef2ed6">SVF::VFG</a>.</p>
|
|
2118
2118
|
|
|
2119
2119
|
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00641">641</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
2120
|
-
<div class="fragment"><div class="line"><a name="l00642"></a><span class="lineno"> 642</span> {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <a class="code" href="classSVF_1_1VFG.html#
|
|
2120
|
+
<div class="fragment"><div class="line"><a name="l00642"></a><span class="lineno"> 642</span> {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <a class="code" href="classSVF_1_1VFG.html#aa055ce3c4fe1cde5529cd63dd1ef2ed6">VFG::connectCallerAndCallee</a>(cs,callee,edges);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span> </div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1VFG.html#a5f82b3c2e8e6412e2781b960ffa98387">getCallSiteID</a>(cs, callee);</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="comment">// connect actual in and formal in</span></div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a">hasFuncEntryChi</a>(callee) && <a class="code" href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8">hasCallSiteMu</a>(cs))</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <a class="code" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">SVFG::ActualINSVFGNodeSet</a>& actualInNodes = <a class="code" href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">getActualINSVFGNodes</a>(cs);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5">SVFG::FormalINSVFGNodeSet</a>& formalInNodes = <a class="code" href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5">getFormalINSVFGNodes</a>(callee);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">for</span>(SVFG::ActualINSVFGNodeSet::iterator ai_it = actualInNodes.begin(),</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  ai_eit = actualInNodes.end(); ai_it!=ai_eit; ++ai_it)</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  {</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a> * actualIn = SVFUtil::cast<ActualINSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ai_it));</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">for</span>(SVFG::FormalINSVFGNodeSet::iterator fi_it = formalInNodes.begin(),</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  fi_eit = formalInNodes.end(); fi_it!=fi_eit; ++fi_it)</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  {</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* formalIn = SVFUtil::cast<FormalINSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*fi_it));</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <a class="code" href="classSVF_1_1SVFG.html#ac9ab2a95cd7a09bbe4b4aa3e6fafaf62">connectAInAndFIn</a>(actualIn, formalIn, csId, edges);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  }</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  }</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  }</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="comment">// connect actual out and formal out</span></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">hasFuncRetMu</a>(callee) && <a class="code" href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296">hasCallSiteChi</a>(cs))</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  {</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="comment">// connect formal out and actual out</span></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0">SVFG::FormalOUTSVFGNodeSet</a>& formalOutNodes = <a class="code" href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7">getFormalOUTSVFGNodes</a>(callee);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <a class="code" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">SVFG::ActualOUTSVFGNodeSet</a>& actualOutNodes = <a class="code" href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">getActualOUTSVFGNodes</a>(cs);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <span class="keywordflow">for</span>(SVFG::FormalOUTSVFGNodeSet::iterator fo_it = formalOutNodes.begin(),</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  fo_eit = formalOutNodes.end(); fo_it!=fo_eit; ++fo_it)</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  {</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a> * formalOut = SVFUtil::cast<FormalOUTSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*fo_it));</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordflow">for</span>(SVFG::ActualOUTSVFGNodeSet::iterator ao_it = actualOutNodes.begin(),</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  ao_eit = actualOutNodes.end(); ao_it!=ao_eit; ++ao_it)</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  {</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut = SVFUtil::cast<ActualOUTSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ao_it));</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <a class="code" href="classSVF_1_1SVFG.html#a402dfe93b8692be453c4f76d048b690a">connectFOutAndAOut</a>(formalOut, actualOut, csId, edges);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  }</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  }</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span> }</div><div class="ttc" id="classSVF_1_1VFG_html_a5f82b3c2e8e6412e2781b960ffa98387"><div class="ttname"><a href="classSVF_1_1VFG.html#a5f82b3c2e8e6412e2781b960ffa98387">SVF::VFG::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *func) const</div><div class="ttdoc">Get callsite given a callsiteID. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00178">VFG.h:178</a></div></div>
|
|
2121
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a8859409373454b6b3d1252776e169cf5"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5">SVF::SVFG::FormalINSVFGNodeSet</a></div><div class="ttdeci">NodeBS FormalINSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00080">SVFG.h:80</a></div></div>
|
|
2121
2122
|
<div class="ttc" id="classSVF_1_1FormalOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalOUTSVFGNode.html">SVF::FormalOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00135">SVFGNode.h:135</a></div></div>
|
|
2122
|
-
<div class="ttc" id="classSVF_1_1SVFG_html_ab767c329e7fccf9efe16818515199d65"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab767c329e7fccf9efe16818515199d65">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet & getActualINSVFGNodes(const CallBlockNode *cs)</div><div class="ttdoc">Get SVFGNode set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
|
|
2123
2123
|
<div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00150">SVFG.h:150</a></div></div>
|
|
2124
2124
|
<div class="ttc" id="classSVF_1_1ActualOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualOUTSVFGNode.html">SVF::ActualOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00226">SVFGNode.h:226</a></div></div>
|
|
2125
2125
|
<div class="ttc" id="classSVF_1_1SVFG_html_aa9f520779475e4783eccc45c460e346a"><div class="ttname"><a href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">SVF::SVFG::ActualINSVFGNodeSet</a></div><div class="ttdeci">NodeBS ActualINSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00078">SVFG.h:78</a></div></div>
|
|
2126
2126
|
<div class="ttc" id="classSVF_1_1ActualINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualINSVFGNode.html">SVF::ActualINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00177">SVFGNode.h:177</a></div></div>
|
|
2127
|
-
<div class="ttc" id="
|
|
2128
|
-
<div class="ttc" id="
|
|
2127
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a5b7ae610bee28acc2905ca82928e714f"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">SVF::SVFG::getActualOUTSVFGNodes</a></div><div class="ttdeci">ActualOUTSVFGNodeSet & getActualOUTSVFGNodes(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00214">SVFG.h:214</a></div></div>
|
|
2128
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a475205e221890204c7770c414ee63975"><div class="ttname"><a href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet & getActualINSVFGNodes(const CallICFGNode *cs)</div><div class="ttdoc">Get SVFGNode set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
|
|
2129
2129
|
<div class="ttc" id="classSVF_1_1SVFG_html_a9d0714075d6071c26d26cf16c4dec7c5"><div class="ttname"><a href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5">SVF::SVFG::getFormalINSVFGNodes</a></div><div class="ttdeci">FormalINSVFGNodeSet & getFormalINSVFGNodes(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00219">SVFG.h:219</a></div></div>
|
|
2130
2130
|
<div class="ttc" id="classSVF_1_1SVFG_html_a287c337697eed7d92889bca0a0e370d7"><div class="ttname"><a href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7">SVF::SVFG::getFormalOUTSVFGNodes</a></div><div class="ttdeci">FormalOUTSVFGNodeSet & getFormalOUTSVFGNodes(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00224">SVFG.h:224</a></div></div>
|
|
2131
2131
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
|
|
2132
|
-
<div class="ttc" id="classSVF_1_1VFG_html_a9bc8e7ee74b652ed7708e95c16a63728"><div class="ttname"><a href="classSVF_1_1VFG.html#a9bc8e7ee74b652ed7708e95c16a63728">SVF::VFG::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallBlockNode *cs, const SVFFunction *func) const</div><div class="ttdoc">Get callsite given a callsiteID. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00178">VFG.h:178</a></div></div>
|
|
2133
|
-
<div class="ttc" id="classSVF_1_1SVFG_html_afca91771a622290586bfa941132c322e"><div class="ttname"><a href="classSVF_1_1SVFG.html#afca91771a622290586bfa941132c322e">SVF::SVFG::hasCallSiteMu</a></div><div class="ttdeci">bool hasCallSiteMu(const CallBlockNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00455">SVFG.h:455</a></div></div>
|
|
2134
2132
|
<div class="ttc" id="classSVF_1_1SVFG_html_a32378226c18a0b1e22271a2338a635f6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">SVF::SVFG::hasFuncRetMu</a></div><div class="ttdeci">bool hasFuncRetMu(const SVFFunction *func) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00447">SVFG.h:447</a></div></div>
|
|
2135
2133
|
<div class="ttc" id="classSVF_1_1SVFG_html_a23ca21b90feca5e7d00c9ba9f489374a"><div class="ttname"><a href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a">SVF::SVFG::hasFuncEntryChi</a></div><div class="ttdeci">bool hasFuncEntryChi(const SVFFunction *func) const</div><div class="ttdoc">Has function for EntryCHI/RetMU/CallCHI/CallMU. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00443">SVFG.h:443</a></div></div>
|
|
2136
2134
|
<div class="ttc" id="classSVF_1_1SVFG_html_a2f6ed8a9f14657abc1e2a89247a84b99"><div class="ttname"><a href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">SVF::SVFG::ActualOUTSVFGNodeSet</a></div><div class="ttdeci">NodeBS ActualOUTSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00079">SVFG.h:79</a></div></div>
|
|
2135
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_ad9cc1581261182b56ae232d9a9b13296"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296">SVF::SVFG::hasCallSiteChi</a></div><div class="ttdeci">bool hasCallSiteChi(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00451">SVFG.h:451</a></div></div>
|
|
2137
2136
|
<div class="ttc" id="classSVF_1_1SVFG_html_a402dfe93b8692be453c4f76d048b690a"><div class="ttname"><a href="classSVF_1_1SVFG.html#a402dfe93b8692be453c4f76d048b690a">SVF::SVFG::connectFOutAndAOut</a></div><div class="ttdeci">virtual void connectFOutAndAOut(const FormalOUTSVFGNode *formalOut, const ActualOUTSVFGNode *actualOut, CallSiteID csId, SVFGEdgeSetTy &edges)</div><div class="ttdoc">Connect formal-out and actual-out. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00294">SVFG.h:294</a></div></div>
|
|
2138
|
-
<div class="ttc" id="
|
|
2137
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a842f6f2325c9e93ea96367e9cf624ee8"><div class="ttname"><a href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8">SVF::SVFG::hasCallSiteMu</a></div><div class="ttdeci">bool hasCallSiteMu(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00455">SVFG.h:455</a></div></div>
|
|
2138
|
+
<div class="ttc" id="classSVF_1_1VFG_html_aa055ce3c4fe1cde5529cd63dd1ef2ed6"><div class="ttname"><a href="classSVF_1_1VFG.html#aa055ce3c4fe1cde5529cd63dd1ef2ed6">SVF::VFG::connectCallerAndCallee</a></div><div class="ttdeci">virtual void connectCallerAndCallee(const CallICFGNode *cs, const SVFFunction *callee, VFGEdgeSetTy &edges)</div><div class="ttdoc">Connect VFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00818">VFG.cpp:818</a></div></div>
|
|
2139
2139
|
<div class="ttc" id="classSVF_1_1SVFG_html_acb7262c3b9161c77eb1b491048152fb0"><div class="ttname"><a href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0">SVF::SVFG::FormalOUTSVFGNodeSet</a></div><div class="ttdeci">NodeBS FormalOUTSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00081">SVFG.h:81</a></div></div>
|
|
2140
2140
|
<div class="ttc" id="classSVF_1_1FormalINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalINSVFGNode.html">SVF::FormalINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00090">SVFGNode.h:90</a></div></div>
|
|
2141
2141
|
<div class="ttc" id="classSVF_1_1SVFG_html_ac9ab2a95cd7a09bbe4b4aa3e6fafaf62"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac9ab2a95cd7a09bbe4b4aa3e6fafaf62">SVF::SVFG::connectAInAndFIn</a></div><div class="ttdeci">virtual void connectAInAndFIn(const ActualINSVFGNode *actualIn, const FormalINSVFGNode *formalIn, CallSiteID csId, SVFGEdgeSetTy &edges)</div><div class="ttdoc">Connect SVFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00287">SVFG.h:287</a></div></div>
|
|
@@ -2273,44 +2273,44 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2273
2273
|
<p>There's no need to connect actual out node to its definition site in the same function. </p>
|
|
2274
2274
|
|
|
2275
2275
|
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00292">292</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
2276
|
-
<div class="fragment"><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">iterator</a> it = <a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = it->first;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it->second;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* loadNode = SVFUtil::dyn_cast<LoadSVFGNode>(node))</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="classSVF_1_1SVFG.html#acdbe1c510273107b708935061b6c4127">MUSet</a>& muSet = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(SVFUtil::cast<LoadStmt>(loadNode->getPAGEdge()));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">for</span>(MUSet::iterator it = muSet.begin(), eit = muSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFG.html#a86d4a41a881a3d2e5def103d7ba8bb2f">LOADMU</a>* mu = SVFUtil::dyn_cast<LOADMU>(*it))</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(mu->getMRVer());</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, mu->getMRVer()->getMR()->getPointsTo());</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* storeNode = SVFUtil::dyn_cast<StoreSVFGNode>(node))</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="classSVF_1_1SVFG.html#a8843ab4a4608f7f5f46f68ad31314c07">CHISet</a>& chiSet = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(SVFUtil::cast<StoreStmt>(storeNode->getPAGEdge()));</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">for</span>(CHISet::iterator it = chiSet.begin(), eit = chiSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b">STORECHI</a>* chi = SVFUtil::dyn_cast<STORECHI>(*it))</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(chi->getOpVer());</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, chi->getOpVer()->getMR()->getPointsTo());</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* formalIn = SVFUtil::dyn_cast<FormalINSVFGNode>(node))</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="classSVF_1_1PTACallGraphEdge.html#aca11d1b778309a72e9d345bd02324459">PTACallGraphEdge::CallInstSet</a> callInstSet;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a0d2544130cc2cdc3ac418c975c278eb2">getDirCallSitesInvokingCallee</a>(formalIn->getFun(),callInstSet);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::iterator it = callInstSet.begin(), eit = callInstSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = *it;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">if</span>(!<a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">hasMU</a>(cs))</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">ActualINSVFGNodeSet</a>& actualIns = <a class="code" href="classSVF_1_1SVFG.html#ab767c329e7fccf9efe16818515199d65">getActualINSVFGNodes</a>(cs);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">for</span>(ActualINSVFGNodeSet::iterator ait = actualIns.begin(), aeit = actualIns.end(); ait!=aeit; ++ait)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* actualIn = SVFUtil::cast<ActualINSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ait));</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">addInterIndirectVFCallEdge</a>(actualIn,formalIn,<a class="code" href="classSVF_1_1VFG.html#a9bc8e7ee74b652ed7708e95c16a63728">getCallSiteID</a>(cs, formalIn-><a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()));</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* formalOut = SVFUtil::dyn_cast<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="classSVF_1_1PTACallGraphEdge.html#aca11d1b778309a72e9d345bd02324459">PTACallGraphEdge::CallInstSet</a> callInstSet;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">// const MemSSA::RETMU* retMu = formalOut->getRetMU();</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a0d2544130cc2cdc3ac418c975c278eb2">getDirCallSitesInvokingCallee</a>(formalOut->getFun(),callInstSet);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::iterator it = callInstSet.begin(), eit = callInstSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = *it;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">if</span>(!<a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1">hasCHI</a>(cs))</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">ActualOUTSVFGNodeSet</a>& actualOuts = <a class="code" href="classSVF_1_1SVFG.html#af0c86a9e83a1f2427dd8e80287be37ed">getActualOUTSVFGNodes</a>(cs);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">for</span>(ActualOUTSVFGNodeSet::iterator ait = actualOuts.begin(), aeit = actualOuts.end(); ait!=aeit; ++ait)</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut = SVFUtil::cast<ActualOUTSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ait));</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">addInterIndirectVFRetEdge</a>(formalOut,actualOut,<a class="code" href="classSVF_1_1VFG.html#a9bc8e7ee74b652ed7708e95c16a63728">getCallSiteID</a>(cs, formalOut-><a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()));</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(formalOut->getMRVer());</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, formalOut->getMRVer()->getMR()->getPointsTo());</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* actualIn = SVFUtil::dyn_cast<ActualINSVFGNode>(node))</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* ver = actualIn->getMRVer();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(ver);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, ver-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a1e5befaa1a46943e101b33adaf141ca1">getPointsTo</a>());</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  }</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* phiNode = SVFUtil::dyn_cast<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">for</span> (MemSSA::PHI::OPVers::const_iterator it = phiNode->opVerBegin(), eit = phiNode->opVerEnd();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  it != eit; it++)</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* op = it->second;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(op);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, op-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a1e5befaa1a46943e101b33adaf141ca1">getPointsTo</a>());</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  }</div><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>  }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="classSVF_1_1SVFG.html#a5921483cd5e1bf77b1b2bc8fb3250612">connectFromGlobalToProgEntry</a>();</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> }</div><div class="ttc" id="classSVF_1_1MRVer_html"><div class="ttname"><a href="classSVF_1_1MRVer.html">SVF::MRVer</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00043">MSSAMuChi.h:43</a></div></div>
|
|
2276
|
+
<div class="fragment"><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">iterator</a> it = <a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = it->first;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it->second;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* loadNode = SVFUtil::dyn_cast<LoadSVFGNode>(node))</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="classSVF_1_1SVFG.html#acdbe1c510273107b708935061b6c4127">MUSet</a>& muSet = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(SVFUtil::cast<LoadStmt>(loadNode->getPAGEdge()));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">for</span>(MUSet::iterator it = muSet.begin(), eit = muSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFG.html#a86d4a41a881a3d2e5def103d7ba8bb2f">LOADMU</a>* mu = SVFUtil::dyn_cast<LOADMU>(*it))</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(mu->getMRVer());</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, mu->getMRVer()->getMR()->getPointsTo());</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* storeNode = SVFUtil::dyn_cast<StoreSVFGNode>(node))</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="classSVF_1_1SVFG.html#a8843ab4a4608f7f5f46f68ad31314c07">CHISet</a>& chiSet = <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(SVFUtil::cast<StoreStmt>(storeNode->getPAGEdge()));</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">for</span>(CHISet::iterator it = chiSet.begin(), eit = chiSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b">STORECHI</a>* chi = SVFUtil::dyn_cast<STORECHI>(*it))</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(chi->getOpVer());</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, chi->getOpVer()->getMR()->getPointsTo());</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* formalIn = SVFUtil::dyn_cast<FormalINSVFGNode>(node))</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="classSVF_1_1PTACallGraphEdge.html#adbedb15ac0f9395c5264f087a63bad3b">PTACallGraphEdge::CallInstSet</a> callInstSet;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a0d2544130cc2cdc3ac418c975c278eb2">getDirCallSitesInvokingCallee</a>(formalIn->getFun(),callInstSet);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::iterator it = callInstSet.begin(), eit = callInstSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = *it;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">if</span>(!<a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">hasMU</a>(cs))</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">ActualINSVFGNodeSet</a>& actualIns = <a class="code" href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">getActualINSVFGNodes</a>(cs);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">for</span>(ActualINSVFGNodeSet::iterator ait = actualIns.begin(), aeit = actualIns.end(); ait!=aeit; ++ait)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* actualIn = SVFUtil::cast<ActualINSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ait));</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">addInterIndirectVFCallEdge</a>(actualIn,formalIn,<a class="code" href="classSVF_1_1VFG.html#a5f82b3c2e8e6412e2781b960ffa98387">getCallSiteID</a>(cs, formalIn-><a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()));</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* formalOut = SVFUtil::dyn_cast<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="classSVF_1_1PTACallGraphEdge.html#adbedb15ac0f9395c5264f087a63bad3b">PTACallGraphEdge::CallInstSet</a> callInstSet;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">// const MemSSA::RETMU* retMu = formalOut->getRetMU();</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a0d2544130cc2cdc3ac418c975c278eb2">getDirCallSitesInvokingCallee</a>(formalOut->getFun(),callInstSet);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::iterator it = callInstSet.begin(), eit = callInstSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = *it;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">if</span>(!<a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1">hasCHI</a>(cs))</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">ActualOUTSVFGNodeSet</a>& actualOuts = <a class="code" href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">getActualOUTSVFGNodes</a>(cs);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">for</span>(ActualOUTSVFGNodeSet::iterator ait = actualOuts.begin(), aeit = actualOuts.end(); ait!=aeit; ++ait)</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut = SVFUtil::cast<ActualOUTSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ait));</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">addInterIndirectVFRetEdge</a>(formalOut,actualOut,<a class="code" href="classSVF_1_1VFG.html#a5f82b3c2e8e6412e2781b960ffa98387">getCallSiteID</a>(cs, formalOut-><a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()));</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(formalOut->getMRVer());</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, formalOut->getMRVer()->getMR()->getPointsTo());</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* actualIn = SVFUtil::dyn_cast<ActualINSVFGNode>(node))</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* ver = actualIn->getMRVer();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(ver);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, ver-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a1e5befaa1a46943e101b33adaf141ca1">getPointsTo</a>());</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  }</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* phiNode = SVFUtil::dyn_cast<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">for</span> (MemSSA::PHI::OPVers::const_iterator it = phiNode->opVerBegin(), eit = phiNode->opVerEnd();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  it != eit; it++)</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* op = it->second;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> def = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(op);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(def,nodeId, op-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a1e5befaa1a46943e101b33adaf141ca1">getPointsTo</a>());</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  }</div><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>  }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="classSVF_1_1SVFG.html#a5921483cd5e1bf77b1b2bc8fb3250612">connectFromGlobalToProgEntry</a>();</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> }</div><div class="ttc" id="classSVF_1_1MRVer_html"><div class="ttname"><a href="classSVF_1_1MRVer.html">SVF::MRVer</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00043">MSSAMuChi.h:43</a></div></div>
|
|
2277
2277
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a2e656a50f8964fc3e99d1d436de64418"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">SVF::MemSSA::getCHISet</a></div><div class="ttdeci">CHISet & getCHISet(const StoreStmt *st)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00392">MemSSA.h:392</a></div></div>
|
|
2278
2278
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
|
|
2279
2279
|
<div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00235">VFGNode.h:235</a></div></div>
|
|
2280
2280
|
<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>
|
|
2281
2281
|
<div class="ttc" id="classSVF_1_1SVFG_html_acdbe1c510273107b708935061b6c4127"><div class="ttname"><a href="classSVF_1_1SVFG.html#acdbe1c510273107b708935061b6c4127">SVF::SVFG::MUSet</a></div><div class="ttdeci">MemSSA::MUSet MUSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00086">SVFG.h:86</a></div></div>
|
|
2282
|
+
<div class="ttc" id="classSVF_1_1VFG_html_a5f82b3c2e8e6412e2781b960ffa98387"><div class="ttname"><a href="classSVF_1_1VFG.html#a5f82b3c2e8e6412e2781b960ffa98387">SVF::VFG::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *func) const</div><div class="ttdoc">Get callsite given a callsiteID. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00178">VFG.h:178</a></div></div>
|
|
2282
2283
|
<div class="ttc" id="classSVF_1_1SVFG_html_a5921483cd5e1bf77b1b2bc8fb3250612"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5921483cd5e1bf77b1b2bc8fb3250612">SVF::SVFG::connectFromGlobalToProgEntry</a></div><div class="ttdeci">void connectFromGlobalToProgEntry()</div><div class="ttdoc">Connect indirect SVFG edges from global initializers (store) to main function entry. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00390">SVFG.cpp:390</a></div></div>
|
|
2283
2284
|
<div class="ttc" id="classSVF_1_1SVFG_html_a86d4a41a881a3d2e5def103d7ba8bb2f"><div class="ttname"><a href="classSVF_1_1SVFG.html#a86d4a41a881a3d2e5def103d7ba8bb2f">SVF::SVFG::LOADMU</a></div><div class="ttdeci">MemSSA::LOADMU LOADMU</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00091">SVFG.h:91</a></div></div>
|
|
2284
2285
|
<div class="ttc" id="classSVF_1_1FormalOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalOUTSVFGNode.html">SVF::FormalOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00135">SVFGNode.h:135</a></div></div>
|
|
2285
|
-
<div class="ttc" id="classSVF_1_1SVFG_html_ab767c329e7fccf9efe16818515199d65"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab767c329e7fccf9efe16818515199d65">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet & getActualINSVFGNodes(const CallBlockNode *cs)</div><div class="ttdoc">Get SVFGNode set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
|
|
2286
2286
|
<div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00150">SVFG.h:150</a></div></div>
|
|
2287
2287
|
<div class="ttc" id="classSVF_1_1ActualOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualOUTSVFGNode.html">SVF::ActualOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00226">SVFGNode.h:226</a></div></div>
|
|
2288
2288
|
<div class="ttc" id="classSVF_1_1ICFGNode_html_ae526280cca2d6cbb2868c80461bc16da"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">SVF::ICFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Return the function of this ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00080">ICFGNode.h:80</a></div></div>
|
|
2289
2289
|
<div class="ttc" id="classSVF_1_1MSSAPHISVFGNode_html"><div class="ttname"><a href="classSVF_1_1MSSAPHISVFGNode.html">SVF::MSSAPHISVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00273">SVFGNode.h:273</a></div></div>
|
|
2290
2290
|
<div class="ttc" id="classSVF_1_1SVFG_html_aa9f520779475e4783eccc45c460e346a"><div class="ttname"><a href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">SVF::SVFG::ActualINSVFGNodeSet</a></div><div class="ttdeci">NodeBS ActualINSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00078">SVFG.h:78</a></div></div>
|
|
2291
2291
|
<div class="ttc" id="classSVF_1_1ActualINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualINSVFGNode.html">SVF::ActualINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00177">SVFGNode.h:177</a></div></div>
|
|
2292
|
+
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_adbedb15ac0f9395c5264f087a63bad3b"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#adbedb15ac0f9395c5264f087a63bad3b">SVF::PTACallGraphEdge::CallInstSet</a></div><div class="ttdeci">Set< const CallICFGNode * > CallInstSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00055">PTACallGraph.h:55</a></div></div>
|
|
2292
2293
|
<div class="ttc" id="classSVF_1_1MemSSA_html_af4d11a0c7da0ddd7dff8d75a00279847"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">SVF::MemSSA::getMUSet</a></div><div class="ttdeci">MUSet & getMUSet(const LoadStmt *ld)</div><div class="ttdoc">Get methods of mu/chi/phi. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00388">MemSSA.h:388</a></div></div>
|
|
2294
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a5b7ae610bee28acc2905ca82928e714f"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">SVF::SVFG::getActualOUTSVFGNodes</a></div><div class="ttdeci">ActualOUTSVFGNodeSet & getActualOUTSVFGNodes(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00214">SVFG.h:214</a></div></div>
|
|
2293
2295
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
2294
2296
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00178">PointerAnalysis.h:178</a></div></div>
|
|
2295
2297
|
<div class="ttc" id="classSVF_1_1VFG_html_a241d0489bf0315460e2b07db87e7847c"><div class="ttname"><a href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">SVF::VFG::iterator</a></div><div class="ttdeci">VFGNodeIDToNodeMapTy::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00080">VFG.h:80</a></div></div>
|
|
2296
|
-
<div class="ttc" id="
|
|
2298
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a475205e221890204c7770c414ee63975"><div class="ttname"><a href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet & getActualINSVFGNodes(const CallICFGNode *cs)</div><div class="ttdoc">Get SVFGNode set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
|
|
2297
2299
|
<div class="ttc" id="classSVF_1_1MemSSA_html_af5e356e82c3f93b65bd89908e0f465dc"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">SVF::MemSSA::hasMU</a></div><div class="ttdeci">bool hasMU(const PAGEdge *inst) const</div><div class="ttdoc">Has mu/chi methods. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00332">MemSSA.h:332</a></div></div>
|
|
2298
2300
|
<div class="ttc" id="classSVF_1_1SVFG_html_a57629591037e16e57a0178d102a405f2"><div class="ttname"><a href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">SVF::SVFG::addInterIndirectVFCallEdge</a></div><div class="ttdeci">SVFGEdge * addInterIndirectVFCallEdge(const ActualINSVFGNode *src, const FormalINSVFGNode *dst, CallSiteID csId)</div><div class="ttdoc">Add inter VF edge from callsite mu to function entry chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00509">SVFG.cpp:509</a></div></div>
|
|
2299
|
-
<div class="ttc" id="classSVF_1_1VFG_html_a9bc8e7ee74b652ed7708e95c16a63728"><div class="ttname"><a href="classSVF_1_1VFG.html#a9bc8e7ee74b652ed7708e95c16a63728">SVF::VFG::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallBlockNode *cs, const SVFFunction *func) const</div><div class="ttdoc">Get callsite given a callsiteID. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00178">VFG.h:178</a></div></div>
|
|
2300
2301
|
<div class="ttc" id="classSVF_1_1LoadVFGNode_html"><div class="ttname"><a href="classSVF_1_1LoadVFGNode.html">SVF::LoadVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00196">VFGNode.h:196</a></div></div>
|
|
2301
2302
|
<div class="ttc" id="classSVF_1_1SVFG_html_ac9666ae7266cf1a9c0a5f7d28b39d1e9"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">SVF::SVFG::addInterIndirectVFRetEdge</a></div><div class="ttdeci">SVFGEdge * addInterIndirectVFRetEdge(const FormalOUTSVFGNode *src, const ActualOUTSVFGNode *dst, CallSiteID csId)</div><div class="ttdoc">Add inter VF edge from function exit mu to callsite chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00524">SVFG.cpp:524</a></div></div>
|
|
2302
2303
|
<div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00350">SVFG.h:350</a></div></div>
|
|
2303
2304
|
<div class="ttc" id="classSVF_1_1MRVer_html_a63bd0641be553860cc5f517634b65825"><div class="ttname"><a href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">SVF::MRVer::getMR</a></div><div class="ttdeci">const MemRegion * getMR() const</div><div class="ttdoc">Return the memory region. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00063">MSSAMuChi.h:63</a></div></div>
|
|
2304
2305
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a0d2544130cc2cdc3ac418c975c278eb2"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a0d2544130cc2cdc3ac418c975c278eb2">SVF::PTACallGraph::getDirCallSitesInvokingCallee</a></div><div class="ttdeci">void getDirCallSitesInvokingCallee(const SVFFunction *callee, PTACallGraphEdge::CallInstSet &csSet)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00229">PTACallGraph.cpp:229</a></div></div>
|
|
2305
2306
|
<div class="ttc" id="classSVF_1_1SVFG_html_a2f6ed8a9f14657abc1e2a89247a84b99"><div class="ttname"><a href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">SVF::SVFG::ActualOUTSVFGNodeSet</a></div><div class="ttdeci">NodeBS ActualOUTSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00079">SVFG.h:79</a></div></div>
|
|
2307
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
2306
2308
|
<div class="ttc" id="classSVF_1_1MemRegion_html_a1e5befaa1a46943e101b33adaf141ca1"><div class="ttname"><a href="classSVF_1_1MemRegion.html#a1e5befaa1a46943e101b33adaf141ca1">SVF::MemRegion::getPointsTo</a></div><div class="ttdeci">const NodeBS & getPointsTo() const</div><div class="ttdoc">Return points-to. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00079">MemRegion.h:79</a></div></div>
|
|
2307
2309
|
<div class="ttc" id="classSVF_1_1SVFG_html_ad14cdbb3f1df1f716aa03b4d39f4e52b"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b">SVF::SVFG::STORECHI</a></div><div class="ttdeci">MemSSA::STORECHI STORECHI</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00092">SVFG.h:92</a></div></div>
|
|
2308
2310
|
<div class="ttc" id="classSVF_1_1SVFG_html_a6f07410ee34e4bf1079e3b5902c81d28"><div class="ttname"><a href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">SVF::SVFG::mssa</a></div><div class="ttdeci">MemSSA * mssa</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00105">SVFG.h:105</a></div></div>
|
|
2309
2311
|
<div class="ttc" id="classSVF_1_1SVFG_html_a8843ab4a4608f7f5f46f68ad31314c07"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8843ab4a4608f7f5f46f68ad31314c07">SVF::SVFG::CHISet</a></div><div class="ttdeci">MemSSA::CHISet CHISet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00087">SVFG.h:87</a></div></div>
|
|
2310
2312
|
<div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00427">SVFG.cpp:427</a></div></div>
|
|
2311
2313
|
<div class="ttc" id="classSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00315">MemSSA.h:315</a></div></div>
|
|
2312
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
2313
|
-
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_aca11d1b778309a72e9d345bd02324459"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#aca11d1b778309a72e9d345bd02324459">SVF::PTACallGraphEdge::CallInstSet</a></div><div class="ttdeci">Set< const CallBlockNode * > CallInstSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00055">PTACallGraph.h:55</a></div></div>
|
|
2314
2314
|
<div class="ttc" id="classSVF_1_1FormalINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalINSVFGNode.html">SVF::FormalINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00090">SVFGNode.h:90</a></div></div>
|
|
2315
2315
|
<div class="ttc" id="classSVF_1_1MemSSA_html_abfb338ce36ad46a9654d50dd6e2b07f1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1">SVF::MemSSA::hasCHI</a></div><div class="ttdeci">bool hasCHI(const PAGEdge *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00343">MemSSA.h:343</a></div></div>
|
|
2316
2316
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
@@ -2416,8 +2416,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2416
2416
|
</div><!-- fragment -->
|
|
2417
2417
|
</div>
|
|
2418
2418
|
</div>
|
|
2419
|
-
<a id="
|
|
2420
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
2419
|
+
<a id="a475205e221890204c7770c414ee63975"></a>
|
|
2420
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a475205e221890204c7770c414ee63975">◆ </a></span>getActualINSVFGNodes()</h2>
|
|
2421
2421
|
|
|
2422
2422
|
<div class="memitem">
|
|
2423
2423
|
<div class="memproto">
|
|
@@ -2428,7 +2428,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2428
2428
|
<tr>
|
|
2429
2429
|
<td class="memname"><a class="el" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">ActualINSVFGNodeSet</a>& SVF::SVFG::getActualINSVFGNodes </td>
|
|
2430
2430
|
<td>(</td>
|
|
2431
|
-
<td class="paramtype">const <a class="el" href="
|
|
2431
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
2432
2432
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
2433
2433
|
<td></td>
|
|
2434
2434
|
</tr>
|
|
@@ -2447,8 +2447,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2447
2447
|
</div><!-- fragment -->
|
|
2448
2448
|
</div>
|
|
2449
2449
|
</div>
|
|
2450
|
-
<a id="
|
|
2451
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
2450
|
+
<a id="a5b7ae610bee28acc2905ca82928e714f"></a>
|
|
2451
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a5b7ae610bee28acc2905ca82928e714f">◆ </a></span>getActualOUTSVFGNodes()</h2>
|
|
2452
2452
|
|
|
2453
2453
|
<div class="memitem">
|
|
2454
2454
|
<div class="memproto">
|
|
@@ -2459,7 +2459,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2459
2459
|
<tr>
|
|
2460
2460
|
<td class="memname"><a class="el" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">ActualOUTSVFGNodeSet</a>& SVF::SVFG::getActualOUTSVFGNodes </td>
|
|
2461
2461
|
<td>(</td>
|
|
2462
|
-
<td class="paramtype">const <a class="el" href="
|
|
2462
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
2463
2463
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
2464
2464
|
<td></td>
|
|
2465
2465
|
</tr>
|
|
@@ -2671,8 +2671,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2671
2671
|
</div><!-- fragment -->
|
|
2672
2672
|
</div>
|
|
2673
2673
|
</div>
|
|
2674
|
-
<a id="
|
|
2675
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
2674
|
+
<a id="ac1acdf7bc468d7734359591e45f485fe"></a>
|
|
2675
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ac1acdf7bc468d7734359591e45f485fe">◆ </a></span>getInterVFEdgeAtIndCSFromAPToFP()</h2>
|
|
2676
2676
|
|
|
2677
2677
|
<div class="memitem">
|
|
2678
2678
|
<div class="memproto">
|
|
@@ -2695,7 +2695,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2695
2695
|
<tr>
|
|
2696
2696
|
<td class="paramkey"></td>
|
|
2697
2697
|
<td></td>
|
|
2698
|
-
<td class="paramtype">const <a class="el" href="
|
|
2698
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
2699
2699
|
<td class="paramname">, </td>
|
|
2700
2700
|
</tr>
|
|
2701
2701
|
<tr>
|
|
@@ -2839,8 +2839,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2839
2839
|
</div><!-- fragment -->
|
|
2840
2840
|
</div>
|
|
2841
2841
|
</div>
|
|
2842
|
-
<a id="
|
|
2843
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
2842
|
+
<a id="a49fc2c505720d5cfa57231529d1c7534"></a>
|
|
2843
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a49fc2c505720d5cfa57231529d1c7534">◆ </a></span>getInterVFEdgesForIndirectCallSite()</h2>
|
|
2844
2844
|
|
|
2845
2845
|
<div class="memitem">
|
|
2846
2846
|
<div class="memproto">
|
|
@@ -2848,7 +2848,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2848
2848
|
<tr>
|
|
2849
2849
|
<td class="memname">void SVFG::getInterVFEdgesForIndirectCallSite </td>
|
|
2850
2850
|
<td>(</td>
|
|
2851
|
-
<td class="paramtype">const <a class="el" href="
|
|
2851
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
2852
2852
|
<td class="paramname"><em>callBlockNode</em>, </td>
|
|
2853
2853
|
</tr>
|
|
2854
2854
|
<tr>
|
|
@@ -2875,25 +2875,25 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2875
2875
|
<p>Get all inter value flow edges at this indirect call site, including call and return edges. </p>
|
|
2876
2876
|
|
|
2877
2877
|
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00567">567</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
2878
|
-
<div class="fragment"><div class="line"><a name="l00568"></a><span class="lineno"> 568</span> {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1VFG.html#a9bc8e7ee74b652ed7708e95c16a63728">getCallSiteID</a>(callBlockNode, callee);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* retBlockNode = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">getRetBlockNode</a>(callBlockNode-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="comment">// Find inter direct call edges between actual param and formal param.</span></div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2a4185af81e7e10f0db74c39ee220101">hasCallSiteArgsMap</a>(callBlockNode) && <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410">hasFunArgsList</a>(callee))</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFIR::SVFVarList</a>& csArgList = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#ac7f90610a7b5f456c530a4419393fae5">getCallSiteArgsList</a>(callBlockNode);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFIR::SVFVarList</a>& funArgList = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a">getFunArgsList</a>(callee);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  SVFIR::SVFVarList::const_iterator csArgIt = csArgList.begin(), csArgEit = csArgList.end();</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  SVFIR::SVFVarList::const_iterator funArgIt = funArgList.begin(), funArgEit = funArgList.end();</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">for</span> (; funArgIt != funArgEit && csArgIt != csArgEit; funArgIt++, csArgIt++)</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *fun_arg = *funArgIt;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">if</span> (fun_arg-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>() && cs_arg-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <a class="code" href="classSVF_1_1SVFG.html#a9b133773dae3e7c613516ba16cfdfa2c">getInterVFEdgeAtIndCSFromAPToFP</a>(cs_arg, fun_arg, callBlockNode, csId, edges);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(funArgIt == funArgEit && <span class="stringliteral">"function has more arguments than call site"</span>);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">if</span> (callee-><a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()->isVarArg())</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> varFunArg = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(callee);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* varFunArgNode = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varFunArg);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">if</span> (varFunArgNode-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">for</span> (; csArgIt != csArgEit; csArgIt++)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">if</span> (cs_arg-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classSVF_1_1SVFG.html#a9b133773dae3e7c613516ba16cfdfa2c">getInterVFEdgeAtIndCSFromAPToFP</a>(cs_arg, varFunArgNode, callBlockNode, csId, edges);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  }</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  }</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="comment">// Find inter direct return edges between actual return and formal return.</span></div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#afe8274c3b7317fccef5314662a182046">funHasRet</a>(callee) && <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a170bef1e9a07ce0449faf66706ae6e61">callsiteHasRet</a>(retBlockNode))</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a70aa4d730ef1d38ef9c46f5014465bdd">getCallSiteRet</a>(retBlockNode);</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">getFunRet</a>(callee);</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">if</span> (cs_return-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>() && fun_return-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <a class="code" href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">getInterVFEdgeAtIndCSFromFRToAR</a>(fun_return, cs_return, csId, edges);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  }</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span> </div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="comment">// Find inter indirect call edges between actual-in and formal-in svfg nodes.</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a">hasFuncEntryChi</a>(callee) && <a class="code" href="classSVF_1_1SVFG.html#afca91771a622290586bfa941132c322e">hasCallSiteMu</a>(callBlockNode))</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <a class="code" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">SVFG::ActualINSVFGNodeSet</a>& actualInNodes = <a class="code" href="classSVF_1_1SVFG.html#ab767c329e7fccf9efe16818515199d65">getActualINSVFGNodes</a>(callBlockNode);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordflow">for</span>(SVFG::ActualINSVFGNodeSet::iterator ai_it = actualInNodes.begin(),</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  ai_eit = actualInNodes.end(); ai_it!=ai_eit; ++ai_it)</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a> * actualIn = SVFUtil::cast<ActualINSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ai_it));</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <a class="code" href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782">getInterVFEdgeAtIndCSFromAInToFIn</a>(actualIn, callee, edges);</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  }</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="comment">// Find inter indirect return edges between actual-out and formal-out svfg nodes.</span></div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">hasFuncRetMu</a>(callee) && <a class="code" href="classSVF_1_1SVFG.html#a1027dcf25e914377e02885b786d00edc">hasCallSiteChi</a>(callBlockNode))</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <a class="code" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">SVFG::ActualOUTSVFGNodeSet</a>& actualOutNodes = <a class="code" href="classSVF_1_1SVFG.html#af0c86a9e83a1f2427dd8e80287be37ed">getActualOUTSVFGNodes</a>(callBlockNode);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">for</span>(SVFG::ActualOUTSVFGNodeSet::iterator ao_it = actualOutNodes.begin(),</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  ao_eit = actualOutNodes.end(); ao_it!=ao_eit; ++ao_it)</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut = SVFUtil::cast<ActualOUTSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ao_it));</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <a class="code" href="classSVF_1_1SVFG.html#a7a88391e0c2cf8a57238dec32c2474a3">getInterVFEdgeAtIndCSFromFOutToAOut</a>(actualOut, callee, edges);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  }</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  }</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span> }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a64939d7ecfd8e2cf862782954a56596b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVF::SVFIR::SVFVarList</a></div><div class="ttdeci">std::vector< const SVFVar * > SVFVarList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00057">SVFIR.h:57</a></div></div>
|
|
2878
|
+
<div class="fragment"><div class="line"><a name="l00568"></a><span class="lineno"> 568</span> {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1VFG.html#a5f82b3c2e8e6412e2781b960ffa98387">getCallSiteID</a>(callBlockNode, callee);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a392e5ea7c356763a988407f91343f034">getRetBlockNode</a>(callBlockNode-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>());</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="comment">// Find inter direct call edges between actual param and formal param.</span></div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">hasCallSiteArgsMap</a>(callBlockNode) && <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410">hasFunArgsList</a>(callee))</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFIR::SVFVarList</a>& csArgList = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">getCallSiteArgsList</a>(callBlockNode);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFIR::SVFVarList</a>& funArgList = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a">getFunArgsList</a>(callee);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  SVFIR::SVFVarList::const_iterator csArgIt = csArgList.begin(), csArgEit = csArgList.end();</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  SVFIR::SVFVarList::const_iterator funArgIt = funArgList.begin(), funArgEit = funArgList.end();</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">for</span> (; funArgIt != funArgEit && csArgIt != csArgEit; funArgIt++, csArgIt++)</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *fun_arg = *funArgIt;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">if</span> (fun_arg-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>() && cs_arg-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <a class="code" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">getInterVFEdgeAtIndCSFromAPToFP</a>(cs_arg, fun_arg, callBlockNode, csId, edges);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(funArgIt == funArgEit && <span class="stringliteral">"function has more arguments than call site"</span>);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">if</span> (callee-><a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()->isVarArg())</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> varFunArg = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(callee);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* varFunArgNode = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varFunArg);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">if</span> (varFunArgNode-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">for</span> (; csArgIt != csArgEit; csArgIt++)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">if</span> (cs_arg-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">getInterVFEdgeAtIndCSFromAPToFP</a>(cs_arg, varFunArgNode, callBlockNode, csId, edges);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  }</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  }</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="comment">// Find inter direct return edges between actual return and formal return.</span></div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#afe8274c3b7317fccef5314662a182046">funHasRet</a>(callee) && <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">callsiteHasRet</a>(retBlockNode))</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(retBlockNode);</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">getFunRet</a>(callee);</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">if</span> (cs_return-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>() && fun_return-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <a class="code" href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">getInterVFEdgeAtIndCSFromFRToAR</a>(fun_return, cs_return, csId, edges);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  }</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span> </div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="comment">// Find inter indirect call edges between actual-in and formal-in svfg nodes.</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a">hasFuncEntryChi</a>(callee) && <a class="code" href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8">hasCallSiteMu</a>(callBlockNode))</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <a class="code" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">SVFG::ActualINSVFGNodeSet</a>& actualInNodes = <a class="code" href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">getActualINSVFGNodes</a>(callBlockNode);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordflow">for</span>(SVFG::ActualINSVFGNodeSet::iterator ai_it = actualInNodes.begin(),</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  ai_eit = actualInNodes.end(); ai_it!=ai_eit; ++ai_it)</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a> * actualIn = SVFUtil::cast<ActualINSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ai_it));</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <a class="code" href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782">getInterVFEdgeAtIndCSFromAInToFIn</a>(actualIn, callee, edges);</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  }</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="comment">// Find inter indirect return edges between actual-out and formal-out svfg nodes.</span></div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">hasFuncRetMu</a>(callee) && <a class="code" href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296">hasCallSiteChi</a>(callBlockNode))</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <a class="code" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">SVFG::ActualOUTSVFGNodeSet</a>& actualOutNodes = <a class="code" href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">getActualOUTSVFGNodes</a>(callBlockNode);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">for</span>(SVFG::ActualOUTSVFGNodeSet::iterator ao_it = actualOutNodes.begin(),</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  ao_eit = actualOutNodes.end(); ao_it!=ao_eit; ++ao_it)</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut = SVFUtil::cast<ActualOUTSVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(*ao_it));</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <a class="code" href="classSVF_1_1SVFG.html#a7a88391e0c2cf8a57238dec32c2474a3">getInterVFEdgeAtIndCSFromFOutToAOut</a>(actualOut, callee, edges);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  }</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  }</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span> }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a64939d7ecfd8e2cf862782954a56596b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVF::SVFIR::SVFVarList</a></div><div class="ttdeci">std::vector< const SVFVar * > SVFVarList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00057">SVFIR.h:57</a></div></div>
|
|
2879
2879
|
<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>
|
|
2880
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a70aa4d730ef1d38ef9c46f5014465bdd"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a70aa4d730ef1d38ef9c46f5014465bdd">SVF::SVFIR::getCallSiteRet</a></div><div class="ttdeci">const SVFVar * getCallSiteRet(const RetBlockNode *cs) const</div><div class="ttdoc">Get callsite return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00254">SVFIR.h:254</a></div></div>
|
|
2881
2880
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a8b10c318674a47035d617b3ade4f069b"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">SVF::IRGraph::getVarargNode</a></div><div class="ttdeci">NodeID getVarargNode(const SVFFunction *func) const</div><div class="ttdoc">getVarargNode - Return the unique node representing the variadic argument of a variadic function...</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00140">IRGraph.h:140</a></div></div>
|
|
2881
|
+
<div class="ttc" id="classSVF_1_1VFG_html_a5f82b3c2e8e6412e2781b960ffa98387"><div class="ttname"><a href="classSVF_1_1VFG.html#a5f82b3c2e8e6412e2781b960ffa98387">SVF::VFG::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *func) const</div><div class="ttdoc">Get callsite given a callsiteID. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00178">VFG.h:178</a></div></div>
|
|
2882
2882
|
<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>
|
|
2883
|
-
<div class="ttc" id="
|
|
2884
|
-
<div class="ttc" id="classSVF_1_1SVFG_html_ab767c329e7fccf9efe16818515199d65"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab767c329e7fccf9efe16818515199d65">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet & getActualINSVFGNodes(const CallBlockNode *cs)</div><div class="ttdoc">Get SVFGNode set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
|
|
2883
|
+
<div class="ttc" id="classSVF_1_1ICFG_html_a392e5ea7c356763a988407f91343f034"><div class="ttname"><a href="classSVF_1_1ICFG.html#a392e5ea7c356763a988407f91343f034">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetICFGNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00222">ICFG.cpp:222</a></div></div>
|
|
2885
2884
|
<div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00150">SVFG.h:150</a></div></div>
|
|
2886
2885
|
<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>
|
|
2887
2886
|
<div class="ttc" id="classSVF_1_1ActualOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualOUTSVFGNode.html">SVF::ActualOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00226">SVFGNode.h:226</a></div></div>
|
|
2888
2887
|
<div class="ttc" id="classSVF_1_1SVFG_html_aa9f520779475e4783eccc45c460e346a"><div class="ttname"><a href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">SVF::SVFG::ActualINSVFGNodeSet</a></div><div class="ttdeci">NodeBS ActualINSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00078">SVFG.h:78</a></div></div>
|
|
2889
2888
|
<div class="ttc" id="classSVF_1_1ActualINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualINSVFGNode.html">SVF::ActualINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00177">SVFGNode.h:177</a></div></div>
|
|
2889
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a95f77211550ec2374d57779d88cf5138"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">SVF::SVFIR::hasCallSiteArgsMap</a></div><div class="ttdeci">bool hasCallSiteArgsMap(const CallICFGNode *cs) const</div><div class="ttdoc">Callsite has argument list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00232">SVFIR.h:232</a></div></div>
|
|
2890
2890
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00118">SVFVariables.h:118</a></div></div>
|
|
2891
|
-
<div class="ttc" id="
|
|
2892
|
-
<div class="ttc" id="
|
|
2893
|
-
<div class="ttc" id="
|
|
2891
|
+
<div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00459">ICFGNode.h:459</a></div></div>
|
|
2892
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a5b7ae610bee28acc2905ca82928e714f"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">SVF::SVFG::getActualOUTSVFGNodes</a></div><div class="ttdeci">ActualOUTSVFGNodeSet & getActualOUTSVFGNodes(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00214">SVFG.h:214</a></div></div>
|
|
2893
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a2a1e8ce39bf8deace3c344d5f05fe6ac"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">SVF::SVFIR::getCallSiteArgsList</a></div><div class="ttdeci">const SVFVarList & getCallSiteArgsList(const CallICFGNode *cs) const</div><div class="ttdoc">Get callsite argument list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00242">SVFIR.h:242</a></div></div>
|
|
2894
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a475205e221890204c7770c414ee63975"><div class="ttname"><a href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet & getActualINSVFGNodes(const CallICFGNode *cs)</div><div class="ttdoc">Get SVFGNode set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
|
|
2895
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_ac1acdf7bc468d7734359591e45f485fe"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">SVF::SVFG::getInterVFEdgeAtIndCSFromAPToFP</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromAPToFP(const PAGNode *cs_arg, const PAGNode *fun_arg, const CallICFGNode *, CallSiteID csId, SVFGEdgeSetTy &edges)</div><div class="ttdoc">Get inter value flow edges between indirect call site and callee. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00304">SVFG.h:304</a></div></div>
|
|
2894
2896
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
|
|
2895
|
-
<div class="ttc" id="classSVF_1_1VFG_html_a9bc8e7ee74b652ed7708e95c16a63728"><div class="ttname"><a href="classSVF_1_1VFG.html#a9bc8e7ee74b652ed7708e95c16a63728">SVF::VFG::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallBlockNode *cs, const SVFFunction *func) const</div><div class="ttdoc">Get callsite given a callsiteID. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00178">VFG.h:178</a></div></div>
|
|
2896
|
-
<div class="ttc" id="classSVF_1_1SVFG_html_afca91771a622290586bfa941132c322e"><div class="ttname"><a href="classSVF_1_1SVFG.html#afca91771a622290586bfa941132c322e">SVF::SVFG::hasCallSiteMu</a></div><div class="ttdeci">bool hasCallSiteMu(const CallBlockNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00455">SVFG.h:455</a></div></div>
|
|
2897
2897
|
<div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
|
|
2898
2898
|
<div class="ttc" id="classSVF_1_1SVFIR_html_ac359813747b4f75920c5f395ba74f410"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410">SVF::SVFIR::hasFunArgsList</a></div><div class="ttdeci">bool hasFunArgsList(const SVFFunction *func) const</div><div class="ttdoc">Function has arguments list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00215">SVFIR.h:215</a></div></div>
|
|
2899
2899
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa148e3e14ebad8460e32079f2f44413a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a">SVF::SVFIR::getFunArgsList</a></div><div class="ttdeci">const SVFVarList & getFunArgsList(const SVFFunction *func) const</div><div class="ttdoc">Get function arguments list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00225">SVFIR.h:225</a></div></div>
|
|
@@ -2901,17 +2901,17 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2901
2901
|
<div class="ttc" id="classSVF_1_1SVFIR_html_afe8274c3b7317fccef5314662a182046"><div class="ttname"><a href="classSVF_1_1SVFIR.html#afe8274c3b7317fccef5314662a182046">SVF::SVFIR::funHasRet</a></div><div class="ttdeci">bool funHasRet(const SVFFunction *func) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00276">SVFIR.h:276</a></div></div>
|
|
2902
2902
|
<div class="ttc" id="classSVF_1_1SVFG_html_afbaf925e1e165f75161999229fa5f782"><div class="ttname"><a href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782">SVF::SVFG::getInterVFEdgeAtIndCSFromAInToFIn</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromAInToFIn(ActualINSVFGNode *actualIn, const SVFFunction *callee, SVFGEdgeSetTy &edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00322">SVFG.h:322</a></div></div>
|
|
2903
2903
|
<div class="ttc" id="classSVF_1_1SVFG_html_a23ca21b90feca5e7d00c9ba9f489374a"><div class="ttname"><a href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a">SVF::SVFG::hasFuncEntryChi</a></div><div class="ttdeci">bool hasFuncEntryChi(const SVFFunction *func) const</div><div class="ttdoc">Has function for EntryCHI/RetMU/CallCHI/CallMU. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00443">SVFG.h:443</a></div></div>
|
|
2904
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
2904
2905
|
<div class="ttc" id="classSVF_1_1SVFG_html_a2f6ed8a9f14657abc1e2a89247a84b99"><div class="ttname"><a href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">SVF::SVFG::ActualOUTSVFGNodeSet</a></div><div class="ttdeci">NodeBS ActualOUTSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00079">SVFG.h:79</a></div></div>
|
|
2906
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_ad9cc1581261182b56ae232d9a9b13296"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296">SVF::SVFG::hasCallSiteChi</a></div><div class="ttdeci">bool hasCallSiteChi(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00451">SVFG.h:451</a></div></div>
|
|
2905
2907
|
<div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00249">BasicTypes.h:249</a></div></div>
|
|
2906
2908
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a34e27b8bcfeaafda190dcdb9169a346f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">SVF::SVFIR::getFunRet</a></div><div class="ttdeci">const SVFVar * getFunRet(const SVFFunction *func) const</div><div class="ttdoc">Get function return list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00270">SVFIR.h:270</a></div></div>
|
|
2907
|
-
<div class="ttc" id="
|
|
2908
|
-
<div class="ttc" id="classSVF_1_1ICFG_html_a6d66c83cb1656d0f8ec8b8b65a9e9c41"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetBlockNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00222">ICFG.cpp:222</a></div></div>
|
|
2909
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a170bef1e9a07ce0449faf66706ae6e61"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a170bef1e9a07ce0449faf66706ae6e61">SVF::SVFIR::callsiteHasRet</a></div><div class="ttdeci">bool callsiteHasRet(const RetBlockNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00260">SVFIR.h:260</a></div></div>
|
|
2909
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a842f6f2325c9e93ea96367e9cf624ee8"><div class="ttname"><a href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8">SVF::SVFG::hasCallSiteMu</a></div><div class="ttdeci">bool hasCallSiteMu(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00455">SVFG.h:455</a></div></div>
|
|
2910
2910
|
<div class="ttc" id="classSVF_1_1SVFG_html_a7a88391e0c2cf8a57238dec32c2474a3"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7a88391e0c2cf8a57238dec32c2474a3">SVF::SVFG::getInterVFEdgeAtIndCSFromFOutToAOut</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromFOutToAOut(ActualOUTSVFGNode *actualOut, const SVFFunction *callee, SVFGEdgeSetTy &edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00332">SVFG.h:332</a></div></div>
|
|
2911
2911
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
|
|
2912
|
-
<div class="ttc" id="
|
|
2912
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a3145677c7a3763fc0d6aa7e21b264ab6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">SVF::SVFIR::getCallSiteRet</a></div><div class="ttdeci">const SVFVar * getCallSiteRet(const RetICFGNode *cs) const</div><div class="ttdoc">Get callsite return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00254">SVFIR.h:254</a></div></div>
|
|
2913
2913
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
|
|
2914
|
-
<div class="ttc" id="
|
|
2914
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_aa79dba26cb34b40eee682713db299d5f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">SVF::SVFIR::callsiteHasRet</a></div><div class="ttdeci">bool callsiteHasRet(const RetICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00260">SVFIR.h:260</a></div></div>
|
|
2915
2915
|
<div class="ttc" id="classSVF_1_1SVFG_html_ab2b969b7d5922427622dd875e6b8fe14"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">SVF::SVFG::getInterVFEdgeAtIndCSFromFRToAR</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromFRToAR(const PAGNode *fun_ret, const PAGNode *cs_ret, CallSiteID csId, SVFGEdgeSetTy &edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00313">SVFG.h:313</a></div></div>
|
|
2916
2916
|
</div><!-- fragment -->
|
|
2917
2917
|
</div>
|
|
@@ -3067,8 +3067,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3067
3067
|
</div><!-- fragment -->
|
|
3068
3068
|
</div>
|
|
3069
3069
|
</div>
|
|
3070
|
-
<a id="
|
|
3071
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
3070
|
+
<a id="a21577bc4b4e55b23aa55083f5321b399"></a>
|
|
3071
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a21577bc4b4e55b23aa55083f5321b399">◆ </a></span>hasActualINSVFGNodes()</h2>
|
|
3072
3072
|
|
|
3073
3073
|
<div class="memitem">
|
|
3074
3074
|
<div class="memproto">
|
|
@@ -3079,7 +3079,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3079
3079
|
<tr>
|
|
3080
3080
|
<td class="memname">bool SVF::SVFG::hasActualINSVFGNodes </td>
|
|
3081
3081
|
<td>(</td>
|
|
3082
|
-
<td class="paramtype">const <a class="el" href="
|
|
3082
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
3083
3083
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
3084
3084
|
<td> const</td>
|
|
3085
3085
|
</tr>
|
|
@@ -3098,8 +3098,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3098
3098
|
</div><!-- fragment -->
|
|
3099
3099
|
</div>
|
|
3100
3100
|
</div>
|
|
3101
|
-
<a id="
|
|
3102
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
3101
|
+
<a id="ab1fde654cc464c5b4d1bafff83d346ed"></a>
|
|
3102
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ab1fde654cc464c5b4d1bafff83d346ed">◆ </a></span>hasActualOUTSVFGNodes()</h2>
|
|
3103
3103
|
|
|
3104
3104
|
<div class="memitem">
|
|
3105
3105
|
<div class="memproto">
|
|
@@ -3110,7 +3110,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3110
3110
|
<tr>
|
|
3111
3111
|
<td class="memname">bool SVF::SVFG::hasActualOUTSVFGNodes </td>
|
|
3112
3112
|
<td>(</td>
|
|
3113
|
-
<td class="paramtype">const <a class="el" href="
|
|
3113
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
3114
3114
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
3115
3115
|
<td> const</td>
|
|
3116
3116
|
</tr>
|
|
@@ -3127,8 +3127,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3127
3127
|
</div><!-- fragment -->
|
|
3128
3128
|
</div>
|
|
3129
3129
|
</div>
|
|
3130
|
-
<a id="
|
|
3131
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
3130
|
+
<a id="ad9cc1581261182b56ae232d9a9b13296"></a>
|
|
3131
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ad9cc1581261182b56ae232d9a9b13296">◆ </a></span>hasCallSiteChi()</h2>
|
|
3132
3132
|
|
|
3133
3133
|
<div class="memitem">
|
|
3134
3134
|
<div class="memproto">
|
|
@@ -3139,7 +3139,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3139
3139
|
<tr>
|
|
3140
3140
|
<td class="memname">bool SVF::SVFG::hasCallSiteChi </td>
|
|
3141
3141
|
<td>(</td>
|
|
3142
|
-
<td class="paramtype">const <a class="el" href="
|
|
3142
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
3143
3143
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
3144
3144
|
<td> const</td>
|
|
3145
3145
|
</tr>
|
|
@@ -3156,8 +3156,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3156
3156
|
</div><!-- fragment -->
|
|
3157
3157
|
</div>
|
|
3158
3158
|
</div>
|
|
3159
|
-
<a id="
|
|
3160
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
3159
|
+
<a id="a842f6f2325c9e93ea96367e9cf624ee8"></a>
|
|
3160
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a842f6f2325c9e93ea96367e9cf624ee8">◆ </a></span>hasCallSiteMu()</h2>
|
|
3161
3161
|
|
|
3162
3162
|
<div class="memitem">
|
|
3163
3163
|
<div class="memproto">
|
|
@@ -3168,7 +3168,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3168
3168
|
<tr>
|
|
3169
3169
|
<td class="memname">bool SVF::SVFG::hasCallSiteMu </td>
|
|
3170
3170
|
<td>(</td>
|
|
3171
|
-
<td class="paramtype">const <a class="el" href="
|
|
3171
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
3172
3172
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
3173
3173
|
<td> const</td>
|
|
3174
3174
|
</tr>
|
|
@@ -3363,14 +3363,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3363
3363
|
</div><!-- fragment -->
|
|
3364
3364
|
</div>
|
|
3365
3365
|
</div>
|
|
3366
|
-
<a id="
|
|
3367
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
3366
|
+
<a id="ad189e45b0c810e68566ccc3bdb3f2e59"></a>
|
|
3367
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ad189e45b0c810e68566ccc3bdb3f2e59">◆ </a></span>isCallSiteRetSVFGNode()</h2>
|
|
3368
3368
|
|
|
3369
3369
|
<div class="memitem">
|
|
3370
3370
|
<div class="memproto">
|
|
3371
3371
|
<table class="memname">
|
|
3372
3372
|
<tr>
|
|
3373
|
-
<td class="memname">const <a class="el" href="
|
|
3373
|
+
<td class="memname">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * SVFG::isCallSiteRetSVFGNode </td>
|
|
3374
3374
|
<td>(</td>
|
|
3375
3375
|
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> * </td>
|
|
3376
3376
|
<td class="paramname"><em>node</em></td><td>)</td>
|
|
@@ -3743,7 +3743,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3743
3743
|
<td class="mlabels-left">
|
|
3744
3744
|
<table class="memname">
|
|
3745
3745
|
<tr>
|
|
3746
|
-
<td class="memname"><a class="el" href="classSVF_1_1SVFG.html#
|
|
3746
|
+
<td class="memname"><a class="el" href="classSVF_1_1SVFG.html#a727af89a305e48f399ad33cc7149dbcb">CallSiteToActualINsMapTy</a> SVF::SVFG::callSiteToActualINMap</td>
|
|
3747
3747
|
</tr>
|
|
3748
3748
|
</table>
|
|
3749
3749
|
</td>
|
|
@@ -3767,7 +3767,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3767
3767
|
<td class="mlabels-left">
|
|
3768
3768
|
<table class="memname">
|
|
3769
3769
|
<tr>
|
|
3770
|
-
<td class="memname"><a class="el" href="classSVF_1_1SVFG.html#
|
|
3770
|
+
<td class="memname"><a class="el" href="classSVF_1_1SVFG.html#a7c4e9c0fad457a2dc81a85f96fcec9ec">CallSiteToActualOUTsMapTy</a> SVF::SVFG::callSiteToActualOUTMap</td>
|
|
3771
3771
|
</tr>
|
|
3772
3772
|
</table>
|
|
3773
3773
|
</td>
|