svf-tools 1.0.320 → 1.0.324
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/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +8 -8
- 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 +2 -2
- 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/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
- 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_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +7 -7
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +24 -24
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +13 -13
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +13 -13
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +8 -8
- 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 +7 -7
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +42 -42
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +58 -58
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +153 -154
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/SVFStatements_8h.html +11 -11
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +133 -132
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFVariables_8h.html +9 -9
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +78 -78
- 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 +3 -3
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +17 -17
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +48 -48
- package/SVF-doxygen/html/html/VFG_8h_source.html +35 -35
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +137 -0
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +500 -0
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +7 -7
- 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 +9 -9
- 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 +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +155 -0
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +756 -0
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.png +0 -0
- 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_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 +169 -0
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +537 -0
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +169 -0
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +547 -0
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +172 -0
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +556 -0
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +75 -22
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +479 -93
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +11 -11
- 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_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
- 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 +57 -21
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +253 -89
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +7 -7
- 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 +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +167 -0
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +531 -0
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +165 -0
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +502 -0
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +167 -0
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +577 -0
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.png +0 -0
- 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_1FlowDDA-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +26 -26
- 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_1GenericEdge.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +61 -61
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +57 -22
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +259 -118
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +170 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +752 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.png +0 -0
- 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 +43 -43
- 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 +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +27 -27
- 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 +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1LoadMU-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +57 -21
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +253 -89
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +147 -147
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +102 -102
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +24 -23
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +36 -34
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +142 -0
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +649 -0
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +165 -0
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +644 -0
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
- 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_1PAGBuilderFromFile.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +74 -22
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +447 -98
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +53 -53
- 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_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 +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +58 -58
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +68 -68
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +132 -133
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +730 -748
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +180 -180
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +57 -39
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +82 -82
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +9 -9
- 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_1StoreCHI-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +57 -21
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +260 -89
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +7 -7
- 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 +3 -3
- 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 +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +147 -0
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +794 -0
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +42 -42
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +145 -145
- package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +163 -0
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +521 -0
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
- 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 +139 -0
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +544 -0
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
- package/SVF-doxygen/html/html/classes.html +18 -18
- package/SVF-doxygen/html/html/functions_a.html +55 -55
- package/SVF-doxygen/html/html/functions_b.html +2 -2
- package/SVF-doxygen/html/html/functions_c.html +52 -57
- package/SVF-doxygen/html/html/functions_d.html +4 -4
- package/SVF-doxygen/html/html/functions_f.html +5 -5
- package/SVF-doxygen/html/html/functions_func.html +54 -54
- package/SVF-doxygen/html/html/functions_func_b.html +2 -2
- package/SVF-doxygen/html/html/functions_func_c.html +30 -30
- package/SVF-doxygen/html/html/functions_func_d.html +4 -4
- package/SVF-doxygen/html/html/functions_func_f.html +2 -2
- package/SVF-doxygen/html/html/functions_func_g.html +107 -105
- package/SVF-doxygen/html/html/functions_func_h.html +6 -6
- package/SVF-doxygen/html/html/functions_func_l.html +3 -3
- package/SVF-doxygen/html/html/functions_func_n.html +2 -2
- package/SVF-doxygen/html/html/functions_func_o.html +15 -15
- package/SVF-doxygen/html/html/functions_func_p.html +2 -2
- package/SVF-doxygen/html/html/functions_func_s.html +4 -4
- package/SVF-doxygen/html/html/functions_func_t.html +20 -20
- package/SVF-doxygen/html/html/functions_func_u.html +2 -2
- package/SVF-doxygen/html/html/functions_func_v.html +5 -5
- package/SVF-doxygen/html/html/functions_g.html +123 -121
- package/SVF-doxygen/html/html/functions_h.html +6 -6
- package/SVF-doxygen/html/html/functions_i.html +15 -15
- package/SVF-doxygen/html/html/functions_k.html +9 -0
- package/SVF-doxygen/html/html/functions_l.html +11 -11
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +2 -2
- package/SVF-doxygen/html/html/functions_o.html +32 -35
- package/SVF-doxygen/html/html/functions_p.html +34 -51
- package/SVF-doxygen/html/html/functions_r.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +32 -16
- package/SVF-doxygen/html/html/functions_t.html +24 -24
- 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_l.html +3 -3
- package/SVF-doxygen/html/html/functions_type_p.html +3 -19
- package/SVF-doxygen/html/html/functions_type_s.html +19 -3
- package/SVF-doxygen/html/html/functions_type_v.html +1 -1
- package/SVF-doxygen/html/html/functions_u.html +2 -2
- package/SVF-doxygen/html/html/functions_v.html +10 -10
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_g.html +8 -8
- package/SVF-doxygen/html/html/functions_vars_i.html +9 -9
- package/SVF-doxygen/html/html/functions_vars_k.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_l.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_o.html +3 -4
- package/SVF-doxygen/html/html/functions_vars_p.html +4 -7
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/hierarchy.html +65 -65
- package/SVF-doxygen/html/html/namespaceSVF.html +24 -24
- package/SVF-doxygen/html/html/search/all_1.js +39 -39
- package/SVF-doxygen/html/html/search/all_10.js +12 -17
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +15 -11
- package/SVF-doxygen/html/html/search/all_14.js +7 -7
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +4 -4
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +8 -9
- package/SVF-doxygen/html/html/search/all_4.js +2 -2
- package/SVF-doxygen/html/html/search/all_6.js +4 -4
- package/SVF-doxygen/html/html/search/all_7.js +54 -53
- package/SVF-doxygen/html/html/search/all_8.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +4 -4
- package/SVF-doxygen/html/html/search/all_b.js +3 -0
- package/SVF-doxygen/html/html/search/all_c.js +7 -7
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +4 -4
- package/SVF-doxygen/html/html/search/all_f.js +6 -6
- package/SVF-doxygen/html/html/search/classes_0.js +1 -1
- package/SVF-doxygen/html/html/search/classes_1.js +1 -1
- package/SVF-doxygen/html/html/search/classes_11.js +1 -1
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_2.js +5 -5
- package/SVF-doxygen/html/html/search/classes_3.js +2 -2
- package/SVF-doxygen/html/html/search/classes_5.js +1 -1
- package/SVF-doxygen/html/html/search/classes_6.js +2 -2
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_b.js +1 -1
- package/SVF-doxygen/html/html/search/classes_c.js +1 -1
- package/SVF-doxygen/html/html/search/classes_d.js +1 -1
- package/SVF-doxygen/html/html/search/classes_f.js +1 -1
- package/SVF-doxygen/html/html/search/functions_0.js +39 -39
- package/SVF-doxygen/html/html/search/functions_1.js +1 -1
- package/SVF-doxygen/html/html/search/functions_10.js +4 -4
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_13.js +2 -2
- package/SVF-doxygen/html/html/search/functions_2.js +7 -7
- package/SVF-doxygen/html/html/search/functions_3.js +2 -2
- package/SVF-doxygen/html/html/search/functions_5.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +49 -48
- package/SVF-doxygen/html/html/search/functions_7.js +2 -2
- package/SVF-doxygen/html/html/search/functions_a.js +3 -3
- package/SVF-doxygen/html/html/search/functions_c.js +1 -1
- package/SVF-doxygen/html/html/search/functions_d.js +2 -2
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +7 -3
- 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_b.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_f.js +3 -7
- package/SVF-doxygen/html/html/search/variables_10.js +2 -3
- package/SVF-doxygen/html/html/search/variables_14.js +4 -4
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +4 -4
- package/SVF-doxygen/html/html/search/variables_9.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +3 -1
- package/SVF-doxygen/html/html/search/variables_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- package/SVF-doxygen/html/html/search/variables_f.js +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
- 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 +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +1 -1
- 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/CHG.h +2 -2
- package/include/Graphs/ConsG.h +10 -10
- package/include/Graphs/ICFGNode.h +4 -4
- package/include/Graphs/IRGraph.h +7 -7
- package/include/Graphs/VFG.h +13 -13
- package/include/Graphs/VFGNode.h +6 -6
- package/include/MSSA/MSSAMuChi.h +6 -6
- package/include/MSSA/MemRegion.h +11 -11
- package/include/MSSA/MemSSA.h +11 -11
- package/include/MemoryModel/PointerAnalysis.h +9 -9
- package/include/MemoryModel/PointerAnalysisImpl.h +4 -4
- package/include/MemoryModel/SVFIR.h +82 -83
- package/include/MemoryModel/SVFStatements.h +97 -92
- package/include/MemoryModel/SVFVariables.h +71 -71
- package/include/SVF-FE/SVFIRBuilder.h +24 -24
- package/include/Util/IRAnnotator.h +1 -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 +6 -6
- package/lib/DDA/DDAClient.cpp +6 -6
- package/lib/DDA/DDAStat.cpp +2 -2
- package/lib/DDA/FlowDDA.cpp +4 -4
- package/lib/Graphs/ConsG.cpp +34 -34
- package/lib/Graphs/ICFG.cpp +4 -4
- package/lib/Graphs/IRGraph.cpp +21 -21
- package/lib/Graphs/OfflineConsG.cpp +8 -8
- package/lib/Graphs/SVFG.cpp +14 -14
- package/lib/Graphs/ThreadCallGraph.cpp +2 -2
- package/lib/Graphs/VFG.cpp +52 -52
- package/lib/MSSA/MemRegion.cpp +23 -23
- package/lib/MSSA/MemSSA.cpp +15 -15
- package/lib/MTA/MTAAnnotator.cpp +5 -5
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +13 -13
- package/lib/MemoryModel/PointerAnalysis.cpp +9 -9
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +14 -14
- package/lib/MemoryModel/SVFIR.cpp +95 -95
- package/lib/MemoryModel/SVFStatements.cpp +24 -24
- package/lib/MemoryModel/SVFVariables.cpp +19 -19
- package/lib/SABER/LeakChecker.cpp +2 -2
- package/lib/SABER/SaberSVFGBuilder.cpp +5 -5
- package/lib/SVF-FE/Graph2Json.cpp +3 -3
- package/lib/SVF-FE/SVFIRBuilder.cpp +22 -22
- package/lib/Util/PTAStat.cpp +8 -8
- package/lib/Util/TypeBasedHeapCloning.cpp +22 -22
- package/lib/WPA/Andersen.cpp +13 -13
- package/lib/WPA/AndersenSFR.cpp +2 -2
- package/lib/WPA/AndersenStat.cpp +6 -6
- package/lib/WPA/FlowSensitive.cpp +8 -8
- package/lib/WPA/FlowSensitiveStat.cpp +4 -4
- package/lib/WPA/FlowSensitiveTBHC.cpp +9 -9
- package/lib/WPA/VersionedFlowSensitive.cpp +2 -2
- package/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -1
- package/package.json +1 -1
package/lib/DDA/DDAStat.cpp
CHANGED
|
@@ -208,7 +208,7 @@ void DDAStat::performStat()
|
|
|
208
208
|
for (SVFIR::const_iterator nodeIt = SVFIR::getPAG()->begin(), nodeEit = SVFIR::getPAG()->end(); nodeIt != nodeEit; nodeIt++)
|
|
209
209
|
{
|
|
210
210
|
PAGNode* pagNode = nodeIt->second;
|
|
211
|
-
if(SVFUtil::isa<
|
|
211
|
+
if(SVFUtil::isa<ObjVar>(pagNode))
|
|
212
212
|
{
|
|
213
213
|
if(getPTA()->isLocalVarInRecursiveFun(nodeIt->first))
|
|
214
214
|
{
|
|
@@ -242,7 +242,7 @@ void DDAStat::performStat()
|
|
|
242
242
|
PTNumStatMap["PointsToBlkPtr"] = _NumOfBlackholePtr;
|
|
243
243
|
PTNumStatMap["NumOfMustAA"] = _TotalNumOfMustAliases;
|
|
244
244
|
PTNumStatMap["NumOfInfePath"] = _TotalNumOfInfeasiblePath;
|
|
245
|
-
PTNumStatMap["NumOfStore"] = SVFIR::getPAG()->
|
|
245
|
+
PTNumStatMap["NumOfStore"] = SVFIR::getPAG()->getPTASVFStmtSet(PAGEdge::Store).size();
|
|
246
246
|
PTNumStatMap["MemoryUsageVmrss"] = _vmrssUsageAfter - _vmrssUsageBefore;
|
|
247
247
|
PTNumStatMap["MemoryUsageVmsize"] = _vmsizeUsageAfter - _vmsizeUsageBefore;
|
|
248
248
|
|
package/lib/DDA/FlowDDA.cpp
CHANGED
|
@@ -126,14 +126,14 @@ PointsTo FlowDDA::processGepPts(const GepSVFGNode* gep, const PointsTo& srcPts)
|
|
|
126
126
|
tmpDstPts.set(ptd);
|
|
127
127
|
else
|
|
128
128
|
{
|
|
129
|
-
if (SVFUtil::isa<
|
|
129
|
+
if (SVFUtil::isa<VariantGepStmt>(gep->getPAGEdge()))
|
|
130
130
|
{
|
|
131
131
|
setObjFieldInsensitive(ptd);
|
|
132
|
-
tmpDstPts.set(
|
|
132
|
+
tmpDstPts.set(getFIObjVar(ptd));
|
|
133
133
|
}
|
|
134
|
-
else if (const
|
|
134
|
+
else if (const NormalGepStmt* normalGep = SVFUtil::dyn_cast<NormalGepStmt>(gep->getPAGEdge()))
|
|
135
135
|
{
|
|
136
|
-
NodeID fieldSrcPtdNode =
|
|
136
|
+
NodeID fieldSrcPtdNode = getGepObjVar(ptd, normalGep->getLocationSet());
|
|
137
137
|
tmpDstPts.set(fieldSrcPtdNode);
|
|
138
138
|
}
|
|
139
139
|
else
|
package/lib/Graphs/ConsG.cpp
CHANGED
|
@@ -49,89 +49,89 @@ void ConstraintGraph::buildCG()
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
// initialize edges
|
|
52
|
-
PAGEdge::
|
|
53
|
-
for (PAGEdge::
|
|
52
|
+
PAGEdge::SVFStmtSetTy& addrs = getPAGEdgeSet(PAGEdge::Addr);
|
|
53
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = addrs.begin(), eiter =
|
|
54
54
|
addrs.end(); iter != eiter; ++iter)
|
|
55
55
|
{
|
|
56
56
|
PAGEdge* edge = *iter;
|
|
57
57
|
addAddrCGEdge(edge->getSrcID(),edge->getDstID());
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
PAGEdge::
|
|
61
|
-
for (PAGEdge::
|
|
60
|
+
PAGEdge::SVFStmtSetTy& copys = getPAGEdgeSet(PAGEdge::Copy);
|
|
61
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = copys.begin(), eiter =
|
|
62
62
|
copys.end(); iter != eiter; ++iter)
|
|
63
63
|
{
|
|
64
64
|
PAGEdge* edge = *iter;
|
|
65
65
|
addCopyCGEdge(edge->getSrcID(),edge->getDstID());
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
PAGEdge::
|
|
69
|
-
for (PAGEdge::
|
|
68
|
+
PAGEdge::SVFStmtSetTy& phis = getPAGEdgeSet(PAGEdge::Phi);
|
|
69
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = phis.begin(), eiter =
|
|
70
70
|
phis.end(); iter != eiter; ++iter)
|
|
71
71
|
{
|
|
72
|
-
const
|
|
72
|
+
const PhiStmt* edge = SVFUtil::cast<PhiStmt>(*iter);
|
|
73
73
|
for(const auto opVar : edge->getOpndVars())
|
|
74
74
|
addCopyCGEdge(opVar->getId(),edge->getResID());
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
PAGEdge::
|
|
78
|
-
for (PAGEdge::
|
|
77
|
+
PAGEdge::SVFStmtSetTy& calls = getPAGEdgeSet(PAGEdge::Call);
|
|
78
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = calls.begin(), eiter =
|
|
79
79
|
calls.end(); iter != eiter; ++iter)
|
|
80
80
|
{
|
|
81
81
|
PAGEdge* edge = *iter;
|
|
82
82
|
addCopyCGEdge(edge->getSrcID(),edge->getDstID());
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
PAGEdge::
|
|
86
|
-
for (PAGEdge::
|
|
85
|
+
PAGEdge::SVFStmtSetTy& rets = getPAGEdgeSet(PAGEdge::Ret);
|
|
86
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = rets.begin(), eiter =
|
|
87
87
|
rets.end(); iter != eiter; ++iter)
|
|
88
88
|
{
|
|
89
89
|
PAGEdge* edge = *iter;
|
|
90
90
|
addCopyCGEdge(edge->getSrcID(),edge->getDstID());
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
PAGEdge::
|
|
94
|
-
for (PAGEdge::
|
|
93
|
+
PAGEdge::SVFStmtSetTy& tdfks = getPAGEdgeSet(PAGEdge::ThreadFork);
|
|
94
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = tdfks.begin(), eiter =
|
|
95
95
|
tdfks.end(); iter != eiter; ++iter)
|
|
96
96
|
{
|
|
97
97
|
PAGEdge* edge = *iter;
|
|
98
98
|
addCopyCGEdge(edge->getSrcID(),edge->getDstID());
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
PAGEdge::
|
|
102
|
-
for (PAGEdge::
|
|
101
|
+
PAGEdge::SVFStmtSetTy& tdjns = getPAGEdgeSet(PAGEdge::ThreadJoin);
|
|
102
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = tdjns.begin(), eiter =
|
|
103
103
|
tdjns.end(); iter != eiter; ++iter)
|
|
104
104
|
{
|
|
105
105
|
PAGEdge* edge = *iter;
|
|
106
106
|
addCopyCGEdge(edge->getSrcID(),edge->getDstID());
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
PAGEdge::
|
|
110
|
-
for (PAGEdge::
|
|
109
|
+
PAGEdge::SVFStmtSetTy& ngeps = getPAGEdgeSet(PAGEdge::NormalGep);
|
|
110
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = ngeps.begin(), eiter =
|
|
111
111
|
ngeps.end(); iter != eiter; ++iter)
|
|
112
112
|
{
|
|
113
|
-
|
|
113
|
+
NormalGepStmt* edge = SVFUtil::cast<NormalGepStmt>(*iter);
|
|
114
114
|
addNormalGepCGEdge(edge->getSrcID(),edge->getDstID(),edge->getLocationSet());
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
PAGEdge::
|
|
118
|
-
for (PAGEdge::
|
|
117
|
+
PAGEdge::SVFStmtSetTy& vgeps = getPAGEdgeSet(PAGEdge::VariantGep);
|
|
118
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = vgeps.begin(), eiter =
|
|
119
119
|
vgeps.end(); iter != eiter; ++iter)
|
|
120
120
|
{
|
|
121
|
-
|
|
121
|
+
VariantGepStmt* edge = SVFUtil::cast<VariantGepStmt>(*iter);
|
|
122
122
|
addVariantGepCGEdge(edge->getSrcID(),edge->getDstID());
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
PAGEdge::
|
|
126
|
-
for (PAGEdge::
|
|
125
|
+
PAGEdge::SVFStmtSetTy& stores = getPAGEdgeSet(PAGEdge::Load);
|
|
126
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = stores.begin(), eiter =
|
|
127
127
|
stores.end(); iter != eiter; ++iter)
|
|
128
128
|
{
|
|
129
129
|
PAGEdge* edge = *iter;
|
|
130
130
|
addLoadCGEdge(edge->getSrcID(),edge->getDstID());
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
PAGEdge::
|
|
134
|
-
for (PAGEdge::
|
|
133
|
+
PAGEdge::SVFStmtSetTy& loads = getPAGEdgeSet(PAGEdge::Store);
|
|
134
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = loads.begin(), eiter =
|
|
135
135
|
loads.end(); iter != eiter; ++iter)
|
|
136
136
|
{
|
|
137
137
|
PAGEdge* edge = *iter;
|
|
@@ -156,7 +156,7 @@ AddrCGEdge::AddrCGEdge(ConstraintNode* s, ConstraintNode* d, EdgeID id)
|
|
|
156
156
|
// Retarget addr edges may lead s to be a dummy node
|
|
157
157
|
PAGNode* node = SVFIR::getPAG()->getGNode(s->getId());
|
|
158
158
|
if (!SVFModule::pagReadFromTXT())
|
|
159
|
-
assert(!SVFUtil::isa<
|
|
159
|
+
assert(!SVFUtil::isa<DummyValVar>(node) && "a dummy node??");
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
/*!
|
|
@@ -643,7 +643,7 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
|
|
|
643
643
|
|
|
644
644
|
if (briefDisplay)
|
|
645
645
|
{
|
|
646
|
-
if (SVFUtil::isa<
|
|
646
|
+
if (SVFUtil::isa<ValVar>(node))
|
|
647
647
|
{
|
|
648
648
|
if (nameDisplay)
|
|
649
649
|
rawstr << node->getId() << ":" << node->getValueName();
|
|
@@ -656,7 +656,7 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
|
|
|
656
656
|
else
|
|
657
657
|
{
|
|
658
658
|
// print the whole value
|
|
659
|
-
if (!SVFUtil::isa<
|
|
659
|
+
if (!SVFUtil::isa<DummyValVar>(node) && !SVFUtil::isa<DummyObjVar>(node))
|
|
660
660
|
rawstr << node->getId() << ":" << value2String(node->getValue());
|
|
661
661
|
else
|
|
662
662
|
rawstr << node->getId() << ":";
|
|
@@ -669,22 +669,22 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
|
|
|
669
669
|
static std::string getNodeAttributes(NodeType *n, ConstraintGraph*)
|
|
670
670
|
{
|
|
671
671
|
PAGNode* node = SVFIR::getPAG()->getGNode(n->getId());
|
|
672
|
-
if (SVFUtil::isa<
|
|
672
|
+
if (SVFUtil::isa<ValVar>(node))
|
|
673
673
|
{
|
|
674
|
-
if(SVFUtil::isa<
|
|
674
|
+
if(SVFUtil::isa<GepValVar>(node))
|
|
675
675
|
return "shape=hexagon";
|
|
676
|
-
else if (SVFUtil::isa<
|
|
676
|
+
else if (SVFUtil::isa<DummyValVar>(node))
|
|
677
677
|
return "shape=diamond";
|
|
678
678
|
else
|
|
679
679
|
return "shape=box";
|
|
680
680
|
}
|
|
681
|
-
else if (SVFUtil::isa<
|
|
681
|
+
else if (SVFUtil::isa<ObjVar>(node))
|
|
682
682
|
{
|
|
683
683
|
if(SVFUtil::isa<GepObjPN>(node))
|
|
684
684
|
return "shape=doubleoctagon";
|
|
685
|
-
else if(SVFUtil::isa<
|
|
685
|
+
else if(SVFUtil::isa<FIObjVar>(node))
|
|
686
686
|
return "shape=box3d";
|
|
687
|
-
else if (SVFUtil::isa<
|
|
687
|
+
else if (SVFUtil::isa<DummyObjVar>(node))
|
|
688
688
|
return "shape=tab";
|
|
689
689
|
else
|
|
690
690
|
return "shape=component";
|
package/lib/Graphs/ICFG.cpp
CHANGED
|
@@ -472,11 +472,11 @@ struct DOTGraphTraits<ICFG*> : public DOTGraphTraits<SVFIR*>
|
|
|
472
472
|
if (IntraBlockNode* bNode = SVFUtil::dyn_cast<IntraBlockNode>(node))
|
|
473
473
|
{
|
|
474
474
|
rawstr << "IntraBlockNode ID: " << bNode->getId() << " \t";
|
|
475
|
-
SVFIR::
|
|
475
|
+
SVFIR::SVFStmtList& edges = SVFIR::getPAG()->getPTASVFStmtList(bNode);
|
|
476
476
|
if (edges.empty()) {
|
|
477
477
|
rawstr << value2String(bNode->getInst()) << " \t";
|
|
478
478
|
} else {
|
|
479
|
-
for (SVFIR::
|
|
479
|
+
for (SVFIR::SVFStmtList::iterator it = edges.begin(), eit = edges.end(); it != eit; ++it)
|
|
480
480
|
{
|
|
481
481
|
const PAGEdge* edge = *it;
|
|
482
482
|
rawstr << edge->toString();
|
|
@@ -502,8 +502,8 @@ struct DOTGraphTraits<ICFG*> : public DOTGraphTraits<SVFIR*>
|
|
|
502
502
|
}
|
|
503
503
|
else if (GlobalBlockNode* glob = SVFUtil::dyn_cast<GlobalBlockNode>(node) )
|
|
504
504
|
{
|
|
505
|
-
SVFIR::
|
|
506
|
-
for (SVFIR::
|
|
505
|
+
SVFIR::SVFStmtList& edges = SVFIR::getPAG()->getPTASVFStmtList(glob);
|
|
506
|
+
for (SVFIR::SVFStmtList::iterator it = edges.begin(), eit = edges.end(); it != eit; ++it)
|
|
507
507
|
{
|
|
508
508
|
const PAGEdge* edge = *it;
|
|
509
509
|
rawstr << edge->toString();
|
package/lib/Graphs/IRGraph.cpp
CHANGED
|
@@ -57,8 +57,8 @@ bool IRGraph::addEdge(SVFVar* src, SVFVar* dst, SVFStmt* edge)
|
|
|
57
57
|
SVFStmt* IRGraph::hasNonlabeledEdge(SVFVar* src, SVFVar* dst, SVFStmt::PEDGEK kind)
|
|
58
58
|
{
|
|
59
59
|
SVFStmt edge(src,dst,kind);
|
|
60
|
-
SVFStmt::
|
|
61
|
-
if (it !=
|
|
60
|
+
SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&edge);
|
|
61
|
+
if (it != KindToSVFStmtSetMap[kind].end())
|
|
62
62
|
{
|
|
63
63
|
return *it;
|
|
64
64
|
}
|
|
@@ -71,8 +71,8 @@ SVFStmt* IRGraph::hasNonlabeledEdge(SVFVar* src, SVFVar* dst, SVFStmt::PEDGEK ki
|
|
|
71
71
|
SVFStmt* IRGraph::hasLabeledEdge(SVFVar* src, SVFVar* op1, SVFStmt::PEDGEK kind, const SVFVar* op2)
|
|
72
72
|
{
|
|
73
73
|
SVFStmt edge(src,op1,SVFStmt::makeEdgeFlagWithAddionalOpnd(kind,op2));
|
|
74
|
-
SVFStmt::
|
|
75
|
-
if (it !=
|
|
74
|
+
SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&edge);
|
|
75
|
+
if (it != KindToSVFStmtSetMap[kind].end())
|
|
76
76
|
{
|
|
77
77
|
return *it;
|
|
78
78
|
}
|
|
@@ -85,8 +85,8 @@ SVFStmt* IRGraph::hasLabeledEdge(SVFVar* src, SVFVar* op1, SVFStmt::PEDGEK kind,
|
|
|
85
85
|
SVFStmt* IRGraph::hasLabeledEdge(SVFVar* src, SVFVar* dst, SVFStmt::PEDGEK kind, const ICFGNode* callInst)
|
|
86
86
|
{
|
|
87
87
|
SVFStmt edge(src,dst,SVFStmt::makeEdgeFlagWithCallInst(kind,callInst));
|
|
88
|
-
SVFStmt::
|
|
89
|
-
if (it !=
|
|
88
|
+
SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&edge);
|
|
89
|
+
if (it != KindToSVFStmtSetMap[kind].end())
|
|
90
90
|
{
|
|
91
91
|
return *it;
|
|
92
92
|
}
|
|
@@ -160,22 +160,22 @@ struct DOTGraphTraits<IRGraph*> : public DefaultDOTGraphTraits
|
|
|
160
160
|
|
|
161
161
|
static std::string getNodeAttributes(SVFVar *node, IRGraph*)
|
|
162
162
|
{
|
|
163
|
-
if (SVFUtil::isa<
|
|
163
|
+
if (SVFUtil::isa<ValVar>(node))
|
|
164
164
|
{
|
|
165
|
-
if(SVFUtil::isa<
|
|
165
|
+
if(SVFUtil::isa<GepValVar>(node))
|
|
166
166
|
return "shape=hexagon";
|
|
167
|
-
else if (SVFUtil::isa<
|
|
167
|
+
else if (SVFUtil::isa<DummyValVar>(node))
|
|
168
168
|
return "shape=diamond";
|
|
169
169
|
else
|
|
170
170
|
return "shape=box";
|
|
171
171
|
}
|
|
172
|
-
else if (SVFUtil::isa<
|
|
172
|
+
else if (SVFUtil::isa<ObjVar>(node))
|
|
173
173
|
{
|
|
174
174
|
if(SVFUtil::isa<GepObjPN>(node))
|
|
175
175
|
return "shape=doubleoctagon";
|
|
176
|
-
else if(SVFUtil::isa<
|
|
176
|
+
else if(SVFUtil::isa<FIObjVar>(node))
|
|
177
177
|
return "shape=box3d";
|
|
178
|
-
else if (SVFUtil::isa<
|
|
178
|
+
else if (SVFUtil::isa<DummyObjVar>(node))
|
|
179
179
|
return "shape=tab";
|
|
180
180
|
else
|
|
181
181
|
return "shape=component";
|
|
@@ -200,39 +200,39 @@ struct DOTGraphTraits<IRGraph*> : public DefaultDOTGraphTraits
|
|
|
200
200
|
{
|
|
201
201
|
const SVFStmt* edge = *(EI.getCurrent());
|
|
202
202
|
assert(edge && "No edge found!!");
|
|
203
|
-
if (SVFUtil::isa<
|
|
203
|
+
if (SVFUtil::isa<AddrStmt>(edge))
|
|
204
204
|
{
|
|
205
205
|
return "color=green";
|
|
206
206
|
}
|
|
207
|
-
else if (SVFUtil::isa<
|
|
207
|
+
else if (SVFUtil::isa<CopyStmt>(edge))
|
|
208
208
|
{
|
|
209
209
|
return "color=black";
|
|
210
210
|
}
|
|
211
|
-
else if (SVFUtil::isa<
|
|
211
|
+
else if (SVFUtil::isa<GepStmt>(edge))
|
|
212
212
|
{
|
|
213
213
|
return "color=purple";
|
|
214
214
|
}
|
|
215
|
-
else if (SVFUtil::isa<
|
|
215
|
+
else if (SVFUtil::isa<StoreStmt>(edge))
|
|
216
216
|
{
|
|
217
217
|
return "color=blue";
|
|
218
218
|
}
|
|
219
|
-
else if (SVFUtil::isa<
|
|
219
|
+
else if (SVFUtil::isa<LoadStmt>(edge))
|
|
220
220
|
{
|
|
221
221
|
return "color=red";
|
|
222
222
|
}
|
|
223
|
-
else if (SVFUtil::isa<
|
|
223
|
+
else if (SVFUtil::isa<PhiStmt>(edge))
|
|
224
224
|
{
|
|
225
225
|
return "color=grey";
|
|
226
226
|
}
|
|
227
|
-
else if (SVFUtil::isa<
|
|
227
|
+
else if (SVFUtil::isa<CmpStmt>(edge))
|
|
228
228
|
{
|
|
229
229
|
return "color=grey";
|
|
230
230
|
}
|
|
231
|
-
else if (SVFUtil::isa<
|
|
231
|
+
else if (SVFUtil::isa<BinaryOPStmt>(edge))
|
|
232
232
|
{
|
|
233
233
|
return "color=grey";
|
|
234
234
|
}
|
|
235
|
-
else if (SVFUtil::isa<
|
|
235
|
+
else if (SVFUtil::isa<UnaryOPStmt>(edge))
|
|
236
236
|
{
|
|
237
237
|
return "color=grey";
|
|
238
238
|
}
|
|
@@ -209,7 +209,7 @@ struct DOTGraphTraits<OfflineConsG*> : public DOTGraphTraits<SVFIR*>
|
|
|
209
209
|
|
|
210
210
|
if (briefDisplay)
|
|
211
211
|
{
|
|
212
|
-
if (SVFUtil::isa<
|
|
212
|
+
if (SVFUtil::isa<ValVar>(node))
|
|
213
213
|
{
|
|
214
214
|
if (nameDisplay)
|
|
215
215
|
rawstr << node->getId() << ":" << node->getValueName();
|
|
@@ -222,7 +222,7 @@ struct DOTGraphTraits<OfflineConsG*> : public DOTGraphTraits<SVFIR*>
|
|
|
222
222
|
else
|
|
223
223
|
{
|
|
224
224
|
// print the whole value
|
|
225
|
-
if (!SVFUtil::isa<
|
|
225
|
+
if (!SVFUtil::isa<DummyValVar>(node) && !SVFUtil::isa<DummyObjVar>(node))
|
|
226
226
|
rawstr << *node->getValue();
|
|
227
227
|
else
|
|
228
228
|
rawstr << "";
|
|
@@ -243,22 +243,22 @@ struct DOTGraphTraits<OfflineConsG*> : public DOTGraphTraits<SVFIR*>
|
|
|
243
243
|
if (SVFIR::getPAG()->getGNode(n->getId()))
|
|
244
244
|
{
|
|
245
245
|
PAGNode *node = SVFIR::getPAG()->getGNode(n->getId());
|
|
246
|
-
if (SVFUtil::isa<
|
|
246
|
+
if (SVFUtil::isa<ValVar>(node))
|
|
247
247
|
{
|
|
248
|
-
if(SVFUtil::isa<
|
|
248
|
+
if(SVFUtil::isa<GepValVar>(node))
|
|
249
249
|
return "shape=hexagon";
|
|
250
|
-
else if (SVFUtil::isa<
|
|
250
|
+
else if (SVFUtil::isa<DummyValVar>(node))
|
|
251
251
|
return "shape=diamond";
|
|
252
252
|
else
|
|
253
253
|
return "shape=box";
|
|
254
254
|
}
|
|
255
|
-
else if (SVFUtil::isa<
|
|
255
|
+
else if (SVFUtil::isa<ObjVar>(node))
|
|
256
256
|
{
|
|
257
257
|
if(SVFUtil::isa<GepObjPN>(node))
|
|
258
258
|
return "shape=doubleoctagon";
|
|
259
|
-
else if(SVFUtil::isa<
|
|
259
|
+
else if(SVFUtil::isa<FIObjVar>(node))
|
|
260
260
|
return "shape=box3d";
|
|
261
|
-
else if (SVFUtil::isa<
|
|
261
|
+
else if (SVFUtil::isa<DummyObjVar>(node))
|
|
262
262
|
return "shape=tab";
|
|
263
263
|
else
|
|
264
264
|
return "shape=component";
|
package/lib/Graphs/SVFG.cpp
CHANGED
|
@@ -223,11 +223,11 @@ void SVFG::addSVFGNodesForAddrTakenVars()
|
|
|
223
223
|
{
|
|
224
224
|
|
|
225
225
|
// set defs for address-taken vars defined at store statements
|
|
226
|
-
PAGEdge::
|
|
227
|
-
for (PAGEdge::
|
|
226
|
+
PAGEdge::SVFStmtSetTy& stores = getPAGEdgeSet(PAGEdge::Store);
|
|
227
|
+
for (PAGEdge::SVFStmtSetTy::iterator iter = stores.begin(), eiter =
|
|
228
228
|
stores.end(); iter != eiter; ++iter)
|
|
229
229
|
{
|
|
230
|
-
|
|
230
|
+
StoreStmt* store = SVFUtil::cast<StoreStmt>(*iter);
|
|
231
231
|
const StmtSVFGNode* sNode = getStmtVFGNode(store);
|
|
232
232
|
for(CHISet::iterator pi = mssa->getCHISet(store).begin(), epi = mssa->getCHISet(store).end(); pi!=epi; ++pi)
|
|
233
233
|
setDef((*pi)->getResVer(),sNode);
|
|
@@ -297,7 +297,7 @@ void SVFG::connectIndirectSVFGEdges()
|
|
|
297
297
|
const SVFGNode* node = it->second;
|
|
298
298
|
if(const LoadSVFGNode* loadNode = SVFUtil::dyn_cast<LoadSVFGNode>(node))
|
|
299
299
|
{
|
|
300
|
-
MUSet& muSet = mssa->getMUSet(SVFUtil::cast<
|
|
300
|
+
MUSet& muSet = mssa->getMUSet(SVFUtil::cast<LoadStmt>(loadNode->getPAGEdge()));
|
|
301
301
|
for(MUSet::iterator it = muSet.begin(), eit = muSet.end(); it!=eit; ++it)
|
|
302
302
|
{
|
|
303
303
|
if(LOADMU* mu = SVFUtil::dyn_cast<LOADMU>(*it))
|
|
@@ -309,7 +309,7 @@ void SVFG::connectIndirectSVFGEdges()
|
|
|
309
309
|
}
|
|
310
310
|
else if(const StoreSVFGNode* storeNode = SVFUtil::dyn_cast<StoreSVFGNode>(node))
|
|
311
311
|
{
|
|
312
|
-
CHISet& chiSet = mssa->getCHISet(SVFUtil::cast<
|
|
312
|
+
CHISet& chiSet = mssa->getCHISet(SVFUtil::cast<StoreStmt>(storeNode->getPAGEdge()));
|
|
313
313
|
for(CHISet::iterator it = chiSet.begin(), eit = chiSet.end(); it!=eit; ++it)
|
|
314
314
|
{
|
|
315
315
|
if(STORECHI* chi = SVFUtil::dyn_cast<STORECHI>(*it))
|
|
@@ -571,10 +571,10 @@ void SVFG::getInterVFEdgesForIndirectCallSite(const CallBlockNode* callBlockNode
|
|
|
571
571
|
// Find inter direct call edges between actual param and formal param.
|
|
572
572
|
if (pag->hasCallSiteArgsMap(callBlockNode) && pag->hasFunArgsList(callee))
|
|
573
573
|
{
|
|
574
|
-
const SVFIR::
|
|
575
|
-
const SVFIR::
|
|
576
|
-
SVFIR::
|
|
577
|
-
SVFIR::
|
|
574
|
+
const SVFIR::SVFVarList& csArgList = pag->getCallSiteArgsList(callBlockNode);
|
|
575
|
+
const SVFIR::SVFVarList& funArgList = pag->getFunArgsList(callee);
|
|
576
|
+
SVFIR::SVFVarList::const_iterator csArgIt = csArgList.begin(), csArgEit = csArgList.end();
|
|
577
|
+
SVFIR::SVFVarList::const_iterator funArgIt = funArgList.begin(), funArgEit = funArgList.end();
|
|
578
578
|
for (; funArgIt != funArgEit && csArgIt != csArgEit; funArgIt++, csArgIt++)
|
|
579
579
|
{
|
|
580
580
|
const PAGNode *cs_arg = *csArgIt;
|
|
@@ -932,11 +932,11 @@ struct DOTGraphTraits<SVFG*> : public DOTGraphTraits<SVFIR*>
|
|
|
932
932
|
if(StmtSVFGNode* stmtNode = SVFUtil::dyn_cast<StmtSVFGNode>(node))
|
|
933
933
|
{
|
|
934
934
|
const PAGEdge* edge = stmtNode->getPAGEdge();
|
|
935
|
-
if (SVFUtil::isa<
|
|
935
|
+
if (SVFUtil::isa<AddrStmt>(edge))
|
|
936
936
|
{
|
|
937
937
|
rawstr << "color=green";
|
|
938
938
|
}
|
|
939
|
-
else if (SVFUtil::isa<
|
|
939
|
+
else if (SVFUtil::isa<CopyStmt>(edge))
|
|
940
940
|
{
|
|
941
941
|
rawstr << "color=black";
|
|
942
942
|
}
|
|
@@ -944,15 +944,15 @@ struct DOTGraphTraits<SVFG*> : public DOTGraphTraits<SVFIR*>
|
|
|
944
944
|
{
|
|
945
945
|
rawstr << "color=black,style=dotted";
|
|
946
946
|
}
|
|
947
|
-
else if (SVFUtil::isa<
|
|
947
|
+
else if (SVFUtil::isa<GepStmt>(edge))
|
|
948
948
|
{
|
|
949
949
|
rawstr << "color=purple";
|
|
950
950
|
}
|
|
951
|
-
else if (SVFUtil::isa<
|
|
951
|
+
else if (SVFUtil::isa<StoreStmt>(edge))
|
|
952
952
|
{
|
|
953
953
|
rawstr << "color=blue";
|
|
954
954
|
}
|
|
955
|
-
else if (SVFUtil::isa<
|
|
955
|
+
else if (SVFUtil::isa<LoadStmt>(edge))
|
|
956
956
|
{
|
|
957
957
|
rawstr << "color=red";
|
|
958
958
|
}
|
|
@@ -77,7 +77,7 @@ void ThreadCallGraph::updateCallGraph(PointerAnalysis* pta)
|
|
|
77
77
|
const NodeBS targets = pta->getPts(pag->getValueNode(forkedval)).toNodeBS();
|
|
78
78
|
for (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)
|
|
79
79
|
{
|
|
80
|
-
if(
|
|
80
|
+
if(ObjVar* objPN = SVFUtil::dyn_cast<ObjVar>(pag->getGNode(*ii)))
|
|
81
81
|
{
|
|
82
82
|
const MemObj* obj = pag->getObject(objPN);
|
|
83
83
|
if(obj->isFunction())
|
|
@@ -101,7 +101,7 @@ void ThreadCallGraph::updateCallGraph(PointerAnalysis* pta)
|
|
|
101
101
|
const NodeBS targets = pta->getPts(pag->getValueNode(forkedval)).toNodeBS();
|
|
102
102
|
for (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)
|
|
103
103
|
{
|
|
104
|
-
if(
|
|
104
|
+
if(ObjVar* objPN = SVFUtil::dyn_cast<ObjVar>(pag->getGNode(*ii)))
|
|
105
105
|
{
|
|
106
106
|
const MemObj* obj = pag->getObject(objPN);
|
|
107
107
|
if(obj->isFunction())
|