svf-tools 1.0.322 → 1.0.326
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +22 -20
- package/SVF-doxygen/html/html/Conditions_8h_source.html +12 -9
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +13 -12
- package/SVF-doxygen/html/html/ConsG_8h_source.html +15 -15
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp.html +1 -0
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -18
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +13 -13
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +5 -5
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/Options_8h_source.html +2 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +24 -22
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8cpp.html +1 -0
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +61 -59
- package/SVF-doxygen/html/html/SVFG_8h_source.html +20 -20
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +33 -33
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +56 -56
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +147 -148
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +133 -132
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +14 -14
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +39 -39
- package/SVF-doxygen/html/html/VFG_8h_source.html +26 -26
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +26 -25
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +24 -22
- package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +33 -31
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +24 -22
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +28 -27
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +41 -39
- package/SVF-doxygen/html/html/classSVF_1_1CondManager-members.html +10 -7
- package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +144 -43
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +46 -46
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +54 -54
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +92 -92
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +24 -23
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +33 -31
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +24 -23
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +25 -23
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -0
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +13 -12
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +102 -70
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +25 -24
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +23 -21
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +11 -10
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode-members.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +24 -22
- package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +74 -74
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +59 -59
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +131 -132
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +732 -750
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +86 -86
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +50 -32
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +69 -69
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +24 -23
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +28 -26
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +83 -83
- package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +20 -18
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
- package/SVF-doxygen/html/html/functions_a.html +29 -29
- package/SVF-doxygen/html/html/functions_c.html +25 -30
- package/SVF-doxygen/html/html/functions_f.html +2 -2
- package/SVF-doxygen/html/html/functions_func.html +29 -29
- package/SVF-doxygen/html/html/functions_func_g.html +59 -57
- package/SVF-doxygen/html/html/functions_func_h.html +6 -6
- package/SVF-doxygen/html/html/functions_func_i.html +8 -4
- package/SVF-doxygen/html/html/functions_func_s.html +8 -5
- package/SVF-doxygen/html/html/functions_g.html +74 -72
- package/SVF-doxygen/html/html/functions_h.html +6 -6
- package/SVF-doxygen/html/html/functions_i.html +20 -16
- package/SVF-doxygen/html/html/functions_k.html +9 -0
- package/SVF-doxygen/html/html/functions_l.html +8 -8
- package/SVF-doxygen/html/html/functions_n.html +3 -0
- package/SVF-doxygen/html/html/functions_o.html +12 -15
- package/SVF-doxygen/html/html/functions_p.html +20 -35
- package/SVF-doxygen/html/html/functions_s.html +35 -13
- package/SVF-doxygen/html/html/functions_t.html +5 -7
- package/SVF-doxygen/html/html/functions_type_c.html +1 -4
- package/SVF-doxygen/html/html/functions_type_f.html +2 -2
- package/SVF-doxygen/html/html/functions_type_g.html +2 -2
- package/SVF-doxygen/html/html/functions_type_i.html +3 -3
- package/SVF-doxygen/html/html/functions_type_k.html +3 -0
- package/SVF-doxygen/html/html/functions_type_p.html +2 -18
- package/SVF-doxygen/html/html/functions_type_s.html +16 -0
- package/SVF-doxygen/html/html/functions_type_v.html +1 -1
- package/SVF-doxygen/html/html/functions_v.html +4 -4
- package/SVF-doxygen/html/html/functions_vars_g.html +7 -7
- package/SVF-doxygen/html/html/functions_vars_i.html +7 -7
- package/SVF-doxygen/html/html/functions_vars_k.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_n.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_o.html +1 -2
- package/SVF-doxygen/html/html/functions_vars_p.html +4 -7
- package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +9 -5
- package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +14 -14
- package/SVF-doxygen/html/html/search/all_10.js +13 -18
- package/SVF-doxygen/html/html/search/all_13.js +10 -4
- package/SVF-doxygen/html/html/search/all_14.js +6 -6
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +2 -3
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +29 -28
- package/SVF-doxygen/html/html/search/all_8.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +4 -3
- package/SVF-doxygen/html/html/search/all_b.js +3 -0
- package/SVF-doxygen/html/html/search/all_c.js +4 -4
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +4 -3
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/functions_0.js +14 -14
- package/SVF-doxygen/html/html/search/functions_10.js +1 -0
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +25 -24
- package/SVF-doxygen/html/html/search/functions_7.js +2 -2
- package/SVF-doxygen/html/html/search/functions_8.js +1 -0
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +4 -0
- package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -2
- package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_a.js +2 -1
- package/SVF-doxygen/html/html/search/typedefs_f.js +2 -6
- package/SVF-doxygen/html/html/search/variables_10.js +2 -3
- package/SVF-doxygen/html/html/search/variables_13.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +4 -4
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +3 -3
- package/SVF-doxygen/html/html/search/variables_9.js +3 -3
- package/SVF-doxygen/html/html/search/variables_b.js +3 -1
- package/SVF-doxygen/html/html/search/variables_e.js +3 -2
- package/SVF-doxygen/html/html/search/variables_f.js +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +9 -9
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +18 -18
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/DDA/ContextDDA.h +1 -1
- package/include/DDA/FlowDDA.h +1 -1
- package/include/Graphs/ConsG.h +10 -10
- package/include/Graphs/ICFGNode.h +3 -3
- package/include/Graphs/IRGraph.h +7 -7
- package/include/Graphs/VFG.h +4 -4
- package/include/MSSA/MemRegion.h +3 -3
- package/include/MSSA/MemSSA.h +1 -1
- package/include/MemoryModel/PointerAnalysis.h +8 -8
- package/include/MemoryModel/PointerAnalysisImpl.h +2 -2
- package/include/MemoryModel/SVFIR.h +66 -67
- package/include/MemoryModel/SVFStatements.h +30 -25
- package/include/MemoryModel/SVFVariables.h +32 -32
- package/include/SABER/PathCondAllocator.h +4 -0
- package/include/SVF-FE/SVFIRBuilder.h +15 -15
- package/include/Util/Conditions.h +10 -0
- package/include/Util/IRAnnotator.h +1 -1
- package/include/Util/Options.h +3 -1
- package/include/Util/TypeBasedHeapCloning.h +2 -2
- package/include/WPA/Andersen.h +1 -1
- package/include/WPA/FlowSensitiveTBHC.h +1 -1
- package/lib/DDA/ContextDDA.cpp +2 -2
- package/lib/DDA/DDAClient.cpp +6 -6
- package/lib/DDA/DDAStat.cpp +1 -1
- package/lib/DDA/FlowDDA.cpp +2 -2
- package/lib/Graphs/ConsG.cpp +25 -24
- package/lib/Graphs/ICFG.cpp +4 -4
- package/lib/Graphs/IRGraph.cpp +12 -9
- package/lib/Graphs/SVFG.cpp +10 -8
- package/lib/Graphs/VFG.cpp +37 -37
- package/lib/MSSA/MemRegion.cpp +17 -17
- package/lib/MSSA/MemSSA.cpp +9 -9
- package/lib/MTA/MTAAnnotator.cpp +5 -5
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +10 -10
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +12 -12
- package/lib/MemoryModel/SVFIR.cpp +63 -63
- package/lib/SABER/LeakChecker.cpp +2 -2
- package/lib/SABER/ProgSlice.cpp +4 -1
- package/lib/SABER/SaberSVFGBuilder.cpp +3 -3
- package/lib/SVF-FE/Graph2Json.cpp +2 -2
- package/lib/SVF-FE/SVFIRBuilder.cpp +18 -18
- package/lib/Util/Conditions.cpp +5 -1
- package/lib/Util/Options.cpp +6 -0
- package/lib/Util/PTAStat.cpp +7 -7
- package/lib/Util/TypeBasedHeapCloning.cpp +3 -3
- package/lib/WPA/Andersen.cpp +13 -13
- package/lib/WPA/AndersenSFR.cpp +1 -1
- package/lib/WPA/AndersenStat.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +6 -6
- package/lib/WPA/FlowSensitiveStat.cpp +2 -2
- package/lib/WPA/FlowSensitiveTBHC.cpp +5 -5
- package/lib/WPA/VersionedFlowSensitive.cpp +1 -1
- package/package.json +1 -1
|
@@ -128,8 +128,8 @@ Public Member Functions</h2></td></tr>
|
|
|
128
128
|
<tr class="separator:a0eb8335dd45b35b20d34c981b86b059c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
129
129
|
<tr class="memitem:ab6525ac133151692176a03227f81bcac"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitiveTBHC.html#ab6525ac133151692176a03227f81bcac">processCopy</a> (const <a class="el" href="namespaceSVF.html#ab98f7c9e6311e649cdfd5d2f3f8e59be">CopySVFGNode</a> *copy) override</td></tr>
|
|
130
130
|
<tr class="separator:ab6525ac133151692176a03227f81bcac"><td class="memSeparator" colspan="2"> </td></tr>
|
|
131
|
-
<tr class="memitem:
|
|
132
|
-
<tr class="separator:
|
|
131
|
+
<tr class="memitem:a56dc95bb4b6d48f82c87c6280237990a"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">getAllFieldsObjVars</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id) override</td></tr>
|
|
132
|
+
<tr class="separator:a56dc95bb4b6d48f82c87c6280237990a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
133
133
|
<tr class="memitem:acb11d6879836e27195c85ca882df6d17"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitiveTBHC.html#acb11d6879836e27195c85ca882df6d17">updateInFromIn</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *srcStmt, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *dstStmt, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) override</td></tr>
|
|
134
134
|
<tr class="separator:acb11d6879836e27195c85ca882df6d17"><td class="memSeparator" colspan="2"> </td></tr>
|
|
135
135
|
<tr class="memitem:ab9615acdb43219c39f40e886f5baf803"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitiveTBHC.html#ab9615acdb43219c39f40e886f5baf803">updateInFromOut</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *srcStmt, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *dstStmt, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) override</td></tr>
|
|
@@ -332,12 +332,12 @@ Public Member Functions</h2></td></tr>
|
|
|
332
332
|
<tr class="separator:a89dfeedf8e3e91603a1e9c73e3608a73 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2"> </td></tr>
|
|
333
333
|
<tr class="memitem:af90d2ccb01402c5ca9d7a059f345c816 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#af90d2ccb01402c5ca9d7a059f345c816">isFIObjNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id) const</td></tr>
|
|
334
334
|
<tr class="separator:af90d2ccb01402c5ca9d7a059f345c816 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2"> </td></tr>
|
|
335
|
-
<tr class="memitem:
|
|
336
|
-
<tr class="separator:
|
|
337
|
-
<tr class="memitem:
|
|
338
|
-
<tr class="separator:
|
|
339
|
-
<tr class="memitem:
|
|
340
|
-
<tr class="separator:
|
|
335
|
+
<tr class="memitem:a9f1c599cb9f6e2ae83e29bb84ef6831c inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a9f1c599cb9f6e2ae83e29bb84ef6831c">getBaseObjVar</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id)</td></tr>
|
|
336
|
+
<tr class="separator:a9f1c599cb9f6e2ae83e29bb84ef6831c inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2"> </td></tr>
|
|
337
|
+
<tr class="memitem:a68b05bc02c5473c1e0d39ac4f4454bac inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">getFIObjVar</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id)</td></tr>
|
|
338
|
+
<tr class="separator:a68b05bc02c5473c1e0d39ac4f4454bac inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2"> </td></tr>
|
|
339
|
+
<tr class="memitem:acbbc0934af9bc0145389dc41430c6d8b inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#acbbc0934af9bc0145389dc41430c6d8b">getGepObjVar</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id, const <a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a> &ls)</td></tr>
|
|
340
|
+
<tr class="separator:acbbc0934af9bc0145389dc41430c6d8b inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2"> </td></tr>
|
|
341
341
|
<tr class="memitem:ac5683fe2e24b393ccc5cb6d8bc92cf2b inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#ac5683fe2e24b393ccc5cb6d8bc92cf2b">setObjFieldInsensitive</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id)</td></tr>
|
|
342
342
|
<tr class="separator:ac5683fe2e24b393ccc5cb6d8bc92cf2b inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2"> </td></tr>
|
|
343
343
|
<tr class="memitem:a0f71e4cd0948b294c7d33a690bde7dbe inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id) const</td></tr>
|
|
@@ -1306,8 +1306,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1306
1306
|
<p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">SVF::BVDataPTAImpl</a>.</p>
|
|
1307
1307
|
|
|
1308
1308
|
<p class="definition">Definition at line <a class="el" href="FlowSensitiveTBHC_8cpp_source.html#l00645">645</a> of file <a class="el" href="FlowSensitiveTBHC_8cpp_source.html">FlowSensitiveTBHC.cpp</a>.</p>
|
|
1309
|
-
<div class="fragment"><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>  expandedPts = pts;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : pts)</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>  expandedPts |= <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#
|
|
1310
|
-
<div class="ttc" id="
|
|
1309
|
+
<div class="fragment"><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>  expandedPts = pts;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : pts)</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>  expandedPts |= <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">getAllFieldsObjVars</a>(o);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a> *gepObj = SVFUtil::dyn_cast<GepObjPN>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(o)))</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  {</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  expandedPts |= <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">getAllFieldsObjVars</a>(o);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  o = gepObj->getBaseNode();</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  }</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  }</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span> }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1310
|
+
<div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a56dc95bb4b6d48f82c87c6280237990a"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">SVF::FlowSensitiveTBHC::getAllFieldsObjVars</a></div><div class="ttdeci">virtual const NodeBS & getAllFieldsObjVars(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00532">FlowSensitiveTBHC.cpp:532</a></div></div>
|
|
1311
1311
|
<div class="ttc" id="classSVF_1_1GepObjPN_html"><div class="ttname"><a href="classSVF_1_1GepObjPN.html">SVF::GepObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00451">SVFVariables.h:451</a></div></div>
|
|
1312
1312
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
|
|
1313
1313
|
<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>
|
|
@@ -1381,8 +1381,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1381
1381
|
</div><!-- fragment -->
|
|
1382
1382
|
</div>
|
|
1383
1383
|
</div>
|
|
1384
|
-
<a id="
|
|
1385
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1384
|
+
<a id="a56dc95bb4b6d48f82c87c6280237990a"></a>
|
|
1385
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a56dc95bb4b6d48f82c87c6280237990a">◆ </a></span>getAllFieldsObjVars()</h2>
|
|
1386
1386
|
|
|
1387
1387
|
<div class="memitem">
|
|
1388
1388
|
<div class="memproto">
|
|
@@ -1391,7 +1391,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1391
1391
|
<td class="mlabels-left">
|
|
1392
1392
|
<table class="memname">
|
|
1393
1393
|
<tr>
|
|
1394
|
-
<td class="memname">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> & FlowSensitiveTBHC::
|
|
1394
|
+
<td class="memname">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> & FlowSensitiveTBHC::getAllFieldsObjVars </td>
|
|
1395
1395
|
<td>(</td>
|
|
1396
1396
|
<td class="paramtype"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> </td>
|
|
1397
1397
|
<td class="paramname"><em>id</em></td><td>)</td>
|
|
@@ -1405,7 +1405,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1405
1405
|
</table>
|
|
1406
1406
|
</div><div class="memdoc">
|
|
1407
1407
|
|
|
1408
|
-
<p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#
|
|
1408
|
+
<p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#a5dddd53b4ca9d7cc23d88ed9f3de9fde">SVF::PointerAnalysis</a>.</p>
|
|
1409
1409
|
|
|
1410
1410
|
<p class="definition">Definition at line <a class="el" href="FlowSensitiveTBHC_8cpp_source.html#l00532">532</a> of file <a class="el" href="FlowSensitiveTBHC_8cpp_source.html">FlowSensitiveTBHC.cpp</a>.</p>
|
|
1411
1411
|
<div class="fragment"><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#afe416f9ec57923f34ef1db3890a3f9e1">getGepObjs</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> }</div><div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_afe416f9ec57923f34ef1db3890a3f9e1"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#afe416f9ec57923f34ef1db3890a3f9e1">SVF::TypeBasedHeapCloning::getGepObjs</a></div><div class="ttdeci">const NodeBS & getGepObjs(NodeID base)</div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00137">TypeBasedHeapCloning.cpp:137</a></div></div>
|
|
@@ -1553,7 +1553,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1553
1553
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a38f3ed35185addf701d4401bfdd5f29b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">SVF::FlowSensitive::addrTime</a></div><div class="ttdeci">double addrTime</div><div class="ttdoc">time of handling address edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00312">FlowSensitive.h:312</a></div></div>
|
|
1554
1554
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_ac51cd735739a2499196a87323172a6a6"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#ac51cd735739a2499196a87323172a6a6">SVF::TypeBasedHeapCloning::setType</a></div><div class="ttdeci">void setType(NodeID o, const DIType *t)</div><div class="ttdoc">Sets the type (in objToType) of o. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00053">TypeBasedHeapCloning.cpp:53</a></div></div>
|
|
1555
1555
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a4dd7615f42971da9b6ec1dc04f0ec4e6"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">SVF::StmtVFGNode::getPAGEdge</a></div><div class="ttdeci">const PAGEdge * getPAGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00133">VFGNode.h:133</a></div></div>
|
|
1556
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
1556
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00408">SVFIR.h:408</a></div></div>
|
|
1557
1557
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_a6363466e64eee4405806568d26206d2e"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#a6363466e64eee4405806568d26206d2e">SVF::TypeBasedHeapCloning::undefType</a></div><div class="ttdeci">static const DIType * undefType</div><div class="ttdoc">The undefined type (•); void. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8h_source.html#l00027">TypeBasedHeapCloning.h:27</a></div></div>
|
|
1558
1558
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_af68485a2208553579f9c2e4b2cb20cff"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">SVF::BVDataPTAImpl::addPts</a></div><div class="ttdeci">virtual bool addPts(NodeID id, NodeID ptd)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00132">PointerAnalysisImpl.h:132</a></div></div>
|
|
1559
1559
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_abb37c5e4e6fa4742e8dbcf397aea086e"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#abb37c5e4e6fa4742e8dbcf397aea086e">SVF::FlowSensitive::processAddr</a></div><div class="ttdeci">virtual bool processAddr(const AddrSVFGNode *addr)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00418">FlowSensitive.cpp:418</a></div></div>
|
|
@@ -1658,7 +1658,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1658
1658
|
<div class="ttc" id="classSVF_1_1PointsTo_html_ab196d86cfb48d1c5d27a0c03c7497afa"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">SVF::PointsTo::set</a></div><div class="ttdeci">void set(u32_t n)</div><div class="ttdoc">Inserts n in the set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00149">PointsTo.cpp:149</a></div></div>
|
|
1659
1659
|
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00176">SVFBasicTypes.h:176</a></div></div>
|
|
1660
1660
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_a219edef6c013a953ed12ee3c56bde6de"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#a219edef6c013a953ed12ee3c56bde6de">SVF::TypeBasedHeapCloning::getType</a></div><div class="ttdeci">const DIType * getType(NodeID o) const</div><div class="ttdoc">Returns the type (from objToType) of o. Asserts existence. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00058">TypeBasedHeapCloning.cpp:58</a></div></div>
|
|
1661
|
-
<div class="ttc" id="classSVF_1_1NormalGepStmt_html"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html">SVF::NormalGepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1661
|
+
<div class="ttc" id="classSVF_1_1NormalGepStmt_html"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html">SVF::NormalGepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00709">SVFStatements.h:709</a></div></div>
|
|
1662
1662
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
1663
1663
|
<div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_acd6ade2b73c19d1eb7faf0e457becba6"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#acd6ade2b73c19d1eb7faf0e457becba6">SVF::FlowSensitiveTBHC::gepToSVFGRetrievers</a></div><div class="ttdeci">Map< NodeID, NodeBS > gepToSVFGRetrievers</div><div class="ttdoc">Maps GEP objects to the SVFG nodes that retrieved them with getGepObjClones. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8h_source.html#l00115">FlowSensitiveTBHC.h:115</a></div></div>
|
|
1664
1664
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_ae520e0551e63223a908f92a6b9667356"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#ae520e0551e63223a908f92a6b9667356">SVF::TypeBasedHeapCloning::getFilterSet</a></div><div class="ttdeci">PointsTo & getFilterSet(NodeID loc)</div><div class="ttdoc">Returns the filter set of a location. Not const; could create empty PointsTo. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00113">TypeBasedHeapCloning.cpp:113</a></div></div>
|
|
@@ -1703,12 +1703,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1703
1703
|
<p>Reimplemented from <a class="el" href="classSVF_1_1FlowSensitive.html#a9968530b3dee876f55e6659530decf27">SVF::FlowSensitive</a>.</p>
|
|
1704
1704
|
|
|
1705
1705
|
<p class="definition">Definition at line <a class="el" href="FlowSensitiveTBHC_8cpp_source.html#l00367">367</a> of file <a class="el" href="FlowSensitiveTBHC_8cpp_source.html">FlowSensitiveTBHC.cpp</a>.</p>
|
|
1706
|
-
<div class="fragment"><div class="line"><a name="l00368"></a><span class="lineno"> 368</span> {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *tildet = <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a045ffbf7eea276d154be2cf883ea71f7">getTypeFromCTirMetadata</a>(load);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> (tildet != <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#a6363466e64eee4405806568d26206d2e">undefType</a>)</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>  changed = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#a34064efe336ada815b31050f683c7ce1">init</a>(load-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>(), tildet, <a class="code" href="classSVF_1_1Options.html#a930ed87e35ba7502f9d00be6f17f902f">Options::TBHCAllReuse</a>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="comment">// We want to perform the initialisation for non-pointer nodes but not process the load.</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">if</span> (!load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>()-><a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>())</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>  <span class="keywordflow">return</span> changed;</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> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar = load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>();</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& srcPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>());</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &filterSet = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#ae520e0551e63223a908f92a6b9667356">getFilterSet</a>(load-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="comment">// unionPtsFromIn is going to call getOriginalObj on ptd anyway.</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="comment">// This results in fewer loop iterations. o_t, o_s --> o.</span></div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> srcOriginalObjs;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> s : srcPts)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">if</span> (filterSet.test(s)) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(s) || <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a07716ca7f769f704a80ccee1a6ad7ee2">isNonPointerObj</a>(s)) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  srcOriginalObjs.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(<a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#aeea7089c6f54b44f0509d41686b649f6">getOriginalObj</a>(s));</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd : srcOriginalObjs)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="comment">// filterSet tests happened while building srcOriginalObjs.</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ad53c6aebdcfa9fa334ccff4c68efa8ae">unionPtsFromIn</a>(load, ptd, dstVar))</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#af90d2ccb01402c5ca9d7a059f345c816">isFIObjNode</a>(ptd))</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &allFields = <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a96089e24ef6aaa7f7d30c50a64d5042f">getAllFieldsObjNode</a>(ptd);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> f : allFields)</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ad53c6aebdcfa9fa334ccff4c68efa8ae">unionPtsFromIn</a>(load, f, dstVar))</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div><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> </div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a> += (end - start) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> }</div><div class="ttc" id="classSVF_1_1StmtVFGNode_html_a04986961ad507be9fcf141ab51787da8"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">SVF::StmtVFGNode::getPAGDstNodeID</a></div><div class="ttdeci">NodeID getPAGDstNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00143">VFGNode.h:143</a></div></div>
|
|
1706
|
+
<div class="fragment"><div class="line"><a name="l00368"></a><span class="lineno"> 368</span> {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *tildet = <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a045ffbf7eea276d154be2cf883ea71f7">getTypeFromCTirMetadata</a>(load);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> (tildet != <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#a6363466e64eee4405806568d26206d2e">undefType</a>)</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>  changed = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#a34064efe336ada815b31050f683c7ce1">init</a>(load-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>(), tildet, <a class="code" href="classSVF_1_1Options.html#a930ed87e35ba7502f9d00be6f17f902f">Options::TBHCAllReuse</a>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="comment">// We want to perform the initialisation for non-pointer nodes but not process the load.</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">if</span> (!load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>()-><a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>())</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>  <span class="keywordflow">return</span> changed;</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> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar = load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>();</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& srcPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>());</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &filterSet = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#ae520e0551e63223a908f92a6b9667356">getFilterSet</a>(load-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="comment">// unionPtsFromIn is going to call getOriginalObj on ptd anyway.</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="comment">// This results in fewer loop iterations. o_t, o_s --> o.</span></div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> srcOriginalObjs;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> s : srcPts)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">if</span> (filterSet.test(s)) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(s) || <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a07716ca7f769f704a80ccee1a6ad7ee2">isNonPointerObj</a>(s)) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  srcOriginalObjs.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(<a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#aeea7089c6f54b44f0509d41686b649f6">getOriginalObj</a>(s));</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd : srcOriginalObjs)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="comment">// filterSet tests happened while building srcOriginalObjs.</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ad53c6aebdcfa9fa334ccff4c68efa8ae">unionPtsFromIn</a>(load, ptd, dstVar))</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#af90d2ccb01402c5ca9d7a059f345c816">isFIObjNode</a>(ptd))</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &allFields = <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">getAllFieldsObjVars</a>(ptd);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> f : allFields)</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ad53c6aebdcfa9fa334ccff4c68efa8ae">unionPtsFromIn</a>(load, f, dstVar))</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div><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> </div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a> += (end - start) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> }</div><div class="ttc" id="classSVF_1_1StmtVFGNode_html_a04986961ad507be9fcf141ab51787da8"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">SVF::StmtVFGNode::getPAGDstNodeID</a></div><div class="ttdeci">NodeID getPAGDstNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00143">VFGNode.h:143</a></div></div>
|
|
1707
1707
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aab4f70210eb1e6447a24697d3b459067"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">SVF::FlowSensitive::loadTime</a></div><div class="ttdeci">double loadTime</div><div class="ttdoc">time of load edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00315">FlowSensitive.h:315</a></div></div>
|
|
1708
1708
|
<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>
|
|
1709
|
-
<div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a96089e24ef6aaa7f7d30c50a64d5042f"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a96089e24ef6aaa7f7d30c50a64d5042f">SVF::FlowSensitiveTBHC::getAllFieldsObjNode</a></div><div class="ttdeci">virtual const NodeBS & getAllFieldsObjNode(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00532">FlowSensitiveTBHC.cpp:532</a></div></div>
|
|
1710
1709
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a4dd7615f42971da9b6ec1dc04f0ec4e6"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">SVF::StmtVFGNode::getPAGEdge</a></div><div class="ttdeci">const PAGEdge * getPAGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00133">VFGNode.h:133</a></div></div>
|
|
1711
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
1710
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00408">SVFIR.h:408</a></div></div>
|
|
1712
1711
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_a6363466e64eee4405806568d26206d2e"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#a6363466e64eee4405806568d26206d2e">SVF::TypeBasedHeapCloning::undefType</a></div><div class="ttdeci">static const DIType * undefType</div><div class="ttdoc">The undefined type (•); void. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8h_source.html#l00027">TypeBasedHeapCloning.h:27</a></div></div>
|
|
1713
1712
|
<div class="ttc" id="classSVF_1_1Options_html_a930ed87e35ba7502f9d00be6f17f902f"><div class="ttname"><a href="classSVF_1_1Options.html#a930ed87e35ba7502f9d00be6f17f902f">SVF::Options::TBHCAllReuse</a></div><div class="ttdeci">static const llvm::cl::opt< bool > TBHCAllReuse</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00241">Options.h:241</a></div></div>
|
|
1714
1713
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
@@ -1717,6 +1716,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1717
1716
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a791a01f5d3528f8a8bf19369b5c61c37"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">SVF::StmtVFGNode::getPAGSrcNodeID</a></div><div class="ttdeci">NodeID getPAGSrcNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00138">VFGNode.h:138</a></div></div>
|
|
1718
1717
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00155">PointerAnalysis.h:155</a></div></div>
|
|
1719
1718
|
<div class="ttc" id="classSVF_1_1PointsTo_html_ab196d86cfb48d1c5d27a0c03c7497afa"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">SVF::PointsTo::set</a></div><div class="ttdeci">void set(u32_t n)</div><div class="ttdoc">Inserts n in the set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00149">PointsTo.cpp:149</a></div></div>
|
|
1719
|
+
<div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a56dc95bb4b6d48f82c87c6280237990a"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">SVF::FlowSensitiveTBHC::getAllFieldsObjVars</a></div><div class="ttdeci">virtual const NodeBS & getAllFieldsObjVars(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00532">FlowSensitiveTBHC.cpp:532</a></div></div>
|
|
1720
1720
|
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00176">SVFBasicTypes.h:176</a></div></div>
|
|
1721
1721
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_af90d2ccb01402c5ca9d7a059f345c816"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#af90d2ccb01402c5ca9d7a059f345c816">SVF::PointerAnalysis::isFIObjNode</a></div><div class="ttdeci">bool isFIObjNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00345">PointerAnalysis.h:345</a></div></div>
|
|
1722
1722
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
@@ -1724,7 +1724,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1724
1724
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0b6c03af568b70903da6b200ac86c951"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">SVF::SVFStmt::isPTAEdge</a></div><div class="ttdeci">bool isPTAEdge() const</div><div class="ttdoc">Whether src and dst nodes are both of pointer type. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00056">SVFStatements.cpp:56</a></div></div>
|
|
1725
1725
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_ae520e0551e63223a908f92a6b9667356"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#ae520e0551e63223a908f92a6b9667356">SVF::TypeBasedHeapCloning::getFilterSet</a></div><div class="ttdeci">PointsTo & getFilterSet(NodeID loc)</div><div class="ttdoc">Returns the filter set of a location. Not const; could create empty PointsTo. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00113">TypeBasedHeapCloning.cpp:113</a></div></div>
|
|
1726
1726
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
|
|
1727
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a07716ca7f769f704a80ccee1a6ad7ee2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a07716ca7f769f704a80ccee1a6ad7ee2">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
1727
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a07716ca7f769f704a80ccee1a6ad7ee2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a07716ca7f769f704a80ccee1a6ad7ee2">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00414">SVFIR.h:414</a></div></div>
|
|
1728
1728
|
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00027">PointsTo.h:27</a></div></div>
|
|
1729
1729
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_a34064efe336ada815b31050f683c7ce1"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#a34064efe336ada815b31050f683c7ce1">SVF::TypeBasedHeapCloning::init</a></div><div class="ttdeci">bool init(NodeID loc, NodeID p, const DIType *tildet, bool reuse, bool gep=false)</div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00271">TypeBasedHeapCloning.cpp:271</a></div></div>
|
|
1730
1730
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_aeea7089c6f54b44f0509d41686b649f6"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#aeea7089c6f54b44f0509d41686b649f6">SVF::TypeBasedHeapCloning::getOriginalObj</a></div><div class="ttdeci">NodeID getOriginalObj(NodeID c) const</div><div class="ttdoc">Returns the original object c is cloned from. If c is not a clone, returns itself. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00101">TypeBasedHeapCloning.cpp:101</a></div></div>
|
|
@@ -1804,7 +1804,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1804
1804
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a42a7e39e0e15576742f8ba7c32579ea2"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a42a7e39e0e15576742f8ba7c32579ea2">SVF::FlowSensitive::isStrongUpdate</a></div><div class="ttdeci">bool isStrongUpdate(const SVFGNode *node, NodeID &singleton)</div><div class="ttdoc">Return TRUE if this is a strong update STORE statement. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00626">FlowSensitive.cpp:626</a></div></div>
|
|
1805
1805
|
<div class="ttc" id="cuddInt_8c_html_a5beb39637a978181c7c17714ac96672e"><div class="ttname"><a href="cuddInt_8c.html#a5beb39637a978181c7c17714ac96672e">empty</a></div><div class="ttdeci">static DdNode * empty</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l28567">cuddInt.c:28567</a></div></div>
|
|
1806
1806
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a4dd7615f42971da9b6ec1dc04f0ec4e6"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">SVF::StmtVFGNode::getPAGEdge</a></div><div class="ttdeci">const PAGEdge * getPAGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00133">VFGNode.h:133</a></div></div>
|
|
1807
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
1807
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00408">SVFIR.h:408</a></div></div>
|
|
1808
1808
|
<div class="ttc" id="classSVF_1_1PointsTo_html_af61271fefa574c39f405fdfee59a8b3f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">SVF::PointsTo::test</a></div><div class="ttdeci">bool test(u32_t n) const</div><div class="ttdoc">Returns true if n is in this set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00125">PointsTo.cpp:125</a></div></div>
|
|
1809
1809
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_a6363466e64eee4405806568d26206d2e"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#a6363466e64eee4405806568d26206d2e">SVF::TypeBasedHeapCloning::undefType</a></div><div class="ttdeci">static const DIType * undefType</div><div class="ttdoc">The undefined type (•); void. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8h_source.html#l00027">TypeBasedHeapCloning.h:27</a></div></div>
|
|
1810
1810
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ab492c283e2264b4cbd4c192e805b7750"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ab492c283e2264b4cbd4c192e805b7750">SVF::FlowSensitive::weakUpdateOutFromIn</a></div><div class="ttdeci">virtual bool weakUpdateOutFromIn(const SVFGNode *node)</div><div class="ttdoc">Handle weak updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00162">FlowSensitive.h:162</a></div></div>
|
|
@@ -1823,7 +1823,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1823
1823
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0b6c03af568b70903da6b200ac86c951"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">SVF::SVFStmt::isPTAEdge</a></div><div class="ttdeci">bool isPTAEdge() const</div><div class="ttdoc">Whether src and dst nodes are both of pointer type. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00056">SVFStatements.cpp:56</a></div></div>
|
|
1824
1824
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_ae520e0551e63223a908f92a6b9667356"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#ae520e0551e63223a908f92a6b9667356">SVF::TypeBasedHeapCloning::getFilterSet</a></div><div class="ttdeci">PointsTo & getFilterSet(NodeID loc)</div><div class="ttdoc">Returns the filter set of a location. Not const; could create empty PointsTo. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00113">TypeBasedHeapCloning.cpp:113</a></div></div>
|
|
1825
1825
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
|
|
1826
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a07716ca7f769f704a80ccee1a6ad7ee2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a07716ca7f769f704a80ccee1a6ad7ee2">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
1826
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a07716ca7f769f704a80ccee1a6ad7ee2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a07716ca7f769f704a80ccee1a6ad7ee2">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00414">SVFIR.h:414</a></div></div>
|
|
1827
1827
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a82b76087363b26fbe749653935569de7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">SVF::FlowSensitive::storeTime</a></div><div class="ttdeci">double storeTime</div><div class="ttdoc">time of store edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00316">FlowSensitive.h:316</a></div></div>
|
|
1828
1828
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a8ebe4342c1496b906ee1b6450558c3e8"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a8ebe4342c1496b906ee1b6450558c3e8">SVF::FlowSensitive::strongUpdateOutFromIn</a></div><div class="ttdeci">virtual bool strongUpdateOutFromIn(const SVFGNode *node, NodeID singleton)</div><div class="ttdoc">Handle strong updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00167">FlowSensitive.h:167</a></div></div>
|
|
1829
1829
|
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00027">PointsTo.h:27</a></div></div>
|
|
@@ -1911,9 +1911,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1911
1911
|
<p>Reimplemented from <a class="el" href="classSVF_1_1FlowSensitive.html#aeb1e002519123a67f8d18f78cda04bac">SVF::FlowSensitive</a>.</p>
|
|
1912
1912
|
|
|
1913
1913
|
<p class="definition">Definition at line <a class="el" href="FlowSensitiveTBHC_8cpp_source.html#l00091">91</a> of file <a class="el" href="FlowSensitiveTBHC_8cpp_source.html">FlowSensitiveTBHC.cpp</a>.</p>
|
|
1914
|
-
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// Get points-to targets may be used by next SVFG node.</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// Propagate points-to set for node used in dst.</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> & pts = edge-><a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// Since the base Andersen's analysis does NOT perform type-based heap cloning,</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">// it uses only the base objects; we want to account for clones too.</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> edgePtsAndClones;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// TODO: the conditional bool may be unnecessary.</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// Adding all clones is redundant, and introduces too many calls to propVarPts...</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// This introduces performance and precision penalties.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">// We should filter out according to src.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">bool</span> isStore = <span class="keyword">false</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *tildet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> storePts;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a> *store = SVFUtil::dyn_cast<StoreSVFGNode>(src))</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  tildet = <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a045ffbf7eea276d154be2cf883ea71f7">getTypeFromCTirMetadata</a>(store);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  isStore = <span class="keyword">true</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  storePts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(store->getPAGDstNodeID());</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &filterSet = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#ae520e0551e63223a908f92a6b9667356">getFilterSet</a>(src-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : pts)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span> (!filterSet.test(o))</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  edgePtsAndClones.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(o);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> c : <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#af127bed600087b1ace26088a76ca8998">getClones</a>(o))</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (!isStore)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (!filterSet.test(c))</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  edgePtsAndClones.set(c);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (storePts.<a class="code" href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">test</a>(c) && !filterSet.test(c))</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  edgePtsAndClones.set(c);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a> *gep = SVFUtil::dyn_cast<GepObjPN>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(o)))</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// Want the geps which are at the same "level" as this one (same mem obj, same offset).</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &geps = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#ad043ab95900849a5a894ca4bada4e032">getGepObjsFromMemObj</a>(gep->getMemObj(), gep->getLocationSet().getOffset());</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> g : geps)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *gepType = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#a219edef6c013a953ed12ee3c56bde6de">getType</a>(g);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (!isStore || gepType || <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#add00f1c20a524c0be903af679bd6f638">isBase</a>(tildet, gepType))</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">if</span> (!filterSet.test(g))</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  edgePtsAndClones.set(g);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : edgePtsAndClones)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(o, src, dst))</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#af90d2ccb01402c5ca9d7a059f345c816">isFIObjNode</a>(o))</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &allFields = <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a96089e24ef6aaa7f7d30c50a64d5042f">getAllFieldsObjNode</a>(o);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> f : allFields)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(f, src, dst))</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> }</div><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>
|
|
1914
|
+
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// Get points-to targets may be used by next SVFG node.</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// Propagate points-to set for node used in dst.</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> & pts = edge-><a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// Since the base Andersen's analysis does NOT perform type-based heap cloning,</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">// it uses only the base objects; we want to account for clones too.</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> edgePtsAndClones;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// TODO: the conditional bool may be unnecessary.</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// Adding all clones is redundant, and introduces too many calls to propVarPts...</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// This introduces performance and precision penalties.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">// We should filter out according to src.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">bool</span> isStore = <span class="keyword">false</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *tildet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> storePts;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a> *store = SVFUtil::dyn_cast<StoreSVFGNode>(src))</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  tildet = <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a045ffbf7eea276d154be2cf883ea71f7">getTypeFromCTirMetadata</a>(store);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  isStore = <span class="keyword">true</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  storePts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(store->getPAGDstNodeID());</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &filterSet = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#ae520e0551e63223a908f92a6b9667356">getFilterSet</a>(src-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : pts)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span> (!filterSet.test(o))</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  edgePtsAndClones.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(o);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> c : <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#af127bed600087b1ace26088a76ca8998">getClones</a>(o))</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (!isStore)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (!filterSet.test(c))</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  edgePtsAndClones.set(c);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (storePts.<a class="code" href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">test</a>(c) && !filterSet.test(c))</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  edgePtsAndClones.set(c);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a> *gep = SVFUtil::dyn_cast<GepObjPN>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(o)))</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// Want the geps which are at the same "level" as this one (same mem obj, same offset).</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &geps = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#ad043ab95900849a5a894ca4bada4e032">getGepObjsFromMemObj</a>(gep->getMemObj(), gep->getLocationSet().getOffset());</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> g : geps)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *gepType = <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#a219edef6c013a953ed12ee3c56bde6de">getType</a>(g);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (!isStore || gepType || <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#add00f1c20a524c0be903af679bd6f638">isBase</a>(tildet, gepType))</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">if</span> (!filterSet.test(g))</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  edgePtsAndClones.set(g);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : edgePtsAndClones)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(o, src, dst))</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#af90d2ccb01402c5ca9d7a059f345c816">isFIObjNode</a>(o))</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &allFields = <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">getAllFieldsObjVars</a>(o);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> f : allFields)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(f, src, dst))</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> }</div><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>
|
|
1915
1915
|
<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>
|
|
1916
|
-
<div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a96089e24ef6aaa7f7d30c50a64d5042f"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a96089e24ef6aaa7f7d30c50a64d5042f">SVF::FlowSensitiveTBHC::getAllFieldsObjNode</a></div><div class="ttdeci">virtual const NodeBS & getAllFieldsObjNode(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00532">FlowSensitiveTBHC.cpp:532</a></div></div>
|
|
1917
1916
|
<div class="ttc" id="classSVF_1_1PointsTo_html_af61271fefa574c39f405fdfee59a8b3f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">SVF::PointsTo::test</a></div><div class="ttdeci">bool test(u32_t n) const</div><div class="ttdoc">Returns true if n is in this set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00125">PointsTo.cpp:125</a></div></div>
|
|
1918
1917
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
1919
1918
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
@@ -1921,6 +1920,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1921
1920
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_ad043ab95900849a5a894ca4bada4e032"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#ad043ab95900849a5a894ca4bada4e032">SVF::TypeBasedHeapCloning::getGepObjsFromMemObj</a></div><div class="ttdeci">const NodeBS & getGepObjsFromMemObj(const MemObj *memObj, unsigned offset)</div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00132">TypeBasedHeapCloning.cpp:132</a></div></div>
|
|
1922
1921
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
|
|
1923
1922
|
<div class="ttc" id="classSVF_1_1PointsTo_html_ab196d86cfb48d1c5d27a0c03c7497afa"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">SVF::PointsTo::set</a></div><div class="ttdeci">void set(u32_t n)</div><div class="ttdoc">Inserts n in the set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00149">PointsTo.cpp:149</a></div></div>
|
|
1923
|
+
<div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a56dc95bb4b6d48f82c87c6280237990a"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">SVF::FlowSensitiveTBHC::getAllFieldsObjVars</a></div><div class="ttdeci">virtual const NodeBS & getAllFieldsObjVars(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00532">FlowSensitiveTBHC.cpp:532</a></div></div>
|
|
1924
1924
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_add00f1c20a524c0be903af679bd6f638"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#add00f1c20a524c0be903af679bd6f638">SVF::TypeBasedHeapCloning::isBase</a></div><div class="ttdeci">bool isBase(const DIType *a, const DIType *b) const</div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00042">TypeBasedHeapCloning.cpp:42</a></div></div>
|
|
1925
1925
|
<div class="ttc" id="classSVF_1_1TypeBasedHeapCloning_html_a219edef6c013a953ed12ee3c56bde6de"><div class="ttname"><a href="classSVF_1_1TypeBasedHeapCloning.html#a219edef6c013a953ed12ee3c56bde6de">SVF::TypeBasedHeapCloning::getType</a></div><div class="ttdeci">const DIType * getType(NodeID o) const</div><div class="ttdoc">Returns the type (from objToType) of o. Asserts existence. </div><div class="ttdef"><b>Definition:</b> <a href="TypeBasedHeapCloning_8cpp_source.html#l00058">TypeBasedHeapCloning.cpp:58</a></div></div>
|
|
1926
1926
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_af90d2ccb01402c5ca9d7a059f345c816"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#af90d2ccb01402c5ca9d7a059f345c816">SVF::PointerAnalysis::isFIObjNode</a></div><div class="ttdeci">bool isFIObjNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00345">PointerAnalysis.h:345</a></div></div>
|
|
@@ -508,8 +508,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
508
508
|
|
|
509
509
|
<p>Reimplemented from <a class="el" href="classSVF_1_1MRSVFGNode.html#ab200b96b8dbff5d5fc5e3b114ae45921">SVF::MRSVFGNode</a>.</p>
|
|
510
510
|
|
|
511
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
512
|
-
<div class="fragment"><div class="line"><a name="
|
|
511
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00052">52</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
512
|
+
<div class="fragment"><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  std::string str;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  rawstr << <span class="stringliteral">"FormalINSVFGNode ID: "</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" {fun: "</span> << <a class="code" href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() << <span class="stringliteral">"}"</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  rawstr << <a class="code" href="classSVF_1_1FormalINSVFGNode.html#a07e23637c89164add5fc3ea52b250735">getMRVer</a>()-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << <a class="code" href="classSVF_1_1FormalINSVFGNode.html#a07e23637c89164add5fc3ea52b250735">getMRVer</a>()-><a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>() <<</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="stringliteral">" = ENCHI(MR_"</span> << <a class="code" href="classSVF_1_1FormalINSVFGNode.html#a07e23637c89164add5fc3ea52b250735">getMRVer</a>()-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << <a class="code" href="classSVF_1_1FormalINSVFGNode.html#a07e23637c89164add5fc3ea52b250735">getMRVer</a>()-><a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>() << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  rawstr << <a class="code" href="classSVF_1_1FormalINSVFGNode.html#a07e23637c89164add5fc3ea52b250735">getMRVer</a>()-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div><div class="ttc" id="classSVF_1_1MemRegion_html_a7d38f6ef18106eb388b3a289aad79802"><div class="ttname"><a href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">SVF::MemRegion::getMRID</a></div><div class="ttdeci">MRID getMRID() const</div><div class="ttdoc">Return memory region ID. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00074">MemRegion.h:74</a></div></div>
|
|
513
513
|
<div class="ttc" id="classSVF_1_1VFGNode_html_ab98e74dfd4756e70e3e3c5b7d5e5ae27"><div class="ttname"><a href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">SVF::VFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Get the function of this SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00084">VFGNode.h:84</a></div></div>
|
|
514
514
|
<div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00231">SVFBasicTypes.h:231</a></div></div>
|
|
515
515
|
<div class="ttc" id="classSVF_1_1FormalINSVFGNode_html_a07e23637c89164add5fc3ea52b250735"><div class="ttname"><a href="classSVF_1_1FormalINSVFGNode.html#a07e23637c89164add5fc3ea52b250735">SVF::FormalINSVFGNode::getMRVer</a></div><div class="ttdeci">const MRVer * getMRVer() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00104">SVFGNode.h:104</a></div></div>
|
|
@@ -321,8 +321,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
321
321
|
|
|
322
322
|
<p>Constructor. </p>
|
|
323
323
|
|
|
324
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
325
|
-
<div class="fragment"><div class="line"><a name="
|
|
324
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00166">166</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
325
|
+
<div class="fragment"><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  : <a class="code" href="classSVF_1_1MRSVFGNode.html#a2c2b0476c49c5f2d4ebe6eec22c7345f">MRSVFGNode</a>(<span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75ac2c5b04acc4f754e70a782adee522e09">FPOUT</a>)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1MRSVFGNode.html#a640153ff592bf0058882a0d05a76b1ba">cpts</a> = mrVer->getMR()->getPointsTo();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  ver = mrVer;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  funExitNode = funExit; </div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> }</div><div class="ttc" id="classSVF_1_1VFGNode_html_a99a54cf322b0eec3a1ef109ce5f2db75ac2c5b04acc4f754e70a782adee522e09"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75ac2c5b04acc4f754e70a782adee522e09">SVF::VFGNode::FPOUT</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00056">VFGNode.h:56</a></div></div>
|
|
326
326
|
<div class="ttc" id="classSVF_1_1MRSVFGNode_html_a2c2b0476c49c5f2d4ebe6eec22c7345f"><div class="ttname"><a href="classSVF_1_1MRSVFGNode.html#a2c2b0476c49c5f2d4ebe6eec22c7345f">SVF::MRSVFGNode::MRSVFGNode</a></div><div class="ttdeci">MRSVFGNode(NodeID id, VFGNodeK k)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00048">SVFGNode.h:48</a></div></div>
|
|
327
327
|
<div class="ttc" id="classSVF_1_1MRSVFGNode_html_a640153ff592bf0058882a0d05a76b1ba"><div class="ttname"><a href="classSVF_1_1MRSVFGNode.html#a640153ff592bf0058882a0d05a76b1ba">SVF::MRSVFGNode::cpts</a></div><div class="ttdeci">NodeBS cpts</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00045">SVFGNode.h:45</a></div></div>
|
|
328
328
|
</div><!-- fragment -->
|
|
@@ -498,8 +498,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
498
498
|
|
|
499
499
|
<p>Reimplemented from <a class="el" href="classSVF_1_1MRSVFGNode.html#ab200b96b8dbff5d5fc5e3b114ae45921">SVF::MRSVFGNode</a>.</p>
|
|
500
500
|
|
|
501
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
502
|
-
<div class="fragment"><div class="line"><a name="
|
|
501
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00062">62</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
502
|
+
<div class="fragment"><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  std::string str;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  rawstr << <span class="stringliteral">"FormalOUTSVFGNode ID: "</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" {fun: "</span> << <a class="code" href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() << <span class="stringliteral">"}"</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  rawstr << <span class="stringliteral">"RETMU("</span> << <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html#ad2e841a18b777220c2b13f38289d6168">getMRVer</a>()-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html#ad2e841a18b777220c2b13f38289d6168">getMRVer</a>()-><a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>() << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  rawstr << <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html#ad2e841a18b777220c2b13f38289d6168">getMRVer</a>()-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div><div class="ttc" id="classSVF_1_1MemRegion_html_a7d38f6ef18106eb388b3a289aad79802"><div class="ttname"><a href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">SVF::MemRegion::getMRID</a></div><div class="ttdeci">MRID getMRID() const</div><div class="ttdoc">Return memory region ID. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00074">MemRegion.h:74</a></div></div>
|
|
503
503
|
<div class="ttc" id="classSVF_1_1VFGNode_html_ab98e74dfd4756e70e3e3c5b7d5e5ae27"><div class="ttname"><a href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">SVF::VFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Get the function of this SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00084">VFGNode.h:84</a></div></div>
|
|
504
504
|
<div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00231">SVFBasicTypes.h:231</a></div></div>
|
|
505
505
|
<div class="ttc" id="classSVF_1_1FormalOUTSVFGNode_html_ad2e841a18b777220c2b13f38289d6168"><div class="ttname"><a href="classSVF_1_1FormalOUTSVFGNode.html#ad2e841a18b777220c2b13f38289d6168">SVF::FormalOUTSVFGNode::getMRVer</a></div><div class="ttdeci">const MRVer * getMRVer() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00150">SVFGNode.h:150</a></div></div>
|