svf-tools 1.0.321 → 1.0.325
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/ConsGNode_8h_source.html +5 -5
- 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/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 +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 +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/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 +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 +8 -8
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
- 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 +63 -61
- 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 +42 -42
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +61 -61
- 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 +7 -7
- 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_1ActualINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
- 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_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 +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 +18 -18
- 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 +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 +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_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_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 +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 +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +27 -27
- 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 +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +27 -27
- 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 +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_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 +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_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 +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 +55 -55
- 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 +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +103 -103
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +68 -68
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +45 -45
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +132 -133
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +759 -777
- 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 +11 -11
- 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_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 +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 +18 -18
- 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 +54 -59
- 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 +12 -12
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +6 -6
- package/SVF-doxygen/html/html/functions_o.html +32 -35
- package/SVF-doxygen/html/html/functions_p.html +32 -49
- package/SVF-doxygen/html/html/functions_r.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +33 -14
- 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 +8 -8
- 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_vars_s.html +3 -0
- 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 +17 -12
- package/SVF-doxygen/html/html/search/all_14.js +5 -5
- package/SVF-doxygen/html/html/search/all_15.js +2 -2
- package/SVF-doxygen/html/html/search/all_16.js +5 -5
- 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 +9 -10
- 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 +5 -5
- package/SVF-doxygen/html/html/search/all_f.js +5 -5
- 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_13.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +3 -3
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- 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 +3 -3
- 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_01OfflineConsG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
- 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/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/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 +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 +37 -36
- package/lib/Graphs/ICFG.cpp +4 -4
- package/lib/Graphs/IRGraph.cpp +27 -24
- package/lib/Graphs/OfflineConsG.cpp +8 -8
- package/lib/Graphs/SVFG.cpp +18 -16
- 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/Options.cpp +6 -0
- 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
|
@@ -344,23 +344,23 @@ public:
|
|
|
344
344
|
///@{
|
|
345
345
|
inline bool isFIObjNode(NodeID id) const
|
|
346
346
|
{
|
|
347
|
-
return (SVFUtil::isa<
|
|
347
|
+
return (SVFUtil::isa<FIObjVar>(pag->getGNode(id)));
|
|
348
348
|
}
|
|
349
|
-
inline NodeID
|
|
349
|
+
inline NodeID getBaseObjVar(NodeID id)
|
|
350
350
|
{
|
|
351
|
-
return pag->
|
|
351
|
+
return pag->getBaseObjVar(id);
|
|
352
352
|
}
|
|
353
|
-
inline NodeID
|
|
353
|
+
inline NodeID getFIObjVar(NodeID id)
|
|
354
354
|
{
|
|
355
|
-
return pag->
|
|
355
|
+
return pag->getFIObjVar(id);
|
|
356
356
|
}
|
|
357
|
-
inline NodeID
|
|
357
|
+
inline NodeID getGepObjVar(NodeID id, const LocationSet& ls)
|
|
358
358
|
{
|
|
359
|
-
return pag->
|
|
359
|
+
return pag->getGepObjVar(id,ls);
|
|
360
360
|
}
|
|
361
|
-
virtual inline const NodeBS&
|
|
361
|
+
virtual inline const NodeBS& getAllFieldsObjVars(NodeID id)
|
|
362
362
|
{
|
|
363
|
-
return pag->
|
|
363
|
+
return pag->getAllFieldsObjVars(id);
|
|
364
364
|
}
|
|
365
365
|
inline void setObjFieldInsensitive(NodeID id)
|
|
366
366
|
{
|
|
@@ -352,9 +352,9 @@ public:
|
|
|
352
352
|
expandedCpts = cpts;;
|
|
353
353
|
for(typename CPtSet::const_iterator cit = cpts.begin(), ecit=cpts.end(); cit!=ecit; ++cit)
|
|
354
354
|
{
|
|
355
|
-
if(pag->
|
|
355
|
+
if(pag->getBaseObjVar(cit->get_id())==cit->get_id())
|
|
356
356
|
{
|
|
357
|
-
NodeBS& fields = pag->
|
|
357
|
+
NodeBS& fields = pag->getAllFieldsObjVars(cit->get_id());
|
|
358
358
|
for(NodeBS::iterator it = fields.begin(), eit = fields.end(); it!=eit; ++it)
|
|
359
359
|
{
|
|
360
360
|
CVar cvar(cit->get_cond(),*it);
|
|
@@ -577,11 +577,11 @@ public:
|
|
|
577
577
|
const PAGNode* node = this->getPAG()->getGNode(*nIter);
|
|
578
578
|
if (this->getPAG()->isValidTopLevelPtr(node))
|
|
579
579
|
{
|
|
580
|
-
if (SVFUtil::isa<
|
|
580
|
+
if (SVFUtil::isa<DummyObjVar>(node))
|
|
581
581
|
{
|
|
582
582
|
SVFUtil::outs() << "##<Blackhole or constant> id:" << node->getId();
|
|
583
583
|
}
|
|
584
|
-
else if (!SVFUtil::isa<
|
|
584
|
+
else if (!SVFUtil::isa<DummyValVar>(node))
|
|
585
585
|
{
|
|
586
586
|
SVFUtil::outs() << "##<" << node->getValue()->getName() << "> ";
|
|
587
587
|
//SVFUtil::outs() << "Source Loc: " << SVFUtil::getSourceLoc(node->getValue());
|
|
@@ -53,33 +53,32 @@ public:
|
|
|
53
53
|
typedef OrderedMap<const CallBlockNode*,NodeID> CallSiteToFunPtrMap;
|
|
54
54
|
typedef Map<NodeID,CallSiteSet> FunPtrToCallSitesMap;
|
|
55
55
|
typedef Map<NodeID,NodeBS> MemObjToFieldsMap;
|
|
56
|
-
typedef std::vector<const SVFStmt*>
|
|
57
|
-
typedef std::vector<const SVFVar*>
|
|
58
|
-
typedef
|
|
59
|
-
typedef Map<const
|
|
60
|
-
typedef Map<const
|
|
61
|
-
typedef Map<const CallBlockNode*,PAGNodeList> CSToArgsListMap;
|
|
56
|
+
typedef std::vector<const SVFStmt*> SVFStmtList;
|
|
57
|
+
typedef std::vector<const SVFVar*> SVFVarList;
|
|
58
|
+
typedef Map<const SVFVar*,PhiStmt*> PHINodeMap;
|
|
59
|
+
typedef Map<const SVFFunction*,SVFVarList> FunToArgsListMap;
|
|
60
|
+
typedef Map<const CallBlockNode*,SVFVarList> CSToArgsListMap;
|
|
62
61
|
typedef Map<const RetBlockNode*,const SVFVar*> CSToRetMap;
|
|
63
62
|
typedef Map<const SVFFunction*,const SVFVar*> FunToRetMap;
|
|
64
|
-
typedef Map<const SVFFunction*,
|
|
65
|
-
typedef Map<const ICFGNode*,
|
|
63
|
+
typedef Map<const SVFFunction*,SVFStmtSet> FunToPAGEdgeSetMap;
|
|
64
|
+
typedef Map<const ICFGNode*,SVFStmtList> ICFGNode2SVFStmtsMap;
|
|
66
65
|
typedef Map<NodeID, NodeID> NodeToNodeMap;
|
|
67
66
|
typedef std::pair<NodeID, Size_t> NodeOffset;
|
|
68
67
|
typedef std::pair<NodeID, LocationSet> NodeLocationSet;
|
|
69
68
|
typedef Map<NodeOffset,NodeID> NodeOffsetMap;
|
|
70
69
|
typedef Map<NodeLocationSet,NodeID> NodeLocationSetMap;
|
|
71
|
-
typedef Map<const Value*, NodeLocationSetMap>
|
|
70
|
+
typedef Map<const Value*, NodeLocationSetMap> GepValueVarMap;
|
|
72
71
|
typedef Map<NodePair,NodeID> NodePairSetMap;
|
|
73
72
|
|
|
74
73
|
private:
|
|
75
74
|
/// ValueNodes - This map indicates the Node that a particular Value* is
|
|
76
75
|
/// represented by. This contains entries for all pointers.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
NodeLocationSetMap
|
|
76
|
+
ICFGNode2SVFStmtsMap icfgNode2SVFStmtsMap; ///< Map an ICFGNode to its SVFStmts
|
|
77
|
+
ICFGNode2SVFStmtsMap icfgNode2PTASVFStmtsMap; ///< Map an ICFGNode to its PointerAnalysis related SVFStmts
|
|
78
|
+
GepValueVarMap GepValObjMap; ///< Map a pair<base,off> to a gep value node id
|
|
79
|
+
NodeLocationSetMap GepObjVarMap; ///< Map a pair<base,off> to a gep obj node id
|
|
81
80
|
MemObjToFieldsMap memToFieldsMap; ///< Map a mem object id to all its fields
|
|
82
|
-
|
|
81
|
+
SVFStmtSet globSVFStmtSet; ///< Global PAGEdges without control flow information
|
|
83
82
|
PHINodeMap phiNodeMap; ///< A set of phi copy edges
|
|
84
83
|
FunToArgsListMap funArgsListMap; ///< Map a function to a list of all its formal parameters
|
|
85
84
|
CSToArgsListMap callSiteArgsListMap; ///< Map a callsite to a list of all its actual parameters
|
|
@@ -124,10 +123,10 @@ public:
|
|
|
124
123
|
{
|
|
125
124
|
return memToFieldsMap;
|
|
126
125
|
}
|
|
127
|
-
/// Return
|
|
126
|
+
/// Return GepObjVarMap
|
|
128
127
|
inline NodeLocationSetMap& getGepObjNodeMap()
|
|
129
128
|
{
|
|
130
|
-
return
|
|
129
|
+
return GepObjVarMap;
|
|
131
130
|
}
|
|
132
131
|
/// Return ICFG
|
|
133
132
|
inline ICFG* getICFG()
|
|
@@ -160,46 +159,46 @@ public:
|
|
|
160
159
|
/// Get/set methods to get SVFStmts based on their kinds and ICFGNodes
|
|
161
160
|
//@{
|
|
162
161
|
/// Get edges set according to its kind
|
|
163
|
-
inline SVFStmt::
|
|
162
|
+
inline SVFStmt::SVFStmtSetTy& getSVFStmtSet(SVFStmt::PEDGEK kind)
|
|
164
163
|
{
|
|
165
|
-
return
|
|
164
|
+
return KindToSVFStmtSetMap[kind];
|
|
166
165
|
}
|
|
167
166
|
/// Get PTA edges set according to its kind
|
|
168
|
-
inline SVFStmt::
|
|
167
|
+
inline SVFStmt::SVFStmtSetTy& getPTASVFStmtSet(SVFStmt::PEDGEK kind)
|
|
169
168
|
{
|
|
170
|
-
return
|
|
169
|
+
return KindToPTASVFStmtSetMap[kind];
|
|
171
170
|
}
|
|
172
171
|
/// Whether this instruction has SVFIR Edge
|
|
173
|
-
inline bool
|
|
172
|
+
inline bool hasSVFStmtList(const ICFGNode* inst) const
|
|
174
173
|
{
|
|
175
|
-
return
|
|
174
|
+
return icfgNode2SVFStmtsMap.find(inst)!=icfgNode2SVFStmtsMap.end();
|
|
176
175
|
}
|
|
177
|
-
inline bool
|
|
176
|
+
inline bool hasPTASVFStmtList(const ICFGNode* inst) const
|
|
178
177
|
{
|
|
179
|
-
return
|
|
178
|
+
return icfgNode2PTASVFStmtsMap.find(inst)!=icfgNode2PTASVFStmtsMap.end();
|
|
180
179
|
}
|
|
181
180
|
/// Given an instruction, get all its PAGEdges
|
|
182
|
-
inline
|
|
181
|
+
inline SVFStmtList& getSVFStmtList(const ICFGNode* inst)
|
|
183
182
|
{
|
|
184
|
-
return
|
|
183
|
+
return icfgNode2SVFStmtsMap[inst];
|
|
185
184
|
}
|
|
186
185
|
/// Given an instruction, get all its PTA PAGEdges
|
|
187
|
-
inline
|
|
186
|
+
inline SVFStmtList& getPTASVFStmtList(const ICFGNode* inst)
|
|
188
187
|
{
|
|
189
|
-
return
|
|
188
|
+
return icfgNode2PTASVFStmtsMap[inst];
|
|
190
189
|
}
|
|
191
190
|
/// Add a SVFStmt into instruction map
|
|
192
|
-
inline void
|
|
191
|
+
inline void addToSVFStmtList(ICFGNode* inst, SVFStmt* edge)
|
|
193
192
|
{
|
|
194
193
|
edge->setICFGNode(inst);
|
|
195
|
-
|
|
194
|
+
icfgNode2SVFStmtsMap[inst].push_back(edge);
|
|
196
195
|
if (edge->isPTAEdge())
|
|
197
|
-
|
|
196
|
+
icfgNode2PTASVFStmtsMap[inst].push_back(edge);
|
|
198
197
|
}
|
|
199
198
|
/// Get global PAGEdges (not in a procedure)
|
|
200
|
-
inline
|
|
199
|
+
inline SVFStmtSet& getGlobalSVFStmtSet()
|
|
201
200
|
{
|
|
202
|
-
return
|
|
201
|
+
return globSVFStmtSet;
|
|
203
202
|
}
|
|
204
203
|
/// Get all callsites
|
|
205
204
|
inline const CallSiteSet& getCallSiteSet() const
|
|
@@ -223,7 +222,7 @@ public:
|
|
|
223
222
|
return funArgsListMap;
|
|
224
223
|
}
|
|
225
224
|
/// Get function arguments list
|
|
226
|
-
inline const
|
|
225
|
+
inline const SVFVarList& getFunArgsList(const SVFFunction* func) const
|
|
227
226
|
{
|
|
228
227
|
FunToArgsListMap::const_iterator it = funArgsListMap.find(func);
|
|
229
228
|
assert(it != funArgsListMap.end() && "this function doesn't have arguments");
|
|
@@ -240,7 +239,7 @@ public:
|
|
|
240
239
|
return callSiteArgsListMap;
|
|
241
240
|
}
|
|
242
241
|
/// Get callsite argument list
|
|
243
|
-
inline const
|
|
242
|
+
inline const SVFVarList& getCallSiteArgsList(const CallBlockNode* cs) const
|
|
244
243
|
{
|
|
245
244
|
CSToArgsListMap::const_iterator it = callSiteArgsListMap.find(cs);
|
|
246
245
|
assert(it != callSiteArgsListMap.end() && "this call site doesn't have arguments");
|
|
@@ -284,19 +283,19 @@ public:
|
|
|
284
283
|
//@{
|
|
285
284
|
inline Size_t getFieldValNodeNum() const
|
|
286
285
|
{
|
|
287
|
-
return
|
|
286
|
+
return GepValObjMap.size();
|
|
288
287
|
}
|
|
289
288
|
inline Size_t getFieldObjNodeNum() const
|
|
290
289
|
{
|
|
291
|
-
return
|
|
290
|
+
return GepObjVarMap.size();
|
|
292
291
|
}
|
|
293
292
|
//@}
|
|
294
293
|
|
|
295
|
-
/// Due to constaint expression, curInst is used to distinguish different instructions (e.g., memorycpy) when creating
|
|
296
|
-
inline NodeID
|
|
294
|
+
/// Due to constaint expression, curInst is used to distinguish different instructions (e.g., memorycpy) when creating GepValVar.
|
|
295
|
+
inline NodeID getGepValVar(const Value* curInst, NodeID base, const LocationSet& ls) const
|
|
297
296
|
{
|
|
298
|
-
|
|
299
|
-
if(iter==
|
|
297
|
+
GepValueVarMap::const_iterator iter = GepValObjMap.find(curInst);
|
|
298
|
+
if(iter==GepValObjMap.end()){
|
|
300
299
|
return UINT_MAX;
|
|
301
300
|
}
|
|
302
301
|
else{
|
|
@@ -344,8 +343,8 @@ public:
|
|
|
344
343
|
inline SVFStmt* getIntraPAGEdge(SVFVar* src, SVFVar* dst, SVFStmt::PEDGEK kind)
|
|
345
344
|
{
|
|
346
345
|
SVFStmt edge(src,dst,kind);
|
|
347
|
-
const SVFStmt::
|
|
348
|
-
SVFStmt::
|
|
346
|
+
const SVFStmt::SVFStmtSetTy& edgeSet = getSVFStmtSet(kind);
|
|
347
|
+
SVFStmt::SVFStmtSetTy::const_iterator it = edgeSet.find(&edge);
|
|
349
348
|
assert(it != edgeSet.end() && "can not find pag edge");
|
|
350
349
|
return (*it);
|
|
351
350
|
}
|
|
@@ -353,38 +352,38 @@ public:
|
|
|
353
352
|
|
|
354
353
|
/// Get memory object - Return memory object according to pag node id
|
|
355
354
|
/// return whole allocated memory object if this node is a gep obj node
|
|
356
|
-
/// return nullptr is this node is not a
|
|
355
|
+
/// return nullptr is this node is not a ObjVar type
|
|
357
356
|
//@{
|
|
358
357
|
inline const MemObj*getObject(NodeID id) const
|
|
359
358
|
{
|
|
360
359
|
const SVFVar* node = getGNode(id);
|
|
361
|
-
if(const
|
|
360
|
+
if(const ObjVar* objPN = SVFUtil::dyn_cast<ObjVar>(node))
|
|
362
361
|
return getObject(objPN);
|
|
363
362
|
else
|
|
364
363
|
return nullptr;
|
|
365
364
|
}
|
|
366
|
-
inline const MemObj*getObject(const
|
|
365
|
+
inline const MemObj*getObject(const ObjVar* node) const
|
|
367
366
|
{
|
|
368
367
|
return node->getMemObj();
|
|
369
368
|
}
|
|
370
369
|
//@}
|
|
371
370
|
|
|
372
371
|
/// Get a field SVFIR Object node according to base mem obj and offset
|
|
373
|
-
NodeID
|
|
372
|
+
NodeID getGepObjVar(const MemObj* obj, const LocationSet& ls);
|
|
374
373
|
/// Get a field obj SVFIR node according to a mem obj and a given offset
|
|
375
|
-
NodeID
|
|
374
|
+
NodeID getGepObjVar(NodeID id, const LocationSet& ls) ;
|
|
376
375
|
/// Get a field-insensitive obj SVFIR node according to a mem obj
|
|
377
376
|
//@{
|
|
378
|
-
inline NodeID
|
|
377
|
+
inline NodeID getFIObjVar(const MemObj* obj) const
|
|
379
378
|
{
|
|
380
379
|
return obj->getId();
|
|
381
380
|
}
|
|
382
|
-
inline NodeID
|
|
381
|
+
inline NodeID getFIObjVar(NodeID id) const
|
|
383
382
|
{
|
|
384
383
|
SVFVar* node = pag->getGNode(id);
|
|
385
|
-
assert(SVFUtil::isa<
|
|
386
|
-
|
|
387
|
-
return
|
|
384
|
+
assert(SVFUtil::isa<ObjVar>(node) && "need an object node");
|
|
385
|
+
ObjVar* obj = SVFUtil::cast<ObjVar>(node);
|
|
386
|
+
return getFIObjVar(obj->getMemObj());
|
|
388
387
|
}
|
|
389
388
|
//@}
|
|
390
389
|
|
|
@@ -415,7 +414,7 @@ public:
|
|
|
415
414
|
inline bool isNonPointerObj(NodeID id) const
|
|
416
415
|
{
|
|
417
416
|
SVFVar* node = getGNode(id);
|
|
418
|
-
if (
|
|
417
|
+
if (FIObjVar* fiNode = SVFUtil::dyn_cast<FIObjVar>(node))
|
|
419
418
|
{
|
|
420
419
|
return (fiNode->getMemObj()->hasPtrObj() == false);
|
|
421
420
|
}
|
|
@@ -423,7 +422,7 @@ public:
|
|
|
423
422
|
{
|
|
424
423
|
return (gepNode->getMemObj()->isNonPtrFieldObj(gepNode->getLocationSet()));
|
|
425
424
|
}
|
|
426
|
-
else if (SVFUtil::isa<
|
|
425
|
+
else if (SVFUtil::isa<DummyObjVar>(node))
|
|
427
426
|
{
|
|
428
427
|
return false;
|
|
429
428
|
}
|
|
@@ -438,25 +437,25 @@ public:
|
|
|
438
437
|
/// Base and Offset methods for Value and Object node
|
|
439
438
|
//@{
|
|
440
439
|
/// Get a base pointer node given a field pointer
|
|
441
|
-
NodeID
|
|
440
|
+
NodeID getBaseValVar(NodeID nodeId);
|
|
442
441
|
LocationSet getLocationSetFromBaseNode(NodeID nodeId);
|
|
443
|
-
inline NodeID
|
|
442
|
+
inline NodeID getBaseObjVar(NodeID id) const
|
|
444
443
|
{
|
|
445
444
|
return getBaseObj(id)->getId();
|
|
446
445
|
}
|
|
447
446
|
inline const MemObj* getBaseObj(NodeID id) const
|
|
448
447
|
{
|
|
449
448
|
const SVFVar* node = pag->getGNode(id);
|
|
450
|
-
assert(SVFUtil::isa<
|
|
451
|
-
const
|
|
449
|
+
assert(SVFUtil::isa<ObjVar>(node) && "need an object node");
|
|
450
|
+
const ObjVar* obj = SVFUtil::cast<ObjVar>(node);
|
|
452
451
|
return obj->getMemObj();
|
|
453
452
|
}
|
|
454
453
|
//@}
|
|
455
454
|
|
|
456
455
|
/// Get all fields of an object
|
|
457
456
|
//@{
|
|
458
|
-
NodeBS&
|
|
459
|
-
NodeBS&
|
|
457
|
+
NodeBS& getAllFieldsObjVars(const MemObj* obj);
|
|
458
|
+
NodeBS& getAllFieldsObjVars(NodeID id);
|
|
460
459
|
NodeBS getFieldsAfterCollapse(NodeID id);
|
|
461
460
|
//@}
|
|
462
461
|
inline NodeID addDummyValNode()
|
|
@@ -481,12 +480,12 @@ private:
|
|
|
481
480
|
|
|
482
481
|
/// Map a SVFStatement type to a set of corresponding SVF statements
|
|
483
482
|
inline void addToStmt2TypeMap(SVFStmt* edge) {
|
|
484
|
-
bool added =
|
|
483
|
+
bool added = KindToSVFStmtSetMap[edge->getEdgeKind()].insert(edge).second;
|
|
485
484
|
assert(added && "duplicated edge, not added!!!");
|
|
486
485
|
if (edge->isPTAEdge())
|
|
487
486
|
{
|
|
488
487
|
totalPTAPAGEdge++;
|
|
489
|
-
|
|
488
|
+
KindToPTASVFStmtSetMap[edge->getEdgeKind()].insert(edge);
|
|
490
489
|
}
|
|
491
490
|
}
|
|
492
491
|
/// Get/set method for function/callsite arguments and returns
|
|
@@ -530,7 +529,7 @@ private:
|
|
|
530
529
|
/// Add a value (pointer) node
|
|
531
530
|
inline NodeID addValNode(const Value* val, NodeID i)
|
|
532
531
|
{
|
|
533
|
-
SVFVar *node = new
|
|
532
|
+
SVFVar *node = new ValVar(val,i);
|
|
534
533
|
return addValNode(val, node, i);
|
|
535
534
|
}
|
|
536
535
|
/// Add a memory obj node
|
|
@@ -553,9 +552,9 @@ private:
|
|
|
553
552
|
return addNode(node,i);
|
|
554
553
|
}
|
|
555
554
|
|
|
556
|
-
/// Add a temp field value node, this method can only invoked by
|
|
555
|
+
/// Add a temp field value node, this method can only invoked by getGepValVar
|
|
557
556
|
NodeID addGepValNode(const Value* curInst,const Value* val, const LocationSet& ls, NodeID i, const Type *type, u32_t fieldidx);
|
|
558
|
-
/// Add a field obj node, this method can only invoked by
|
|
557
|
+
/// Add a field obj node, this method can only invoked by getGepObjVar
|
|
559
558
|
NodeID addGepObjNode(const MemObj* obj, const LocationSet& ls);
|
|
560
559
|
/// Add a field-insensitive node, this method can only invoked by getFIGepObjNode
|
|
561
560
|
NodeID addFIObjNode(const MemObj* obj);
|
|
@@ -565,12 +564,12 @@ private:
|
|
|
565
564
|
//@{
|
|
566
565
|
inline NodeID addDummyValNode(NodeID i)
|
|
567
566
|
{
|
|
568
|
-
return addValNode(nullptr, new
|
|
567
|
+
return addValNode(nullptr, new DummyValVar(i), i);
|
|
569
568
|
}
|
|
570
569
|
inline NodeID addDummyObjNode(NodeID i, const Type* type)
|
|
571
570
|
{
|
|
572
571
|
const MemObj* mem = addDummyMemObj(i, type);
|
|
573
|
-
return addObjNode(nullptr, new
|
|
572
|
+
return addObjNode(nullptr, new DummyObjVar(i,mem), i);
|
|
574
573
|
}
|
|
575
574
|
inline const MemObj* addDummyMemObj(NodeID i, const Type* type)
|
|
576
575
|
{
|
|
@@ -578,11 +577,11 @@ private:
|
|
|
578
577
|
}
|
|
579
578
|
inline NodeID addBlackholeObjNode()
|
|
580
579
|
{
|
|
581
|
-
return addObjNode(nullptr, new
|
|
580
|
+
return addObjNode(nullptr, new DummyObjVar(getBlackHoleNode(),getBlackHoleObj()), getBlackHoleNode());
|
|
582
581
|
}
|
|
583
582
|
inline NodeID addConstantObjNode()
|
|
584
583
|
{
|
|
585
|
-
return addObjNode(nullptr, new
|
|
584
|
+
return addObjNode(nullptr, new DummyObjVar(getConstantNode(),getConstantObj()), getConstantNode());
|
|
586
585
|
}
|
|
587
586
|
inline NodeID addBlackholePtrNode()
|
|
588
587
|
{
|
|
@@ -616,7 +615,7 @@ private:
|
|
|
616
615
|
/// Add global PAGEdges (not in a procedure)
|
|
617
616
|
inline void addGlobalPAGEdge(const SVFStmt* edge)
|
|
618
617
|
{
|
|
619
|
-
|
|
618
|
+
globSVFStmtSet.insert(edge);
|
|
620
619
|
}
|
|
621
620
|
/// Add callsites
|
|
622
621
|
inline void addCallSite(const CallBlockNode* call)
|
|
@@ -626,33 +625,33 @@ private:
|
|
|
626
625
|
/// Add an edge into SVFIR
|
|
627
626
|
//@{
|
|
628
627
|
/// Add Address edge
|
|
629
|
-
|
|
628
|
+
AddrStmt* addAddrStmt(NodeID src, NodeID dst);
|
|
630
629
|
/// Add Copy edge
|
|
631
|
-
|
|
630
|
+
CopyStmt* addCopyStmt(NodeID src, NodeID dst);
|
|
632
631
|
/// Add phi node information
|
|
633
|
-
|
|
632
|
+
PhiStmt* addPhiStmt(NodeID res, NodeID opnd);
|
|
634
633
|
/// Add Copy edge
|
|
635
|
-
|
|
634
|
+
CmpStmt* addCmpStmt(NodeID op1, NodeID op2, NodeID dst, u32_t predict);
|
|
636
635
|
/// Add Copy edge
|
|
637
|
-
|
|
636
|
+
BinaryOPStmt* addBinaryOPStmt(NodeID op1, NodeID op2, NodeID dst, u32_t opcode);
|
|
638
637
|
/// Add Unary edge
|
|
639
|
-
|
|
638
|
+
UnaryOPStmt* addUnaryOPStmt(NodeID src, NodeID dst, u32_t opcode);
|
|
640
639
|
/// Add BranchStmt
|
|
641
640
|
BranchStmt* addBranchStmt(NodeID br, NodeID cond, std::vector<const ICFGNode*> succs);
|
|
642
641
|
/// Add Load edge
|
|
643
|
-
|
|
642
|
+
LoadStmt* addLoadStmt(NodeID src, NodeID dst);
|
|
644
643
|
/// Add Store edge
|
|
645
|
-
|
|
644
|
+
StoreStmt* addStoreStmt(NodeID src, NodeID dst, const IntraBlockNode* val);
|
|
646
645
|
/// Add Call edge
|
|
647
646
|
CallPE* addCallPE(NodeID src, NodeID dst, const CallBlockNode* cs);
|
|
648
647
|
/// Add Return edge
|
|
649
648
|
RetPE* addRetPE(NodeID src, NodeID dst, const CallBlockNode* cs);
|
|
650
649
|
/// Add Gep edge
|
|
651
|
-
|
|
650
|
+
GepStmt* addGepStmt(NodeID src, NodeID dst, const LocationSet& ls, bool constGep);
|
|
652
651
|
/// Add Offset(Gep) edge
|
|
653
|
-
|
|
652
|
+
NormalGepStmt* addNormalGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
|
|
654
653
|
/// Add Variant(Gep) edge
|
|
655
|
-
|
|
654
|
+
VariantGepStmt* addVariantGepStmt(NodeID src, NodeID dst);
|
|
656
655
|
/// Add Thread fork edge for parameter passing
|
|
657
656
|
TDForkPE* addThreadForkPE(NodeID src, NodeID dst, const CallBlockNode* cs);
|
|
658
657
|
/// Add Thread join edge for parameter passing
|
|
@@ -660,7 +659,7 @@ private:
|
|
|
660
659
|
//@}
|
|
661
660
|
|
|
662
661
|
/// Set a pointer points-to black hole (e.g. int2ptr)
|
|
663
|
-
SVFStmt*
|
|
662
|
+
SVFStmt* addBlackHoleAddrStmt(NodeID node);
|
|
664
663
|
};
|
|
665
664
|
|
|
666
665
|
typedef SVFIR PAG;
|