svf-tools 1.0.321 → 1.0.322
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 +1 -1
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +11 -11
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +11 -11
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +33 -33
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +31 -31
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +32 -32
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/SVFStatements_8h.html +11 -11
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +72 -72
- 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 +66 -66
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/VFG_8h_source.html +21 -21
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +136 -0
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +498 -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_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +154 -0
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +754 -0
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.png +0 -0
- 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 +74 -22
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +477 -93
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +5 -5
- 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.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +56 -21
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +251 -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_1DDAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +18 -18
- 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_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +3 -3
- 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 +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +56 -22
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +257 -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_1ICFGPrinter.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +18 -18
- 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 +56 -21
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +251 -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 +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +63 -63
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +71 -71
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +141 -0
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +647 -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_1PAGBuilderFromFile.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +73 -22
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +445 -98
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +142 -142
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +137 -137
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- 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 +56 -21
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +258 -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_1ThreadCallGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +146 -0
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +792 -0
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +69 -69
- 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_1VariantGepStmt-members.html +138 -0
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +542 -0
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classes.html +18 -18
- package/SVF-doxygen/html/html/functions_a.html +39 -39
- package/SVF-doxygen/html/html/functions_b.html +2 -2
- package/SVF-doxygen/html/html/functions_c.html +34 -34
- package/SVF-doxygen/html/html/functions_d.html +4 -4
- package/SVF-doxygen/html/html/functions_f.html +3 -3
- package/SVF-doxygen/html/html/functions_func.html +38 -38
- 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 +49 -49
- 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 +52 -52
- package/SVF-doxygen/html/html/functions_i.html +2 -2
- package/SVF-doxygen/html/html/functions_l.html +9 -9
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +2 -2
- package/SVF-doxygen/html/html/functions_o.html +17 -17
- package/SVF-doxygen/html/html/functions_p.html +4 -4
- package/SVF-doxygen/html/html/functions_s.html +7 -7
- package/SVF-doxygen/html/html/functions_t.html +20 -20
- package/SVF-doxygen/html/html/functions_type_c.html +1 -1
- package/SVF-doxygen/html/html/functions_type_l.html +3 -3
- package/SVF-doxygen/html/html/functions_type_p.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +3 -3
- package/SVF-doxygen/html/html/functions_u.html +2 -2
- package/SVF-doxygen/html/html/functions_v.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +2 -2
- 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 -3
- 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 +23 -23
- package/SVF-doxygen/html/html/search/all_1.js +37 -37
- package/SVF-doxygen/html/html/search/all_10.js +2 -2
- package/SVF-doxygen/html/html/search/all_13.js +6 -6
- package/SVF-doxygen/html/html/search/all_14.js +1 -1
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +8 -8
- package/SVF-doxygen/html/html/search/all_4.js +2 -2
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +26 -26
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- 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 +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +3 -3
- 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 +37 -37
- package/SVF-doxygen/html/html/search/functions_1.js +1 -1
- package/SVF-doxygen/html/html/search/functions_10.js +3 -3
- 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 +25 -25
- 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 +3 -3
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_b.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- package/SVF-doxygen/html/html/search/variables_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_f.js +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +1 -1
- package/include/Graphs/ICFGNode.h +1 -1
- package/include/Graphs/VFG.h +9 -9
- package/include/Graphs/VFGNode.h +6 -6
- package/include/MSSA/MSSAMuChi.h +6 -6
- package/include/MSSA/MemRegion.h +8 -8
- package/include/MSSA/MemSSA.h +10 -10
- package/include/MemoryModel/PointerAnalysis.h +1 -1
- package/include/MemoryModel/PointerAnalysisImpl.h +2 -2
- package/include/MemoryModel/SVFIR.h +28 -28
- package/include/MemoryModel/SVFStatements.h +68 -68
- package/include/MemoryModel/SVFVariables.h +39 -39
- package/include/SVF-FE/SVFIRBuilder.h +22 -22
- package/lib/DDA/ContextDDA.cpp +4 -4
- package/lib/DDA/DDAStat.cpp +1 -1
- package/lib/DDA/FlowDDA.cpp +2 -2
- package/lib/Graphs/ConsG.cpp +12 -12
- package/lib/Graphs/IRGraph.cpp +15 -15
- package/lib/Graphs/OfflineConsG.cpp +8 -8
- package/lib/Graphs/SVFG.cpp +8 -8
- package/lib/Graphs/ThreadCallGraph.cpp +2 -2
- package/lib/Graphs/VFG.cpp +15 -15
- package/lib/MSSA/MemRegion.cpp +6 -6
- package/lib/MSSA/MemSSA.cpp +6 -6
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +3 -3
- package/lib/MemoryModel/PointerAnalysis.cpp +9 -9
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +2 -2
- package/lib/MemoryModel/SVFIR.cpp +44 -44
- package/lib/MemoryModel/SVFStatements.cpp +24 -24
- package/lib/MemoryModel/SVFVariables.cpp +19 -19
- package/lib/SABER/SaberSVFGBuilder.cpp +2 -2
- package/lib/SVF-FE/Graph2Json.cpp +1 -1
- package/lib/SVF-FE/SVFIRBuilder.cpp +5 -5
- package/lib/Util/PTAStat.cpp +1 -1
- package/lib/Util/TypeBasedHeapCloning.cpp +19 -19
- package/lib/WPA/AndersenSFR.cpp +1 -1
- package/lib/WPA/AndersenStat.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +2 -2
- package/lib/WPA/FlowSensitiveStat.cpp +2 -2
- package/lib/WPA/FlowSensitiveTBHC.cpp +4 -4
- package/lib/WPA/VersionedFlowSensitive.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -1
- package/package.json +1 -1
|
@@ -193,16 +193,16 @@ private:
|
|
|
193
193
|
/*!
|
|
194
194
|
* Copy edge
|
|
195
195
|
*/
|
|
196
|
-
class
|
|
196
|
+
class AddrStmt: public SVFStmt
|
|
197
197
|
{
|
|
198
198
|
private:
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
void operator=(const
|
|
199
|
+
AddrStmt(); ///< place holder
|
|
200
|
+
AddrStmt(const AddrStmt &); ///< place holder
|
|
201
|
+
void operator=(const AddrStmt &); ///< place holder
|
|
202
202
|
public:
|
|
203
203
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
204
204
|
//@{
|
|
205
|
-
static inline bool classof(const
|
|
205
|
+
static inline bool classof(const AddrStmt *)
|
|
206
206
|
{
|
|
207
207
|
return true;
|
|
208
208
|
}
|
|
@@ -217,7 +217,7 @@ public:
|
|
|
217
217
|
//@}
|
|
218
218
|
|
|
219
219
|
/// constructor
|
|
220
|
-
|
|
220
|
+
AddrStmt(SVFVar* s, SVFVar* d) : SVFStmt(s,d,SVFStmt::Addr)
|
|
221
221
|
{
|
|
222
222
|
}
|
|
223
223
|
|
|
@@ -228,16 +228,16 @@ public:
|
|
|
228
228
|
/*!
|
|
229
229
|
* Copy edge
|
|
230
230
|
*/
|
|
231
|
-
class
|
|
231
|
+
class CopyStmt: public SVFStmt
|
|
232
232
|
{
|
|
233
233
|
private:
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
void operator=(const
|
|
234
|
+
CopyStmt(); ///< place holder
|
|
235
|
+
CopyStmt(const CopyStmt &); ///< place holder
|
|
236
|
+
void operator=(const CopyStmt &); ///< place holder
|
|
237
237
|
public:
|
|
238
238
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
239
239
|
//@{
|
|
240
|
-
static inline bool classof(const
|
|
240
|
+
static inline bool classof(const CopyStmt *)
|
|
241
241
|
{
|
|
242
242
|
return true;
|
|
243
243
|
}
|
|
@@ -252,7 +252,7 @@ public:
|
|
|
252
252
|
//@}
|
|
253
253
|
|
|
254
254
|
/// constructor
|
|
255
|
-
|
|
255
|
+
CopyStmt(SVFVar* s, SVFVar* d) : SVFStmt(s,d,SVFStmt::Copy)
|
|
256
256
|
{
|
|
257
257
|
}
|
|
258
258
|
|
|
@@ -325,12 +325,12 @@ public:
|
|
|
325
325
|
/*!
|
|
326
326
|
* Phi instruction edge
|
|
327
327
|
*/
|
|
328
|
-
class
|
|
328
|
+
class PhiStmt: public MultiOpndStmt
|
|
329
329
|
{
|
|
330
330
|
private:
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
void operator=(const
|
|
331
|
+
PhiStmt(); ///< place holder
|
|
332
|
+
PhiStmt(const PhiStmt &); ///< place holder
|
|
333
|
+
void operator=(const PhiStmt &); ///< place holder
|
|
334
334
|
SVFVar* getSrcNode(); ///< place holder, not allowed since this SVFStmt has multiple operands but not a single source
|
|
335
335
|
SVFVar* getDstNode(); ///< place holder, use getRes() instead
|
|
336
336
|
SVFVar* getSrcID(); ///< place holder, use getOpVarID(pos) instead
|
|
@@ -339,7 +339,7 @@ private:
|
|
|
339
339
|
public:
|
|
340
340
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
341
341
|
//@{
|
|
342
|
-
static inline bool classof(const
|
|
342
|
+
static inline bool classof(const PhiStmt *)
|
|
343
343
|
{
|
|
344
344
|
return true;
|
|
345
345
|
}
|
|
@@ -358,7 +358,7 @@ public:
|
|
|
358
358
|
//@}
|
|
359
359
|
|
|
360
360
|
/// constructor
|
|
361
|
-
|
|
361
|
+
PhiStmt(SVFVar* s, const OPVars& opnds) : MultiOpndStmt(s,opnds,SVFStmt::Phi)
|
|
362
362
|
{
|
|
363
363
|
}
|
|
364
364
|
void addOpVar(SVFVar* op){
|
|
@@ -371,12 +371,12 @@ public:
|
|
|
371
371
|
/*!
|
|
372
372
|
* Compare instruction edge
|
|
373
373
|
*/
|
|
374
|
-
class
|
|
374
|
+
class CmpStmt: public MultiOpndStmt
|
|
375
375
|
{
|
|
376
376
|
private:
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
void operator=(const
|
|
377
|
+
CmpStmt(); ///< place holder
|
|
378
|
+
CmpStmt(const CmpStmt &); ///< place holder
|
|
379
|
+
void operator=(const CmpStmt &); ///< place holder
|
|
380
380
|
SVFVar* getSrcNode(); ///< place holder, not allowed since this SVFStmt has multiple operands but not a single source
|
|
381
381
|
SVFVar* getDstNode(); ///< place holder, use getRes() instead
|
|
382
382
|
SVFVar* getSrcID(); ///< place holder, use getOpVarID(pos) instead
|
|
@@ -386,7 +386,7 @@ private:
|
|
|
386
386
|
public:
|
|
387
387
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
388
388
|
//@{
|
|
389
|
-
static inline bool classof(const
|
|
389
|
+
static inline bool classof(const CmpStmt *)
|
|
390
390
|
{
|
|
391
391
|
return true;
|
|
392
392
|
}
|
|
@@ -405,7 +405,7 @@ public:
|
|
|
405
405
|
//@}
|
|
406
406
|
|
|
407
407
|
/// constructor
|
|
408
|
-
|
|
408
|
+
CmpStmt(SVFVar* s, const OPVars& opnds, u32_t oc) : MultiOpndStmt(s,opnds,SVFStmt::Cmp), opcode(oc)
|
|
409
409
|
{
|
|
410
410
|
}
|
|
411
411
|
|
|
@@ -421,12 +421,12 @@ public:
|
|
|
421
421
|
/*!
|
|
422
422
|
* Binary instruction edge
|
|
423
423
|
*/
|
|
424
|
-
class
|
|
424
|
+
class BinaryOPStmt: public MultiOpndStmt
|
|
425
425
|
{
|
|
426
426
|
private:
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
void operator=(const
|
|
427
|
+
BinaryOPStmt(); ///< place holder
|
|
428
|
+
BinaryOPStmt(const BinaryOPStmt &); ///< place holder
|
|
429
|
+
void operator=(const BinaryOPStmt &); ///< place holder
|
|
430
430
|
SVFVar* getSrcNode(); ///< place holder, not allowed since this SVFStmt has multiple operands but not a single source
|
|
431
431
|
SVFVar* getDstNode(); ///< place holder, use getRes() instead
|
|
432
432
|
SVFVar* getSrcID(); ///< place holder, use getOpVarID(pos) instead
|
|
@@ -437,7 +437,7 @@ private:
|
|
|
437
437
|
public:
|
|
438
438
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
439
439
|
//@{
|
|
440
|
-
static inline bool classof(const
|
|
440
|
+
static inline bool classof(const BinaryOPStmt *)
|
|
441
441
|
{
|
|
442
442
|
return true;
|
|
443
443
|
}
|
|
@@ -456,7 +456,7 @@ public:
|
|
|
456
456
|
//@}
|
|
457
457
|
|
|
458
458
|
/// constructor
|
|
459
|
-
|
|
459
|
+
BinaryOPStmt(SVFVar* s, const OPVars& opnds, u32_t oc) : MultiOpndStmt(s,opnds,SVFStmt::BinaryOp), opcode(oc)
|
|
460
460
|
{
|
|
461
461
|
}
|
|
462
462
|
|
|
@@ -471,12 +471,12 @@ public:
|
|
|
471
471
|
/*!
|
|
472
472
|
* Unary instruction edge
|
|
473
473
|
*/
|
|
474
|
-
class
|
|
474
|
+
class UnaryOPStmt: public SVFStmt
|
|
475
475
|
{
|
|
476
476
|
private:
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
void operator=(const
|
|
477
|
+
UnaryOPStmt(); ///< place holder
|
|
478
|
+
UnaryOPStmt(const UnaryOPStmt &); ///< place holder
|
|
479
|
+
void operator=(const UnaryOPStmt &); ///< place holder
|
|
480
480
|
SVFVar* getSrcNode(); ///< place holder, use getOpVar() instead
|
|
481
481
|
SVFVar* getDstNode(); ///< place holder, use getRes() instead
|
|
482
482
|
SVFVar* getSrcID(); ///< place holder, use getOpVarID() instead
|
|
@@ -486,7 +486,7 @@ private:
|
|
|
486
486
|
public:
|
|
487
487
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
488
488
|
//@{
|
|
489
|
-
static inline bool classof(const
|
|
489
|
+
static inline bool classof(const UnaryOPStmt *)
|
|
490
490
|
{
|
|
491
491
|
return true;
|
|
492
492
|
}
|
|
@@ -501,7 +501,7 @@ public:
|
|
|
501
501
|
//@}
|
|
502
502
|
|
|
503
503
|
/// constructor
|
|
504
|
-
|
|
504
|
+
UnaryOPStmt(SVFVar* s, SVFVar* d, u32_t oc) : SVFStmt(s,d,SVFStmt::UnaryOp), opcode(oc)
|
|
505
505
|
{
|
|
506
506
|
}
|
|
507
507
|
|
|
@@ -588,17 +588,17 @@ public:
|
|
|
588
588
|
/*!
|
|
589
589
|
* Store edge
|
|
590
590
|
*/
|
|
591
|
-
class
|
|
591
|
+
class StoreStmt: public SVFStmt
|
|
592
592
|
{
|
|
593
593
|
private:
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
void operator=(const
|
|
594
|
+
StoreStmt(); ///< place holder
|
|
595
|
+
StoreStmt(const StoreStmt &); ///< place holder
|
|
596
|
+
void operator=(const StoreStmt &); ///< place holder
|
|
597
597
|
|
|
598
598
|
public:
|
|
599
599
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
600
600
|
//@{
|
|
601
|
-
static inline bool classof(const
|
|
601
|
+
static inline bool classof(const StoreStmt *)
|
|
602
602
|
{
|
|
603
603
|
return true;
|
|
604
604
|
}
|
|
@@ -613,7 +613,7 @@ public:
|
|
|
613
613
|
//@}
|
|
614
614
|
|
|
615
615
|
/// constructor
|
|
616
|
-
|
|
616
|
+
StoreStmt(SVFVar* s, SVFVar* d, const IntraBlockNode* st) :
|
|
617
617
|
SVFStmt(s, d, makeEdgeFlagWithStoreInst(SVFStmt::Store, st))
|
|
618
618
|
{
|
|
619
619
|
}
|
|
@@ -625,17 +625,17 @@ public:
|
|
|
625
625
|
/*!
|
|
626
626
|
* Load edge
|
|
627
627
|
*/
|
|
628
|
-
class
|
|
628
|
+
class LoadStmt: public SVFStmt
|
|
629
629
|
{
|
|
630
630
|
private:
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
void operator=(const
|
|
631
|
+
LoadStmt(); ///< place holder
|
|
632
|
+
LoadStmt(const LoadStmt &); ///< place holder
|
|
633
|
+
void operator=(const LoadStmt &); ///< place holder
|
|
634
634
|
|
|
635
635
|
public:
|
|
636
636
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
637
637
|
//@{
|
|
638
|
-
static inline bool classof(const
|
|
638
|
+
static inline bool classof(const LoadStmt *)
|
|
639
639
|
{
|
|
640
640
|
return true;
|
|
641
641
|
}
|
|
@@ -650,7 +650,7 @@ public:
|
|
|
650
650
|
//@}
|
|
651
651
|
|
|
652
652
|
/// constructor
|
|
653
|
-
|
|
653
|
+
LoadStmt(SVFVar* s, SVFVar* d) : SVFStmt(s,d,SVFStmt::Load)
|
|
654
654
|
{
|
|
655
655
|
}
|
|
656
656
|
|
|
@@ -661,17 +661,17 @@ public:
|
|
|
661
661
|
/*!
|
|
662
662
|
* Gep edge
|
|
663
663
|
*/
|
|
664
|
-
class
|
|
664
|
+
class GepStmt: public SVFStmt
|
|
665
665
|
{
|
|
666
666
|
private:
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
void operator=(const
|
|
667
|
+
GepStmt(); ///< place holder
|
|
668
|
+
GepStmt(const GepStmt &); ///< place holder
|
|
669
|
+
void operator=(const GepStmt &); ///< place holder
|
|
670
670
|
|
|
671
671
|
public:
|
|
672
672
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
673
673
|
//@{
|
|
674
|
-
static inline bool classof(const
|
|
674
|
+
static inline bool classof(const GepStmt *)
|
|
675
675
|
{
|
|
676
676
|
return true;
|
|
677
677
|
}
|
|
@@ -689,7 +689,7 @@ public:
|
|
|
689
689
|
|
|
690
690
|
protected:
|
|
691
691
|
/// constructor
|
|
692
|
-
|
|
692
|
+
GepStmt(SVFVar* s, SVFVar* d, PEDGEK k) : SVFStmt(s,d,k)
|
|
693
693
|
{
|
|
694
694
|
|
|
695
695
|
}
|
|
@@ -701,23 +701,23 @@ protected:
|
|
|
701
701
|
/*!
|
|
702
702
|
* Gep edge with a fixed offset
|
|
703
703
|
*/
|
|
704
|
-
class
|
|
704
|
+
class NormalGepStmt : public GepStmt
|
|
705
705
|
{
|
|
706
706
|
private:
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
void operator=(const
|
|
707
|
+
NormalGepStmt(); ///< place holder
|
|
708
|
+
NormalGepStmt(const NormalGepStmt&); ///< place holder
|
|
709
|
+
void operator=(const NormalGepStmt&); ///< place holder
|
|
710
710
|
|
|
711
711
|
LocationSet ls; ///< location set of the gep edge
|
|
712
712
|
|
|
713
713
|
public:
|
|
714
714
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
715
715
|
//@{
|
|
716
|
-
static inline bool classof(const
|
|
716
|
+
static inline bool classof(const NormalGepStmt *)
|
|
717
717
|
{
|
|
718
718
|
return true;
|
|
719
719
|
}
|
|
720
|
-
static inline bool classof(const
|
|
720
|
+
static inline bool classof(const GepStmt *edge)
|
|
721
721
|
{
|
|
722
722
|
return edge->getEdgeKind() == SVFStmt::NormalGep;
|
|
723
723
|
}
|
|
@@ -732,7 +732,7 @@ public:
|
|
|
732
732
|
//@}
|
|
733
733
|
|
|
734
734
|
/// constructor
|
|
735
|
-
|
|
735
|
+
NormalGepStmt(SVFVar* s, SVFVar* d, const LocationSet& l) : GepStmt(s,d,SVFStmt::NormalGep), ls(l)
|
|
736
736
|
{}
|
|
737
737
|
|
|
738
738
|
/// offset of the gep edge
|
|
@@ -751,21 +751,21 @@ public:
|
|
|
751
751
|
/*!
|
|
752
752
|
* Gep edge with a variant offset
|
|
753
753
|
*/
|
|
754
|
-
class
|
|
754
|
+
class VariantGepStmt : public GepStmt
|
|
755
755
|
{
|
|
756
756
|
private:
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
void operator=(const
|
|
757
|
+
VariantGepStmt(); ///< place holder
|
|
758
|
+
VariantGepStmt(const VariantGepStmt&); ///< place holder
|
|
759
|
+
void operator=(const VariantGepStmt&); ///< place holder
|
|
760
760
|
|
|
761
761
|
public:
|
|
762
762
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
763
763
|
//@{
|
|
764
|
-
static inline bool classof(const
|
|
764
|
+
static inline bool classof(const VariantGepStmt *)
|
|
765
765
|
{
|
|
766
766
|
return true;
|
|
767
767
|
}
|
|
768
|
-
static inline bool classof(const
|
|
768
|
+
static inline bool classof(const GepStmt *edge)
|
|
769
769
|
{
|
|
770
770
|
return edge->getEdgeKind() == SVFStmt::VariantGep;
|
|
771
771
|
}
|
|
@@ -780,7 +780,7 @@ public:
|
|
|
780
780
|
//@}
|
|
781
781
|
|
|
782
782
|
/// constructor
|
|
783
|
-
|
|
783
|
+
VariantGepStmt(SVFVar* s, SVFVar* d) : GepStmt(s,d,SVFStmt::VariantGep) {}
|
|
784
784
|
|
|
785
785
|
virtual const std::string toString() const override;
|
|
786
786
|
|
|
@@ -270,13 +270,13 @@ public:
|
|
|
270
270
|
/*
|
|
271
271
|
* Value(Pointer) node
|
|
272
272
|
*/
|
|
273
|
-
class
|
|
273
|
+
class ValVar: public SVFVar
|
|
274
274
|
{
|
|
275
275
|
|
|
276
276
|
public:
|
|
277
277
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
278
278
|
//@{
|
|
279
|
-
static inline bool classof(const
|
|
279
|
+
static inline bool classof(const ValVar *)
|
|
280
280
|
{
|
|
281
281
|
return true;
|
|
282
282
|
}
|
|
@@ -295,7 +295,7 @@ public:
|
|
|
295
295
|
//@}
|
|
296
296
|
|
|
297
297
|
/// Constructor
|
|
298
|
-
|
|
298
|
+
ValVar(const Value* val, NodeID i, PNODEK ty = ValNode) :
|
|
299
299
|
SVFVar(val, i, ty)
|
|
300
300
|
{
|
|
301
301
|
}
|
|
@@ -314,20 +314,20 @@ public:
|
|
|
314
314
|
/*
|
|
315
315
|
* Memory Object node
|
|
316
316
|
*/
|
|
317
|
-
class
|
|
317
|
+
class ObjVar: public SVFVar
|
|
318
318
|
{
|
|
319
319
|
|
|
320
320
|
protected:
|
|
321
321
|
const MemObj* mem; ///< memory object
|
|
322
322
|
/// Constructor
|
|
323
|
-
|
|
323
|
+
ObjVar(const Value* val, NodeID i, const MemObj* m, PNODEK ty = ObjNode) :
|
|
324
324
|
SVFVar(val, i, ty), mem(m)
|
|
325
325
|
{
|
|
326
326
|
}
|
|
327
327
|
public:
|
|
328
328
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
329
329
|
//@{
|
|
330
|
-
static inline bool classof(const
|
|
330
|
+
static inline bool classof(const ObjVar *)
|
|
331
331
|
{
|
|
332
332
|
return true;
|
|
333
333
|
}
|
|
@@ -381,7 +381,7 @@ public:
|
|
|
381
381
|
* e.g. memcpy, temp gep value node needs to be created
|
|
382
382
|
* Each Gep Value node is connected to base value node via gep edge
|
|
383
383
|
*/
|
|
384
|
-
class
|
|
384
|
+
class GepValVar: public ValVar
|
|
385
385
|
{
|
|
386
386
|
|
|
387
387
|
private:
|
|
@@ -392,11 +392,11 @@ private:
|
|
|
392
392
|
public:
|
|
393
393
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
394
394
|
//@{
|
|
395
|
-
static inline bool classof(const
|
|
395
|
+
static inline bool classof(const GepValVar *)
|
|
396
396
|
{
|
|
397
397
|
return true;
|
|
398
398
|
}
|
|
399
|
-
static inline bool classof(const
|
|
399
|
+
static inline bool classof(const ValVar * node)
|
|
400
400
|
{
|
|
401
401
|
return node->getNodeKind() == SVFVar::GepValNode;
|
|
402
402
|
}
|
|
@@ -411,8 +411,8 @@ public:
|
|
|
411
411
|
//@}
|
|
412
412
|
|
|
413
413
|
/// Constructor
|
|
414
|
-
|
|
415
|
-
|
|
414
|
+
GepValVar(const Value* val, NodeID i, const LocationSet& l, const Type *ty, u32_t idx) :
|
|
415
|
+
ValVar(val, i, GepValNode), ls(l), gepValType(ty), fieldIdx(idx)
|
|
416
416
|
{
|
|
417
417
|
}
|
|
418
418
|
|
|
@@ -448,7 +448,7 @@ public:
|
|
|
448
448
|
* Gep Obj node, this is dynamic generated for field sensitive analysis
|
|
449
449
|
* Each gep obj node is one field of a MemObj (base)
|
|
450
450
|
*/
|
|
451
|
-
class GepObjPN: public
|
|
451
|
+
class GepObjPN: public ObjVar
|
|
452
452
|
{
|
|
453
453
|
private:
|
|
454
454
|
LocationSet ls;
|
|
@@ -461,7 +461,7 @@ public:
|
|
|
461
461
|
{
|
|
462
462
|
return true;
|
|
463
463
|
}
|
|
464
|
-
static inline bool classof(const
|
|
464
|
+
static inline bool classof(const ObjVar * node)
|
|
465
465
|
{
|
|
466
466
|
return node->getNodeKind() == SVFVar::GepObjNode
|
|
467
467
|
|| node->getNodeKind() == SVFVar::CloneGepObjNode;
|
|
@@ -480,7 +480,7 @@ public:
|
|
|
480
480
|
|
|
481
481
|
/// Constructor
|
|
482
482
|
GepObjPN(const MemObj* mem, NodeID i, const LocationSet& l, PNODEK ty = GepObjNode) :
|
|
483
|
-
|
|
483
|
+
ObjVar(mem->getValue(), i, mem, ty), ls(l)
|
|
484
484
|
{
|
|
485
485
|
base = mem->getId();
|
|
486
486
|
}
|
|
@@ -524,17 +524,17 @@ public:
|
|
|
524
524
|
* Field-insensitive Gep Obj node, this is dynamic generated for field sensitive analysis
|
|
525
525
|
* Each field-insensitive gep obj node represents all fields of a MemObj (base)
|
|
526
526
|
*/
|
|
527
|
-
class
|
|
527
|
+
class FIObjVar: public ObjVar
|
|
528
528
|
{
|
|
529
529
|
public:
|
|
530
530
|
|
|
531
531
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
532
532
|
//@{
|
|
533
|
-
static inline bool classof(const
|
|
533
|
+
static inline bool classof(const FIObjVar *)
|
|
534
534
|
{
|
|
535
535
|
return true;
|
|
536
536
|
}
|
|
537
|
-
static inline bool classof(const
|
|
537
|
+
static inline bool classof(const ObjVar * node)
|
|
538
538
|
{
|
|
539
539
|
return node->getNodeKind() == SVFVar::FIObjNode
|
|
540
540
|
|| node->getNodeKind() == SVFVar::CloneFIObjNode;
|
|
@@ -552,8 +552,8 @@ public:
|
|
|
552
552
|
//@}
|
|
553
553
|
|
|
554
554
|
/// Constructor
|
|
555
|
-
|
|
556
|
-
|
|
555
|
+
FIObjVar(const Value* val, NodeID i, const MemObj* mem, PNODEK ty = FIObjNode) :
|
|
556
|
+
ObjVar(val, i, mem, ty)
|
|
557
557
|
{
|
|
558
558
|
}
|
|
559
559
|
|
|
@@ -651,13 +651,13 @@ public:
|
|
|
651
651
|
/*
|
|
652
652
|
* Dummy node
|
|
653
653
|
*/
|
|
654
|
-
class
|
|
654
|
+
class DummyValVar: public ValVar
|
|
655
655
|
{
|
|
656
656
|
|
|
657
657
|
public:
|
|
658
658
|
|
|
659
659
|
//@{ Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
660
|
-
static inline bool classof(const
|
|
660
|
+
static inline bool classof(const DummyValVar *)
|
|
661
661
|
{
|
|
662
662
|
return true;
|
|
663
663
|
}
|
|
@@ -672,7 +672,7 @@ public:
|
|
|
672
672
|
//@}
|
|
673
673
|
|
|
674
674
|
/// Constructor
|
|
675
|
-
|
|
675
|
+
DummyValVar(NodeID i) : ValVar(nullptr, i, DummyValNode)
|
|
676
676
|
{
|
|
677
677
|
}
|
|
678
678
|
|
|
@@ -690,13 +690,13 @@ public:
|
|
|
690
690
|
/*
|
|
691
691
|
* Dummy node
|
|
692
692
|
*/
|
|
693
|
-
class
|
|
693
|
+
class DummyObjVar: public ObjVar
|
|
694
694
|
{
|
|
695
695
|
|
|
696
696
|
public:
|
|
697
697
|
|
|
698
698
|
//@{ Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
699
|
-
static inline bool classof(const
|
|
699
|
+
static inline bool classof(const DummyObjVar *)
|
|
700
700
|
{
|
|
701
701
|
return true;
|
|
702
702
|
}
|
|
@@ -713,8 +713,8 @@ public:
|
|
|
713
713
|
//@}
|
|
714
714
|
|
|
715
715
|
/// Constructor
|
|
716
|
-
|
|
717
|
-
:
|
|
716
|
+
DummyObjVar(NodeID i,const MemObj* m, PNODEK ty = DummyObjNode)
|
|
717
|
+
: ObjVar(nullptr, i, m, ty)
|
|
718
718
|
{
|
|
719
719
|
}
|
|
720
720
|
|
|
@@ -730,11 +730,11 @@ public:
|
|
|
730
730
|
/*
|
|
731
731
|
* Clone object node for dummy objects.
|
|
732
732
|
*/
|
|
733
|
-
class
|
|
733
|
+
class CloneDummyObjVar: public DummyObjVar
|
|
734
734
|
{
|
|
735
735
|
public:
|
|
736
736
|
//@{ Methods to support type inquiry through isa, cast, and dyn_cast:
|
|
737
|
-
static inline bool classof(const
|
|
737
|
+
static inline bool classof(const CloneDummyObjVar *)
|
|
738
738
|
{
|
|
739
739
|
return true;
|
|
740
740
|
}
|
|
@@ -749,15 +749,15 @@ public:
|
|
|
749
749
|
//@}
|
|
750
750
|
|
|
751
751
|
/// Constructor
|
|
752
|
-
|
|
753
|
-
:
|
|
752
|
+
CloneDummyObjVar(NodeID i, const MemObj* m, PNODEK ty = CloneDummyObjNode)
|
|
753
|
+
: DummyObjVar(i, m, ty)
|
|
754
754
|
{
|
|
755
755
|
}
|
|
756
756
|
|
|
757
757
|
/// Return name of this node
|
|
758
758
|
inline const std::string getValueName() const
|
|
759
759
|
{
|
|
760
|
-
return "clone of " +
|
|
760
|
+
return "clone of " + ObjVar::getValueName();
|
|
761
761
|
}
|
|
762
762
|
|
|
763
763
|
virtual const std::string toString() const;
|
|
@@ -766,11 +766,11 @@ public:
|
|
|
766
766
|
/*
|
|
767
767
|
* Clone object for GEP objects.
|
|
768
768
|
*/
|
|
769
|
-
class
|
|
769
|
+
class CloneGepObjVar : public GepObjPN
|
|
770
770
|
{
|
|
771
771
|
public:
|
|
772
772
|
//@{ Methods to support type inquiry through isa, cast, and dyn_cast:
|
|
773
|
-
static inline bool classof(const
|
|
773
|
+
static inline bool classof(const CloneGepObjVar *)
|
|
774
774
|
{
|
|
775
775
|
return true;
|
|
776
776
|
}
|
|
@@ -785,7 +785,7 @@ public:
|
|
|
785
785
|
//@}
|
|
786
786
|
|
|
787
787
|
/// Constructor
|
|
788
|
-
|
|
788
|
+
CloneGepObjVar(const MemObj* mem, NodeID i, const LocationSet& l, PNODEK ty = CloneGepObjNode) :
|
|
789
789
|
GepObjPN(mem, i, l, ty)
|
|
790
790
|
{
|
|
791
791
|
}
|
|
@@ -802,11 +802,11 @@ public:
|
|
|
802
802
|
/*
|
|
803
803
|
* Clone object for FI objects.
|
|
804
804
|
*/
|
|
805
|
-
class
|
|
805
|
+
class CloneFIObjVar : public FIObjVar
|
|
806
806
|
{
|
|
807
807
|
public:
|
|
808
808
|
//@{ Methods to support type inquiry through isa, cast, and dyn_cast:
|
|
809
|
-
static inline bool classof(const
|
|
809
|
+
static inline bool classof(const CloneFIObjVar *)
|
|
810
810
|
{
|
|
811
811
|
return true;
|
|
812
812
|
}
|
|
@@ -821,15 +821,15 @@ public:
|
|
|
821
821
|
//@}
|
|
822
822
|
|
|
823
823
|
/// Constructor
|
|
824
|
-
|
|
825
|
-
|
|
824
|
+
CloneFIObjVar(const Value* val, NodeID i, const MemObj* mem, PNODEK ty = CloneFIObjNode) :
|
|
825
|
+
FIObjVar(val, i, mem, ty)
|
|
826
826
|
{
|
|
827
827
|
}
|
|
828
828
|
|
|
829
829
|
/// Return name of this node
|
|
830
830
|
inline const std::string getValueName() const
|
|
831
831
|
{
|
|
832
|
-
return "clone (FI) of " +
|
|
832
|
+
return "clone (FI) of " + FIObjVar::getValueName();
|
|
833
833
|
}
|
|
834
834
|
|
|
835
835
|
virtual const std::string toString() const;
|