svf-tools 1.0.348 → 1.0.352
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 +6 -5
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/Andersen_8h_source.html +13 -13
- package/SVF-doxygen/html/html/CHG_8h_source.html +7 -7
- package/SVF-doxygen/html/html/CPPUtil_8cpp.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +45 -46
- package/SVF-doxygen/html/html/ConsG_8h_source.html +22 -22
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +10 -8
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +5 -5
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DCHG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -2
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +24 -22
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +17 -17
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +15 -14
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +25 -25
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +7 -8
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +7 -8
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +13 -6
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +12 -14
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -6
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +4 -5
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +9 -10
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +3 -4
- package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +4 -4
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +2 -3
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +53 -55
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +39 -41
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +38 -41
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -24
- package/SVF-doxygen/html/html/SVFStatements_8h.html +0 -4
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +150 -160
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +101 -100
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +3 -4
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +14 -13
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +13 -13
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +50 -51
- package/SVF-doxygen/html/html/VFG_8h_source.html +35 -35
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/html/annotated.html +100 -102
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +26 -27
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +26 -27
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +46 -46
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +64 -64
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +43 -42
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt-members.html +30 -31
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +34 -39
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +30 -31
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +32 -33
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +33 -34
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +47 -48
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CHEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CHNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CSC-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +29 -30
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +35 -36
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +32 -33
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +33 -34
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +99 -100
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +68 -68
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +26 -27
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +26 -27
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1DCHNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DCHNode.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +9 -8
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +134 -134
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +93 -92
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +43 -42
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +52 -52
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +148 -59
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +49 -49
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +7 -8
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +29 -30
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +26 -27
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +120 -150
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MRVer-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRVer.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MemRegion-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +35 -36
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +41 -42
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +11 -12
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +32 -33
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +32 -33
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +29 -30
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +35 -36
- package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +110 -111
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +152 -151
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +26 -27
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +67 -71
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +26 -27
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +27 -28
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1TCTEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +28 -29
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +28 -29
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +28 -29
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +28 -29
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +22 -21
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +31 -32
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +39 -40
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +79 -80
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +20 -20
- package/SVF-doxygen/html/html/classes.html +95 -93
- package/SVF-doxygen/html/html/functions_a.html +19 -16
- package/SVF-doxygen/html/html/functions_c.html +22 -22
- package/SVF-doxygen/html/html/functions_eval_g.html +2 -1
- package/SVF-doxygen/html/html/functions_eval_n.html +0 -1
- package/SVF-doxygen/html/html/functions_eval_v.html +0 -1
- package/SVF-doxygen/html/html/functions_f.html +3 -3
- package/SVF-doxygen/html/html/functions_func.html +20 -17
- package/SVF-doxygen/html/html/functions_func_c.html +20 -22
- package/SVF-doxygen/html/html/functions_func_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +37 -40
- package/SVF-doxygen/html/html/functions_func_i.html +8 -5
- package/SVF-doxygen/html/html/functions_func_n.html +0 -3
- package/SVF-doxygen/html/html/functions_func_o.html +5 -7
- package/SVF-doxygen/html/html/functions_func_r.html +2 -2
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_func_t.html +0 -2
- package/SVF-doxygen/html/html/functions_func_v.html +1 -4
- package/SVF-doxygen/html/html/functions_g.html +30 -32
- package/SVF-doxygen/html/html/functions_i.html +13 -10
- package/SVF-doxygen/html/html/functions_l.html +4 -4
- package/SVF-doxygen/html/html/functions_m.html +3 -3
- package/SVF-doxygen/html/html/functions_n.html +23 -27
- package/SVF-doxygen/html/html/functions_o.html +6 -8
- package/SVF-doxygen/html/html/functions_p.html +7 -7
- package/SVF-doxygen/html/html/functions_r.html +2 -2
- package/SVF-doxygen/html/html/functions_s.html +7 -5
- package/SVF-doxygen/html/html/functions_t.html +4 -8
- package/SVF-doxygen/html/html/functions_type_g.html +3 -3
- package/SVF-doxygen/html/html/functions_type_n.html +1 -1
- package/SVF-doxygen/html/html/functions_type_o.html +1 -1
- package/SVF-doxygen/html/html/functions_v.html +10 -11
- package/SVF-doxygen/html/html/functions_vars_a.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_m.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_n.html +22 -22
- package/SVF-doxygen/html/html/functions_vars_t.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_v.html +5 -2
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/hierarchy.html +55 -57
- package/SVF-doxygen/html/html/namespaceSVF.html +22 -26
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +5 -5
- package/SVF-doxygen/html/html/namespacemembers_s.html +3 -3
- package/SVF-doxygen/html/html/namespacemembers_type_s.html +3 -3
- package/SVF-doxygen/html/html/search/all_1.js +9 -8
- package/SVF-doxygen/html/html/search/all_10.js +6 -6
- package/SVF-doxygen/html/html/search/all_12.js +2 -2
- package/SVF-doxygen/html/html/search/all_13.js +9 -9
- package/SVF-doxygen/html/html/search/all_14.js +6 -6
- package/SVF-doxygen/html/html/search/all_16.js +7 -7
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +3 -3
- package/SVF-doxygen/html/html/search/all_7.js +19 -20
- package/SVF-doxygen/html/html/search/all_9.js +4 -3
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_d.js +5 -5
- package/SVF-doxygen/html/html/search/all_e.js +20 -21
- package/SVF-doxygen/html/html/search/all_f.js +4 -4
- package/SVF-doxygen/html/html/search/classes_12.js +0 -1
- package/SVF-doxygen/html/html/search/classes_b.js +0 -1
- package/SVF-doxygen/html/html/search/enumvalues_12.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_6.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_0.js +8 -7
- package/SVF-doxygen/html/html/search/functions_10.js +1 -1
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_13.js +1 -2
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/functions_5.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +16 -17
- package/SVF-doxygen/html/html/search/functions_8.js +3 -2
- package/SVF-doxygen/html/html/search/functions_a.js +1 -1
- package/SVF-doxygen/html/html/search/functions_c.js +0 -1
- package/SVF-doxygen/html/html/search/functions_d.js +3 -3
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_f.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_6.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_e.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +4 -4
- package/SVF-doxygen/html/html/search/variables_16.js +3 -2
- package/SVF-doxygen/html/html/search/variables_6.js +2 -2
- package/SVF-doxygen/html/html/search/variables_d.js +3 -3
- package/SVF-doxygen/html/html/search/variables_e.js +18 -18
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +16 -16
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +5 -5
- package/include/Graphs/CHG.h +6 -6
- package/include/Graphs/ConsG.h +2 -2
- package/include/Graphs/ConsGEdge.h +1 -1
- package/include/Graphs/ConsGNode.h +16 -16
- package/include/Graphs/GenericGraph.h +4 -4
- package/include/Graphs/IRGraph.h +5 -5
- package/include/Graphs/PTACallGraph.h +2 -2
- package/include/Graphs/VFG.h +2 -2
- package/include/MSSA/MSSAMuChi.h +1 -1
- package/include/MSSA/MemRegion.h +2 -2
- package/include/MemoryModel/LocationSet.h +10 -48
- package/include/MemoryModel/PAGBuilderFromFile.h +1 -1
- package/include/MemoryModel/PointerAnalysis.h +1 -1
- package/include/MemoryModel/SVFIR.h +5 -5
- package/include/MemoryModel/SVFStatements.h +18 -95
- package/include/MemoryModel/SVFVariables.h +9 -6
- package/include/MemoryModel/SymbolTableInfo.h +3 -3
- package/include/SVF-FE/DCHG.h +1 -1
- package/include/SVF-FE/SVFIRBuilder.h +7 -7
- package/include/Util/IRAnnotator.h +3 -3
- package/include/Util/SVFBasicTypes.h +3 -3
- package/include/WPA/Andersen.h +11 -11
- package/include/WPA/AndersenSFR.h +1 -1
- package/include/WPA/CSC.h +1 -1
- package/include/WPA/FlowSensitive.h +13 -13
- package/include/WPA/VersionedFlowSensitive.h +2 -2
- package/lib/DDA/ContextDDA.cpp +4 -5
- package/lib/DDA/DDAClient.cpp +6 -6
- package/lib/DDA/DDAStat.cpp +1 -1
- package/lib/DDA/FlowDDA.cpp +4 -5
- package/lib/Graphs/ConsG.cpp +30 -35
- package/lib/Graphs/ICFG.cpp +1 -1
- package/lib/Graphs/SVFG.cpp +2 -2
- package/lib/Graphs/SVFGStat.cpp +2 -2
- package/lib/Graphs/VFG.cpp +36 -43
- package/lib/MSSA/MemRegion.cpp +2 -2
- package/lib/MTA/MHP.cpp +2 -2
- package/lib/MTA/MTAAnnotator.cpp +3 -3
- package/lib/MemoryModel/LocationSet.cpp +49 -9
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +3 -3
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
- package/lib/MemoryModel/SVFIR.cpp +27 -35
- package/lib/MemoryModel/SVFStatements.cpp +0 -22
- package/lib/MemoryModel/SVFVariables.cpp +1 -1
- package/lib/MemoryModel/SymbolTableInfo.cpp +4 -4
- package/lib/SVF-FE/CPPUtil.cpp +6 -6
- package/lib/SVF-FE/DCHG.cpp +1 -1
- package/lib/SVF-FE/Graph2Json.cpp +24 -27
- package/lib/SVF-FE/LLVMUtil.cpp +1 -1
- package/lib/SVF-FE/SVFIRBuilder.cpp +14 -13
- package/lib/SVF-FE/SymbolTableBuilder.cpp +1 -1
- package/lib/Util/Conditions.cpp +1 -1
- package/lib/Util/PTAStat.cpp +9 -9
- package/lib/Util/TypeBasedHeapCloning.cpp +6 -6
- package/lib/WPA/Andersen.cpp +13 -13
- package/lib/WPA/AndersenSFR.cpp +8 -8
- package/lib/WPA/AndersenStat.cpp +2 -2
- package/lib/WPA/CSC.cpp +6 -6
- package/lib/WPA/FlowSensitive.cpp +4 -7
- package/lib/WPA/FlowSensitiveStat.cpp +2 -2
- package/lib/WPA/FlowSensitiveTBHC.cpp +6 -9
- package/lib/WPA/TypeAnalysis.cpp +3 -3
- package/package.json +1 -1
|
@@ -50,7 +50,7 @@ public:
|
|
|
50
50
|
/// (1) 0-7 bits encode an edge kind (allow maximum 16 kinds)
|
|
51
51
|
/// (2) 8-63 bits encode a callsite instruction
|
|
52
52
|
typedef u64_t GEdgeFlag;
|
|
53
|
-
typedef
|
|
53
|
+
typedef s64_t GEdgeKind;
|
|
54
54
|
private:
|
|
55
55
|
NodeTy* src; ///< source node
|
|
56
56
|
NodeTy* dst; ///< destination node
|
|
@@ -132,7 +132,7 @@ public:
|
|
|
132
132
|
typedef NodeTy NodeType;
|
|
133
133
|
typedef EdgeTy EdgeType;
|
|
134
134
|
/// Edge kind
|
|
135
|
-
typedef
|
|
135
|
+
typedef s64_t GNodeK;
|
|
136
136
|
typedef OrderedSet<EdgeType*, typename EdgeType::equalGEdge> GEdgeSetTy;
|
|
137
137
|
/// Edge iterator
|
|
138
138
|
///@{
|
|
@@ -284,13 +284,13 @@ public:
|
|
|
284
284
|
|
|
285
285
|
/// Remove incoming and outgoing edges
|
|
286
286
|
///@{
|
|
287
|
-
inline
|
|
287
|
+
inline u32_t removeIncomingEdge(EdgeType* edge)
|
|
288
288
|
{
|
|
289
289
|
iterator it = InEdges.find(edge);
|
|
290
290
|
assert(it != InEdges.end() && "can not find in edge in SVFG node");
|
|
291
291
|
return InEdges.erase(edge);
|
|
292
292
|
}
|
|
293
|
-
inline
|
|
293
|
+
inline u32_t removeOutgoingEdge(EdgeType* edge)
|
|
294
294
|
{
|
|
295
295
|
iterator it = OutEdges.find(edge);
|
|
296
296
|
assert(it != OutEdges.end() && "can not find out edge in SVFG node");
|
package/include/Graphs/IRGraph.h
CHANGED
|
@@ -166,11 +166,11 @@ public:
|
|
|
166
166
|
return symInfo->getConstantObj();
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
inline
|
|
169
|
+
inline u32_t getValueNodeNum() const
|
|
170
170
|
{
|
|
171
171
|
return symInfo->valSyms().size();
|
|
172
172
|
}
|
|
173
|
-
inline
|
|
173
|
+
inline u32_t getObjectNodeNum() const
|
|
174
174
|
{
|
|
175
175
|
return symInfo->idToObjMap().size();
|
|
176
176
|
}
|
|
@@ -183,15 +183,15 @@ public:
|
|
|
183
183
|
nodeNumAfterPAGBuild = num;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
inline
|
|
186
|
+
inline u32_t getPAGNodeNum() const
|
|
187
187
|
{
|
|
188
188
|
return nodeNum;
|
|
189
189
|
}
|
|
190
|
-
inline
|
|
190
|
+
inline u32_t getPAGEdgeNum() const
|
|
191
191
|
{
|
|
192
192
|
return edgeNum;
|
|
193
193
|
}
|
|
194
|
-
inline
|
|
194
|
+
inline u32_t getPTAPAGEdgeNum() const
|
|
195
195
|
{
|
|
196
196
|
return totalPTAPAGEdge;
|
|
197
197
|
}
|
|
@@ -251,7 +251,7 @@ protected:
|
|
|
251
251
|
CallInstToCallGraphEdgesMap callinstToCallGraphEdgesMap; ///< Map a call instruction to its corresponding call edges
|
|
252
252
|
|
|
253
253
|
NodeID callGraphNodeNum;
|
|
254
|
-
|
|
254
|
+
u32_t numOfResolvedIndCallEdge;
|
|
255
255
|
|
|
256
256
|
/// Clean up memory
|
|
257
257
|
void destroy();
|
|
@@ -297,7 +297,7 @@ public:
|
|
|
297
297
|
return totalCallSiteNum;
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
-
inline
|
|
300
|
+
inline u32_t getNumOfResolvedIndCallEdge() const
|
|
301
301
|
{
|
|
302
302
|
return numOfResolvedIndCallEdge;
|
|
303
303
|
}
|
package/include/Graphs/VFG.h
CHANGED
|
@@ -427,7 +427,7 @@ protected:
|
|
|
427
427
|
void addVFGNodes();
|
|
428
428
|
|
|
429
429
|
/// Get PAGEdge set
|
|
430
|
-
virtual inline
|
|
430
|
+
virtual inline SVFStmt::SVFStmtSetTy& getPAGEdgeSet(SVFStmt::PEDGEK kind)
|
|
431
431
|
{
|
|
432
432
|
if (isPtrOnlySVFG())
|
|
433
433
|
return pag->getPTASVFStmtSet(kind);
|
|
@@ -435,7 +435,7 @@ protected:
|
|
|
435
435
|
return pag->getSVFStmtSet(kind);
|
|
436
436
|
}
|
|
437
437
|
|
|
438
|
-
virtual inline bool isInterestedPAGNode(const
|
|
438
|
+
virtual inline bool isInterestedPAGNode(const SVFVar* node) const
|
|
439
439
|
{
|
|
440
440
|
if (isPtrOnlySVFG())
|
|
441
441
|
return node->isPointer();
|
package/include/MSSA/MSSAMuChi.h
CHANGED
package/include/MSSA/MemRegion.h
CHANGED
|
@@ -55,7 +55,7 @@ public:
|
|
|
55
55
|
typedef bool Condition;
|
|
56
56
|
private:
|
|
57
57
|
/// region ID 0 is reserved
|
|
58
|
-
static
|
|
58
|
+
static u32_t totalMRNum;
|
|
59
59
|
MRID rid;
|
|
60
60
|
const NodeBS cptsSet;
|
|
61
61
|
|
|
@@ -413,7 +413,7 @@ protected:
|
|
|
413
413
|
//@}
|
|
414
414
|
|
|
415
415
|
public:
|
|
416
|
-
inline
|
|
416
|
+
inline u32_t getMRNum() const
|
|
417
417
|
{
|
|
418
418
|
return memRegSet.size();
|
|
419
419
|
}
|
|
@@ -78,10 +78,10 @@ public:
|
|
|
78
78
|
NonOverlap, Overlap, Subset, Superset, Same
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
typedef std::vector<const Value
|
|
81
|
+
typedef std::vector<std::pair<const Value*, const Type*> > OffsetValueVec;
|
|
82
82
|
|
|
83
83
|
/// Constructor
|
|
84
|
-
LocationSet(
|
|
84
|
+
LocationSet(s64_t o = 0) : fldIdx(o)
|
|
85
85
|
{}
|
|
86
86
|
|
|
87
87
|
/// Copy Constructor
|
|
@@ -98,50 +98,16 @@ public:
|
|
|
98
98
|
|
|
99
99
|
~LocationSet() {}
|
|
100
100
|
|
|
101
|
-
|
|
102
101
|
/// Overload operators
|
|
103
102
|
//@{
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
LocationSet ls(rhs);
|
|
107
|
-
ls.fldIdx += accumulateConstantFieldIdx();
|
|
108
|
-
OffsetValueVec::const_iterator it = getOffsetValueVec().begin();
|
|
109
|
-
OffsetValueVec::const_iterator eit = getOffsetValueVec().end();
|
|
110
|
-
for (; it != eit; ++it)
|
|
111
|
-
ls.addOffsetValue(*it);
|
|
112
|
-
|
|
113
|
-
return ls;
|
|
114
|
-
}
|
|
103
|
+
LocationSet operator+ (const LocationSet& rhs) const;
|
|
104
|
+
bool operator< (const LocationSet& rhs) const;
|
|
115
105
|
inline const LocationSet& operator= (const LocationSet& rhs)
|
|
116
106
|
{
|
|
117
107
|
fldIdx = rhs.fldIdx;
|
|
118
108
|
offsetValues = rhs.getOffsetValueVec();
|
|
119
109
|
return *this;
|
|
120
110
|
}
|
|
121
|
-
inline bool operator< (const LocationSet& rhs) const
|
|
122
|
-
{
|
|
123
|
-
if (fldIdx != rhs.fldIdx)
|
|
124
|
-
return (fldIdx < rhs.fldIdx);
|
|
125
|
-
else
|
|
126
|
-
{
|
|
127
|
-
const OffsetValueVec& pairVec = getOffsetValueVec();
|
|
128
|
-
const OffsetValueVec& rhsPairVec = rhs.getOffsetValueVec();
|
|
129
|
-
if (pairVec.size() != rhsPairVec.size())
|
|
130
|
-
return (pairVec.size() < rhsPairVec.size());
|
|
131
|
-
else
|
|
132
|
-
{
|
|
133
|
-
OffsetValueVec::const_iterator it = pairVec.begin();
|
|
134
|
-
OffsetValueVec::const_iterator rhsIt = rhsPairVec.begin();
|
|
135
|
-
for (; it != pairVec.end() && rhsIt != rhsPairVec.end(); ++it, ++rhsIt)
|
|
136
|
-
{
|
|
137
|
-
return (*it) < (*rhsIt);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
111
|
inline bool operator==(const LocationSet& rhs) const
|
|
146
112
|
{
|
|
147
113
|
return this->fldIdx == rhs.fldIdx
|
|
@@ -151,11 +117,11 @@ public:
|
|
|
151
117
|
|
|
152
118
|
/// Get methods
|
|
153
119
|
//@{
|
|
154
|
-
inline
|
|
120
|
+
inline s64_t accumulateConstantFieldIdx() const
|
|
155
121
|
{
|
|
156
122
|
return fldIdx;
|
|
157
123
|
}
|
|
158
|
-
inline void setFldIdx(
|
|
124
|
+
inline void setFldIdx(s64_t idx)
|
|
159
125
|
{
|
|
160
126
|
fldIdx = idx;
|
|
161
127
|
}
|
|
@@ -165,7 +131,9 @@ public:
|
|
|
165
131
|
}
|
|
166
132
|
//@}
|
|
167
133
|
|
|
168
|
-
|
|
134
|
+
s64_t accumulateConstantOffset() const;
|
|
135
|
+
|
|
136
|
+
bool addOffsetValue(const Value* offsetValue, const Type* type);
|
|
169
137
|
|
|
170
138
|
/// Return TRUE if this is a constant location set.
|
|
171
139
|
bool isConstantOffset() const;
|
|
@@ -187,13 +155,7 @@ private:
|
|
|
187
155
|
/// Compute all possible locations according to offset and number-stride pairs.
|
|
188
156
|
NodeBS computeAllLocations() const;
|
|
189
157
|
|
|
190
|
-
|
|
191
|
-
inline unsigned gcd (unsigned n1, unsigned n2) const
|
|
192
|
-
{
|
|
193
|
-
return (n2 == 0) ? n1 : gcd (n2, n1 % n2);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
Size_t fldIdx; ///< Accumulated Constant Offsets
|
|
158
|
+
s64_t fldIdx; ///< Accumulated Constant Offsets
|
|
197
159
|
OffsetValueVec offsetValues; ///< a vector of actual offset in the form of Values
|
|
198
160
|
};
|
|
199
161
|
|
|
@@ -170,7 +170,7 @@ public:
|
|
|
170
170
|
return pag->getICFG();
|
|
171
171
|
}
|
|
172
172
|
/// Return number of resolved indirect call edges
|
|
173
|
-
inline
|
|
173
|
+
inline u32_t getNumOfResolvedIndCallEdge() const
|
|
174
174
|
{
|
|
175
175
|
return getPTACallGraph()->getNumOfResolvedIndCallEdge();
|
|
176
176
|
}
|
|
@@ -63,7 +63,7 @@ public:
|
|
|
63
63
|
typedef Map<const SVFFunction*,SVFStmtSet> FunToPAGEdgeSetMap;
|
|
64
64
|
typedef Map<const ICFGNode*,SVFStmtList> ICFGNode2SVFStmtsMap;
|
|
65
65
|
typedef Map<NodeID, NodeID> NodeToNodeMap;
|
|
66
|
-
typedef std::pair<NodeID,
|
|
66
|
+
typedef std::pair<NodeID, s64_t> NodeOffset;
|
|
67
67
|
typedef std::pair<NodeID, LocationSet> NodeLocationSet;
|
|
68
68
|
typedef Map<NodeOffset,NodeID> NodeOffsetMap;
|
|
69
69
|
typedef Map<NodeLocationSet,NodeID> NodeLocationSetMap;
|
|
@@ -281,11 +281,11 @@ public:
|
|
|
281
281
|
|
|
282
282
|
/// Node and edge statistics
|
|
283
283
|
//@{
|
|
284
|
-
inline
|
|
284
|
+
inline u32_t getFieldValNodeNum() const
|
|
285
285
|
{
|
|
286
286
|
return GepValObjMap.size();
|
|
287
287
|
}
|
|
288
|
-
inline
|
|
288
|
+
inline u32_t getFieldObjNodeNum() const
|
|
289
289
|
{
|
|
290
290
|
return GepObjVarMap.size();
|
|
291
291
|
}
|
|
@@ -649,9 +649,9 @@ private:
|
|
|
649
649
|
/// Add Gep edge
|
|
650
650
|
GepStmt* addGepStmt(NodeID src, NodeID dst, const LocationSet& ls, bool constGep);
|
|
651
651
|
/// Add Offset(Gep) edge
|
|
652
|
-
|
|
652
|
+
GepStmt* addNormalGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
|
|
653
653
|
/// Add Variant(Gep) edge
|
|
654
|
-
|
|
654
|
+
GepStmt* addVariantGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
|
|
655
655
|
/// Add Thread fork edge for parameter passing
|
|
656
656
|
TDForkPE* addThreadForkPE(NodeID src, NodeID dst, const CallICFGNode* cs);
|
|
657
657
|
/// Add Thread join edge for parameter passing
|
|
@@ -53,7 +53,7 @@ public:
|
|
|
53
53
|
/// ThreadFork/ThreadJoin is to model parameter passings between thread spawners and spawnees.
|
|
54
54
|
enum PEDGEK
|
|
55
55
|
{
|
|
56
|
-
Addr, Copy, Store, Load, Call, Ret,
|
|
56
|
+
Addr, Copy, Store, Load, Call, Ret, Gep, Phi, Cmp, BinaryOp, UnaryOp, Branch, ThreadFork, ThreadJoin
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
private:
|
|
@@ -62,7 +62,7 @@ private:
|
|
|
62
62
|
ICFGNode *icfgNode; ///< ICFGNode
|
|
63
63
|
EdgeID edgeId; ///< Edge ID
|
|
64
64
|
public:
|
|
65
|
-
static
|
|
65
|
+
static u32_t totalEdgeNum; ///< Total edge number
|
|
66
66
|
|
|
67
67
|
/// Constructor
|
|
68
68
|
SVFStmt(SVFVar* s, SVFVar* d, GEdgeFlag k);
|
|
@@ -85,8 +85,7 @@ public:
|
|
|
85
85
|
edge->getEdgeKind() == SVFStmt::Load ||
|
|
86
86
|
edge->getEdgeKind() == SVFStmt::Call ||
|
|
87
87
|
edge->getEdgeKind() == SVFStmt::Ret ||
|
|
88
|
-
edge->getEdgeKind() == SVFStmt::
|
|
89
|
-
edge->getEdgeKind() == SVFStmt::VariantGep ||
|
|
88
|
+
edge->getEdgeKind() == SVFStmt::Gep ||
|
|
90
89
|
edge->getEdgeKind() == SVFStmt::Cmp ||
|
|
91
90
|
edge->getEdgeKind() == SVFStmt::BinaryOp ||
|
|
92
91
|
edge->getEdgeKind() == SVFStmt::UnaryOp ||
|
|
@@ -227,8 +226,7 @@ public:
|
|
|
227
226
|
edge->getEdgeKind() == SVFStmt::Load ||
|
|
228
227
|
edge->getEdgeKind() == SVFStmt::Call ||
|
|
229
228
|
edge->getEdgeKind() == SVFStmt::Ret ||
|
|
230
|
-
edge->getEdgeKind() == SVFStmt::
|
|
231
|
-
edge->getEdgeKind() == SVFStmt::VariantGep ||
|
|
229
|
+
edge->getEdgeKind() == SVFStmt::Gep ||
|
|
232
230
|
edge->getEdgeKind() == SVFStmt::ThreadFork ||
|
|
233
231
|
edge->getEdgeKind() == SVFStmt::ThreadJoin;
|
|
234
232
|
}
|
|
@@ -240,8 +238,7 @@ public:
|
|
|
240
238
|
edge->getEdgeKind() == SVFStmt::Load ||
|
|
241
239
|
edge->getEdgeKind() == SVFStmt::Call ||
|
|
242
240
|
edge->getEdgeKind() == SVFStmt::Ret ||
|
|
243
|
-
edge->getEdgeKind() == SVFStmt::
|
|
244
|
-
edge->getEdgeKind() == SVFStmt::VariantGep ||
|
|
241
|
+
edge->getEdgeKind() == SVFStmt::Gep ||
|
|
245
242
|
edge->getEdgeKind() == SVFStmt::ThreadFork ||
|
|
246
243
|
edge->getEdgeKind() == SVFStmt::ThreadJoin;
|
|
247
244
|
}
|
|
@@ -417,7 +414,7 @@ private:
|
|
|
417
414
|
void operator=(const GepStmt &); ///< place holder
|
|
418
415
|
|
|
419
416
|
LocationSet ls; ///< location set of the gep edge
|
|
420
|
-
|
|
417
|
+
bool variantField; ///< Gep statement with a variant field index (pointer arithmetic) for struct field access (e.g., p = &(q + f), where f is a variable)
|
|
421
418
|
public:
|
|
422
419
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
423
420
|
//@{
|
|
@@ -427,111 +424,37 @@ public:
|
|
|
427
424
|
}
|
|
428
425
|
static inline bool classof(const SVFStmt *edge)
|
|
429
426
|
{
|
|
430
|
-
return edge->getEdgeKind() == SVFStmt::
|
|
431
|
-
edge->getEdgeKind() == SVFStmt::VariantGep;
|
|
427
|
+
return edge->getEdgeKind() == SVFStmt::Gep;
|
|
432
428
|
}
|
|
433
429
|
static inline bool classof(const GenericPAGEdgeTy *edge)
|
|
434
430
|
{
|
|
435
|
-
return edge->getEdgeKind() == SVFStmt::
|
|
436
|
-
edge->getEdgeKind() == SVFStmt::VariantGep;
|
|
431
|
+
return edge->getEdgeKind() == SVFStmt::Gep;
|
|
437
432
|
}
|
|
438
433
|
//@}
|
|
439
434
|
|
|
440
435
|
inline const LocationSet& getLocationSet() const
|
|
441
436
|
{
|
|
437
|
+
assert(isVariantFieldGep()==false && "Can't retrieve the LocationSet if using a variable field index (pointer arithmetic) for struct field access ");
|
|
442
438
|
return ls;
|
|
443
439
|
}
|
|
444
440
|
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
GepStmt(SVFVar* s, SVFVar* d, const LocationSet& l, PEDGEK k) : AssignStmt(s,d,k), ls(l)
|
|
448
|
-
{
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
virtual const std::string toString() const;
|
|
452
|
-
|
|
453
|
-
};
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
/*!
|
|
457
|
-
* Gep statement with a fixed field index for struct field access
|
|
458
|
-
*/
|
|
459
|
-
class NormalGepStmt : public GepStmt
|
|
460
|
-
{
|
|
461
|
-
private:
|
|
462
|
-
NormalGepStmt(); ///< place holder
|
|
463
|
-
NormalGepStmt(const NormalGepStmt&); ///< place holder
|
|
464
|
-
void operator=(const NormalGepStmt&); ///< place holder
|
|
465
|
-
|
|
466
|
-
public:
|
|
467
|
-
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
468
|
-
//@{
|
|
469
|
-
static inline bool classof(const NormalGepStmt *)
|
|
441
|
+
/// offset of the gep statement
|
|
442
|
+
inline s64_t getConstantFieldIdx() const
|
|
470
443
|
{
|
|
471
|
-
return
|
|
472
|
-
}
|
|
473
|
-
static inline bool classof(const GepStmt *edge)
|
|
474
|
-
{
|
|
475
|
-
return edge->getEdgeKind() == SVFStmt::NormalGep;
|
|
476
|
-
}
|
|
477
|
-
static inline bool classof(const SVFStmt *edge)
|
|
478
|
-
{
|
|
479
|
-
return edge->getEdgeKind() == SVFStmt::NormalGep;
|
|
444
|
+
return getLocationSet().accumulateConstantFieldIdx();
|
|
480
445
|
}
|
|
481
|
-
|
|
446
|
+
/// Gep statement with a variant field index (pointer arithmetic) for struct field access
|
|
447
|
+
inline bool isVariantFieldGep() const
|
|
482
448
|
{
|
|
483
|
-
return
|
|
484
|
-
}
|
|
485
|
-
//@}
|
|
449
|
+
return variantField;
|
|
450
|
+
}
|
|
486
451
|
|
|
487
452
|
/// constructor
|
|
488
|
-
|
|
489
|
-
{}
|
|
490
|
-
|
|
491
|
-
/// offset of the gep edge
|
|
492
|
-
inline u32_t getFieldOffset() const
|
|
453
|
+
GepStmt(SVFVar* s, SVFVar* d, const LocationSet& l, bool varfld=false) : AssignStmt(s,d,SVFStmt::Gep), ls(l), variantField(varfld)
|
|
493
454
|
{
|
|
494
|
-
return getLocationSet().accumulateConstantFieldIdx();
|
|
495
455
|
}
|
|
496
456
|
|
|
497
|
-
virtual const std::string toString() const
|
|
498
|
-
};
|
|
499
|
-
|
|
500
|
-
/*!
|
|
501
|
-
* Gep statement with a variant field index for struct field access
|
|
502
|
-
*/
|
|
503
|
-
class VariantGepStmt : public GepStmt
|
|
504
|
-
{
|
|
505
|
-
private:
|
|
506
|
-
VariantGepStmt(); ///< place holder
|
|
507
|
-
VariantGepStmt(const VariantGepStmt&); ///< place holder
|
|
508
|
-
void operator=(const VariantGepStmt&); ///< place holder
|
|
509
|
-
|
|
510
|
-
public:
|
|
511
|
-
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
512
|
-
//@{
|
|
513
|
-
static inline bool classof(const VariantGepStmt *)
|
|
514
|
-
{
|
|
515
|
-
return true;
|
|
516
|
-
}
|
|
517
|
-
static inline bool classof(const GepStmt *edge)
|
|
518
|
-
{
|
|
519
|
-
return edge->getEdgeKind() == SVFStmt::VariantGep;
|
|
520
|
-
}
|
|
521
|
-
static inline bool classof(const SVFStmt *edge)
|
|
522
|
-
{
|
|
523
|
-
return edge->getEdgeKind() == SVFStmt::VariantGep;
|
|
524
|
-
}
|
|
525
|
-
static inline bool classof(const GenericPAGEdgeTy *edge)
|
|
526
|
-
{
|
|
527
|
-
return edge->getEdgeKind() == SVFStmt::VariantGep;
|
|
528
|
-
}
|
|
529
|
-
//@}
|
|
530
|
-
|
|
531
|
-
/// constructor
|
|
532
|
-
VariantGepStmt(SVFVar* s, SVFVar* d, const LocationSet& l) : GepStmt(s,d,l, SVFStmt::VariantGep) {}
|
|
533
|
-
|
|
534
|
-
virtual const std::string toString() const override;
|
|
457
|
+
virtual const std::string toString() const;
|
|
535
458
|
|
|
536
459
|
};
|
|
537
460
|
|
|
@@ -241,10 +241,13 @@ private:
|
|
|
241
241
|
/// Has incoming VariantGepEdges
|
|
242
242
|
inline bool hasIncomingVariantGepEdge() const
|
|
243
243
|
{
|
|
244
|
-
SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(SVFStmt::
|
|
244
|
+
SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(SVFStmt::Gep);
|
|
245
245
|
if (it != InEdgeKindToSetMap.end())
|
|
246
246
|
{
|
|
247
|
-
|
|
247
|
+
for(auto gep : it->second){
|
|
248
|
+
if(SVFUtil::cast<GepStmt>(gep)->isVariantFieldGep())
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
248
251
|
}
|
|
249
252
|
return false;
|
|
250
253
|
}
|
|
@@ -422,7 +425,7 @@ public:
|
|
|
422
425
|
}
|
|
423
426
|
|
|
424
427
|
/// offset of the base value variable
|
|
425
|
-
inline
|
|
428
|
+
inline s64_t getConstantFieldIdx() const
|
|
426
429
|
{
|
|
427
430
|
return ls.accumulateConstantFieldIdx();
|
|
428
431
|
}
|
|
@@ -431,8 +434,8 @@ public:
|
|
|
431
434
|
inline const std::string getValueName() const
|
|
432
435
|
{
|
|
433
436
|
if (value && value->hasName())
|
|
434
|
-
return value->getName().str() + "_" + llvm::utostr(
|
|
435
|
-
return "offset_" + llvm::utostr(
|
|
437
|
+
return value->getName().str() + "_" + llvm::utostr(getConstantFieldIdx());
|
|
438
|
+
return "offset_" + llvm::utostr(getConstantFieldIdx());
|
|
436
439
|
}
|
|
437
440
|
|
|
438
441
|
inline const Type* getType() const
|
|
@@ -497,7 +500,7 @@ public:
|
|
|
497
500
|
}
|
|
498
501
|
|
|
499
502
|
/// offset of the mem object
|
|
500
|
-
inline
|
|
503
|
+
inline s64_t getConstantFieldIdx() const
|
|
501
504
|
{
|
|
502
505
|
return ls.accumulateConstantFieldIdx();
|
|
503
506
|
}
|
|
@@ -302,7 +302,7 @@ public:
|
|
|
302
302
|
|
|
303
303
|
/// Statistics
|
|
304
304
|
//@{
|
|
305
|
-
inline
|
|
305
|
+
inline u32_t getTotalSymNum() const
|
|
306
306
|
{
|
|
307
307
|
return totalSymNum;
|
|
308
308
|
}
|
|
@@ -454,7 +454,7 @@ public:
|
|
|
454
454
|
const Type* getType() const;
|
|
455
455
|
|
|
456
456
|
/// Get max field offset limit
|
|
457
|
-
|
|
457
|
+
u32_t getMaxFieldOffsetLimit() const;
|
|
458
458
|
|
|
459
459
|
/// Return true if its field limit is 0
|
|
460
460
|
bool isFieldInsensitive() const;
|
|
@@ -601,7 +601,7 @@ private:
|
|
|
601
601
|
/// LLVM type
|
|
602
602
|
const Type* type;
|
|
603
603
|
/// Type flags
|
|
604
|
-
|
|
604
|
+
u32_t flags;
|
|
605
605
|
/// Max offset for flexible field sensitive analysis
|
|
606
606
|
/// maximum number of field object can be created
|
|
607
607
|
/// minimum number is 0 (field insensitive analysis)
|
package/include/SVF-FE/DCHG.h
CHANGED
|
@@ -72,8 +72,8 @@ public:
|
|
|
72
72
|
/// Initialize nodes and edges
|
|
73
73
|
//@{
|
|
74
74
|
void initialiseNodes();
|
|
75
|
-
void addEdge(NodeID src, NodeID dst,
|
|
76
|
-
|
|
75
|
+
void addEdge(NodeID src, NodeID dst, SVFStmt::PEDGEK kind,
|
|
76
|
+
s64_t offset = 0, Instruction* cs = nullptr);
|
|
77
77
|
// @}
|
|
78
78
|
|
|
79
79
|
/// Sanity check for SVFIR
|
|
@@ -122,7 +122,7 @@ public:
|
|
|
122
122
|
void processCE(const Value *val);
|
|
123
123
|
|
|
124
124
|
/// Infer field index from byteoffset.
|
|
125
|
-
u32_t inferFieldIdxFromByteOffset(const llvm::GEPOperator* gepOp, DataLayout *dl, LocationSet& ls,
|
|
125
|
+
u32_t inferFieldIdxFromByteOffset(const llvm::GEPOperator* gepOp, DataLayout *dl, LocationSet& ls, s64_t idx);
|
|
126
126
|
|
|
127
127
|
/// Compute offset of a gep instruction or gep constant expression
|
|
128
128
|
bool computeGepOffset(const User *V, LocationSet& ls);
|
|
@@ -377,16 +377,16 @@ public:
|
|
|
377
377
|
return edge;
|
|
378
378
|
}
|
|
379
379
|
/// Add Offset(Gep) edge
|
|
380
|
-
inline
|
|
380
|
+
inline GepStmt* addNormalGepEdge(NodeID src, NodeID dst, const LocationSet& ls)
|
|
381
381
|
{
|
|
382
|
-
|
|
382
|
+
GepStmt *edge = pag->addNormalGepStmt(src, dst, ls);
|
|
383
383
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
384
384
|
return edge;
|
|
385
385
|
}
|
|
386
386
|
/// Add Variant(Gep) edge
|
|
387
|
-
inline
|
|
387
|
+
inline GepStmt* addVariantGepEdge(NodeID src, NodeID dst, const LocationSet& ls)
|
|
388
388
|
{
|
|
389
|
-
|
|
389
|
+
GepStmt *edge = pag->addVariantGepStmt(src, dst, ls);
|
|
390
390
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
391
391
|
return edge;
|
|
392
392
|
}
|
|
@@ -64,7 +64,7 @@ private:
|
|
|
64
64
|
void writePAGgepNode(SVF::NodeID nodeId, GepObjVar* gepNode)
|
|
65
65
|
{
|
|
66
66
|
auto baseNodeId = gepNode->getBaseNode();
|
|
67
|
-
auto locationSetOffset = gepNode->
|
|
67
|
+
auto locationSetOffset = gepNode->getConstantFieldIdx();
|
|
68
68
|
|
|
69
69
|
LLVMContext &context = mainModule->getContext();
|
|
70
70
|
llvm::SmallVector<llvm::Metadata *, 32> operands;
|
|
@@ -85,7 +85,7 @@ private:
|
|
|
85
85
|
{
|
|
86
86
|
std::string label = it->getName().str();
|
|
87
87
|
std::string toErase = "gepnode-";
|
|
88
|
-
SVF::
|
|
88
|
+
SVF::s64_t pos = label.find(toErase);
|
|
89
89
|
if (pos == std::string::npos)
|
|
90
90
|
{
|
|
91
91
|
continue;
|
|
@@ -96,7 +96,7 @@ private:
|
|
|
96
96
|
auto mdNode = it->getOperand(0);
|
|
97
97
|
|
|
98
98
|
SVF::NodeID baseNodeId = std::stoi(llvm::cast<llvm::MDString>(mdNode->getOperand(0))->getString().str());
|
|
99
|
-
SVF::
|
|
99
|
+
SVF::s64_t locationSetOffset = std::stoi(llvm::cast<llvm::MDString>(mdNode->getOperand(1))->getString().str());
|
|
100
100
|
|
|
101
101
|
LocationSet locationSet = LocationSet(locationSetOffset);
|
|
102
102
|
SVF::NodeID gepnodeId = pag->getGepObjVar(baseNodeId, locationSet);
|
|
@@ -73,9 +73,9 @@ template <class T> struct Hash {
|
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
typedef unsigned u32_t;
|
|
76
|
-
typedef unsigned long long u64_t;
|
|
77
76
|
typedef signed s32_t;
|
|
78
|
-
typedef
|
|
77
|
+
typedef unsigned long long u64_t;
|
|
78
|
+
typedef signed s64_t;
|
|
79
79
|
|
|
80
80
|
typedef u32_t NodeID;
|
|
81
81
|
typedef u32_t EdgeID;
|
|
@@ -183,7 +183,7 @@ class SVFValue
|
|
|
183
183
|
{
|
|
184
184
|
|
|
185
185
|
public:
|
|
186
|
-
typedef
|
|
186
|
+
typedef s64_t GNodeK;
|
|
187
187
|
|
|
188
188
|
enum SVFValKind
|
|
189
189
|
{
|