svf-tools 1.0.619 → 1.0.621
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/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/Andersen_8h_source.html +4 -3
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +9 -4
- package/SVF-doxygen/html/html/CFLAlias_8h.html +4 -0
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +19 -10
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CFLBase_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLDataBuilder_8h.html +96 -0
- package/SVF-doxygen/html/html/CFLDataBuilder_8h_source.html +99 -0
- package/SVF-doxygen/html/html/CFLData_8h.html +106 -0
- package/SVF-doxygen/html/html/CFLData_8h_source.html +136 -0
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/CFLSolver_8h.html +4 -0
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +22 -16
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CommandLine_8h.html +129 -0
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +132 -0
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +20 -19
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/GraphWriter_8h_source.html +2 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +21 -20
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +17 -17
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/Options_8cpp.html +1 -0
- package/SVF-doxygen/html/html/Options_8cpp_source.html +124 -119
- package/SVF-doxygen/html/html/Options_8h.html +1 -1
- package/SVF-doxygen/html/html/Options_8h_source.html +125 -120
- package/SVF-doxygen/html/html/PCG_8cpp.html +2 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -12
- package/SVF-doxygen/html/html/PCG_8h_source.html +12 -12
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -4
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFType_8h.html +2 -2
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +10 -9
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +4 -4
- package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/annotated.html +363 -353
- package/SVF-doxygen/html/html/cfl_8cpp.html +3 -85
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +3 -5
- package/SVF-doxygen/html/html/classOption-members.html +99 -0
- package/SVF-doxygen/html/html/classOption.html +567 -0
- package/SVF-doxygen/html/html/classOption.png +0 -0
- package/SVF-doxygen/html/html/classOptionBase-members.html +95 -0
- package/SVF-doxygen/html/html/classOptionBase.html +823 -0
- package/SVF-doxygen/html/html/classOptionBase.png +0 -0
- package/SVF-doxygen/html/html/classOptionMap-members.html +97 -0
- package/SVF-doxygen/html/html/classOptionMap.html +428 -0
- package/SVF-doxygen/html/html/classOptionMap.png +0 -0
- package/SVF-doxygen/html/html/classOptionMultiple-members.html +97 -0
- package/SVF-doxygen/html/html/classOptionMultiple.html +460 -0
- package/SVF-doxygen/html/html/classOptionMultiple.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +16 -15
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -6
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +33 -30
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +9 -8
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLData-members.html +110 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +1126 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder-members.html +88 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder.html +380 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +48 -39
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +72 -72
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +36 -35
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +22 -8
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +3 -2
- package/SVF-doxygen/html/html/classSVF_1_1HybridData-members.html +89 -0
- package/SVF-doxygen/html/html/classSVF_1_1HybridData.html +449 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +73 -72
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +121 -120
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +641 -615
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +281 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +828 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +98 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +245 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +9 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +27 -26
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +6 -6
- package/SVF-doxygen/html/html/classes.html +110 -108
- package/SVF-doxygen/html/html/dda_8cpp.html +51 -248
- package/SVF-doxygen/html/html/dda_8cpp_source.html +9 -10
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +4 -0
- package/SVF-doxygen/html/html/files.html +27 -24
- package/SVF-doxygen/html/html/functions.html +7 -1
- package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_a.html +45 -21
- package/SVF-doxygen/html/html/functions_b.html +15 -7
- package/SVF-doxygen/html/html/functions_c.html +72 -49
- package/SVF-doxygen/html/html/functions_d.html +25 -16
- package/SVF-doxygen/html/html/functions_e.html +11 -4
- package/SVF-doxygen/html/html/functions_f.html +19 -16
- package/SVF-doxygen/html/html/functions_func.html +35 -11
- package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_func_b.html +11 -3
- package/SVF-doxygen/html/html/functions_func_c.html +55 -34
- package/SVF-doxygen/html/html/functions_func_e.html +5 -1
- package/SVF-doxygen/html/html/functions_func_f.html +4 -1
- package/SVF-doxygen/html/html/functions_func_g.html +26 -7
- package/SVF-doxygen/html/html/functions_func_h.html +10 -3
- package/SVF-doxygen/html/html/functions_func_i.html +25 -10
- package/SVF-doxygen/html/html/functions_func_m.html +3 -2
- package/SVF-doxygen/html/html/functions_func_n.html +4 -1
- package/SVF-doxygen/html/html/functions_func_o.html +23 -6
- package/SVF-doxygen/html/html/functions_func_p.html +15 -3
- package/SVF-doxygen/html/html/functions_func_s.html +20 -19
- package/SVF-doxygen/html/html/functions_func_t.html +3 -0
- package/SVF-doxygen/html/html/functions_func_u.html +3 -0
- package/SVF-doxygen/html/html/functions_g.html +28 -9
- package/SVF-doxygen/html/html/functions_h.html +13 -6
- package/SVF-doxygen/html/html/functions_i.html +44 -20
- package/SVF-doxygen/html/html/functions_k.html +1 -1
- package/SVF-doxygen/html/html/functions_l.html +4 -4
- package/SVF-doxygen/html/html/functions_m.html +14 -13
- package/SVF-doxygen/html/html/functions_n.html +9 -5
- package/SVF-doxygen/html/html/functions_o.html +48 -25
- package/SVF-doxygen/html/html/functions_p.html +65 -34
- package/SVF-doxygen/html/html/functions_r.html +7 -9
- package/SVF-doxygen/html/html/functions_s.html +34 -32
- package/SVF-doxygen/html/html/functions_t.html +17 -8
- package/SVF-doxygen/html/html/functions_type_c.html +2 -1
- package/SVF-doxygen/html/html/functions_type_d.html +3 -0
- package/SVF-doxygen/html/html/functions_type_i.html +2 -1
- package/SVF-doxygen/html/html/functions_type_o.html +7 -0
- package/SVF-doxygen/html/html/functions_type_p.html +6 -0
- package/SVF-doxygen/html/html/functions_type_t.html +3 -0
- package/SVF-doxygen/html/html/functions_u.html +6 -3
- package/SVF-doxygen/html/html/functions_v.html +7 -5
- package/SVF-doxygen/html/html/functions_vars.html +7 -1
- package/SVF-doxygen/html/html/functions_vars_a.html +7 -7
- package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_c.html +15 -12
- package/SVF-doxygen/html/html/functions_vars_d.html +21 -15
- package/SVF-doxygen/html/html/functions_vars_e.html +5 -2
- package/SVF-doxygen/html/html/functions_vars_f.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_h.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +14 -6
- package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_l.html +4 -4
- package/SVF-doxygen/html/html/functions_vars_m.html +11 -11
- package/SVF-doxygen/html/html/functions_vars_n.html +3 -2
- package/SVF-doxygen/html/html/functions_vars_o.html +5 -2
- package/SVF-doxygen/html/html/functions_vars_p.html +34 -21
- package/SVF-doxygen/html/html/functions_vars_r.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_s.html +13 -10
- package/SVF-doxygen/html/html/functions_vars_t.html +7 -4
- package/SVF-doxygen/html/html/functions_vars_u.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_v.html +6 -4
- package/SVF-doxygen/html/html/functions_vars_w.html +3 -3
- package/SVF-doxygen/html/html/functions_w.html +11 -7
- package/SVF-doxygen/html/html/globals_d.html +4 -4
- package/SVF-doxygen/html/html/globals_e.html +6 -6
- package/SVF-doxygen/html/html/globals_f.html +2 -2
- package/SVF-doxygen/html/html/globals_func.html +6 -58
- package/SVF-doxygen/html/html/globals_i.html +4 -12
- package/SVF-doxygen/html/html/globals_l.html +2 -2
- package/SVF-doxygen/html/html/globals_r.html +4 -4
- package/SVF-doxygen/html/html/globals_s.html +0 -4
- package/SVF-doxygen/html/html/globals_type.html +3 -0
- package/SVF-doxygen/html/html/globals_u.html +3 -0
- package/SVF-doxygen/html/html/globals_vars.html +43 -12
- package/SVF-doxygen/html/html/hierarchy.html +517 -496
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/menudata.js +1 -2
- package/SVF-doxygen/html/html/mta_8cpp.html +4 -47
- package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/namespaceSVF.html +29 -0
- package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +3 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_l.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_type_l.html +3 -0
- package/SVF-doxygen/html/html/saber_8cpp.html +38 -136
- package/SVF-doxygen/html/html/saber_8cpp_source.html +8 -7
- package/SVF-doxygen/html/html/search/all_0.js +2 -1
- package/SVF-doxygen/html/html/search/all_1.js +15 -8
- package/SVF-doxygen/html/html/search/all_10.js +33 -25
- package/SVF-doxygen/html/html/search/all_11.js +9 -9
- package/SVF-doxygen/html/html/search/all_12.js +22 -22
- package/SVF-doxygen/html/html/search/all_13.js +14 -11
- package/SVF-doxygen/html/html/search/all_14.js +5 -4
- package/SVF-doxygen/html/html/search/all_15.js +5 -5
- package/SVF-doxygen/html/html/search/all_16.js +4 -4
- package/SVF-doxygen/html/html/search/all_19.js +6 -0
- package/SVF-doxygen/html/html/search/all_2.js +5 -3
- package/SVF-doxygen/html/html/search/all_3.js +25 -18
- package/SVF-doxygen/html/html/search/all_4.js +20 -18
- package/SVF-doxygen/html/html/search/all_5.js +8 -6
- package/SVF-doxygen/html/html/search/all_6.js +9 -8
- package/SVF-doxygen/html/html/search/all_7.js +9 -3
- package/SVF-doxygen/html/html/search/all_8.js +5 -3
- package/SVF-doxygen/html/html/search/all_9.js +16 -11
- package/SVF-doxygen/html/html/search/all_b.js +2 -2
- package/SVF-doxygen/html/html/search/all_c.js +7 -6
- package/SVF-doxygen/html/html/search/all_d.js +13 -13
- package/SVF-doxygen/html/html/search/all_e.js +4 -3
- package/SVF-doxygen/html/html/search/all_f.js +24 -6
- package/SVF-doxygen/html/html/search/classes_10.js +1 -0
- package/SVF-doxygen/html/html/search/classes_2.js +2 -0
- package/SVF-doxygen/html/html/search/classes_7.js +2 -1
- package/SVF-doxygen/html/html/search/classes_c.js +15 -0
- package/SVF-doxygen/html/html/search/classes_d.js +2 -0
- package/SVF-doxygen/html/html/search/files_2.js +3 -0
- package/SVF-doxygen/html/html/search/functions_0.js +8 -1
- package/SVF-doxygen/html/html/search/functions_1.js +4 -2
- package/SVF-doxygen/html/html/search/functions_10.js +0 -2
- package/SVF-doxygen/html/html/search/functions_11.js +2 -3
- package/SVF-doxygen/html/html/search/functions_12.js +1 -0
- package/SVF-doxygen/html/html/search/functions_13.js +1 -0
- package/SVF-doxygen/html/html/search/functions_17.js +6 -0
- package/SVF-doxygen/html/html/search/functions_2.js +5 -1
- package/SVF-doxygen/html/html/search/functions_3.js +0 -2
- package/SVF-doxygen/html/html/search/functions_4.js +2 -4
- package/SVF-doxygen/html/html/search/functions_5.js +2 -1
- package/SVF-doxygen/html/html/search/functions_6.js +7 -1
- package/SVF-doxygen/html/html/search/functions_7.js +4 -2
- package/SVF-doxygen/html/html/search/functions_8.js +6 -3
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_c.js +1 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -0
- package/SVF-doxygen/html/html/search/functions_e.js +7 -3
- package/SVF-doxygen/html/html/search/functions_f.js +3 -0
- package/SVF-doxygen/html/html/search/typedefs_11.js +2 -1
- package/SVF-doxygen/html/html/search/typedefs_12.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_3.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_a.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_d.js +2 -0
- package/SVF-doxygen/html/html/search/typedefs_e.js +2 -0
- package/SVF-doxygen/html/html/search/variables_0.js +2 -1
- package/SVF-doxygen/html/html/search/variables_1.js +7 -7
- package/SVF-doxygen/html/html/search/variables_10.js +25 -21
- package/SVF-doxygen/html/html/search/variables_11.js +7 -5
- package/SVF-doxygen/html/html/search/variables_12.js +11 -10
- package/SVF-doxygen/html/html/search/variables_13.js +9 -8
- package/SVF-doxygen/html/html/search/variables_14.js +3 -3
- package/SVF-doxygen/html/html/search/variables_15.js +4 -4
- package/SVF-doxygen/html/html/search/variables_16.js +3 -3
- package/SVF-doxygen/html/html/search/variables_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +13 -12
- package/SVF-doxygen/html/html/search/variables_4.js +19 -15
- package/SVF-doxygen/html/html/search/variables_5.js +6 -2
- package/SVF-doxygen/html/html/search/variables_6.js +7 -6
- package/SVF-doxygen/html/html/search/variables_7.js +2 -2
- package/SVF-doxygen/html/html/search/variables_8.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +9 -7
- package/SVF-doxygen/html/html/search/variables_b.js +1 -1
- package/SVF-doxygen/html/html/search/variables_c.js +5 -4
- package/SVF-doxygen/html/html/search/variables_d.js +11 -11
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- package/SVF-doxygen/html/html/search/variables_f.js +3 -2
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
- package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode-members.html +86 -0
- package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode.html +255 -0
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +12 -55
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp.html +4 -47
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +4 -4
- package/include/CFL/CFLAlias.h +34 -0
- package/include/CFL/CFLData.h +316 -0
- package/include/CFL/CFLDataBuilder.h +91 -0
- package/include/CFL/CFLSolver.h +21 -0
- package/include/Util/CommandLine.h +527 -0
- package/include/Util/Options.h +125 -124
- package/include/WPA/Andersen.h +5 -5
- package/lib/AbstractExecution/SVFIR2ItvExeState.cpp +2 -2
- package/lib/CFL/CFLAlias.cpp +40 -4
- package/lib/CFL/CFLBase.cpp +4 -4
- package/lib/CFL/CFLGraphBuilder.cpp +2 -2
- package/lib/CFL/CFLVF.cpp +5 -5
- package/lib/DDA/ContextDDA.cpp +1 -1
- package/lib/DDA/DDAPass.cpp +14 -13
- package/lib/DDA/FlowDDA.cpp +1 -1
- package/lib/Graphs/ConsG.cpp +10 -10
- package/lib/Graphs/ICFG.cpp +1 -1
- package/lib/Graphs/IRGraph.cpp +2 -2
- package/lib/Graphs/SVFG.cpp +5 -5
- package/lib/Graphs/SVFGOPT.cpp +5 -5
- package/lib/Graphs/VFG.cpp +1 -1
- package/lib/MSSA/MemRegion.cpp +2 -2
- package/lib/MSSA/MemSSA.cpp +4 -4
- package/lib/MSSA/SVFGBuilder.cpp +4 -4
- package/lib/MTA/FSMPTA.cpp +13 -13
- package/lib/MTA/MHP.cpp +1 -1
- package/lib/MTA/MTA.cpp +2 -2
- package/lib/MTA/MTAStat.cpp +1 -1
- package/lib/MTA/PCG.cpp +8 -2
- package/lib/MTA/TCT.cpp +2 -2
- package/lib/MemoryModel/PointerAnalysis.cpp +13 -13
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +13 -13
- package/lib/MemoryModel/PointsTo.cpp +1 -1
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/LeakChecker.cpp +1 -1
- package/lib/SABER/SaberCondAllocator.cpp +1 -1
- package/lib/SABER/SrcSnkDDA.cpp +5 -5
- package/lib/SVF-LLVM/CHGBuilder.cpp +1 -1
- package/lib/SVF-LLVM/DCHG.cpp +1 -1
- package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +2 -2
- package/lib/SVF-LLVM/LLVMModule.cpp +10 -4
- package/lib/SVF-LLVM/SVFIRBuilder.cpp +8 -8
- package/lib/SVF-LLVM/SymbolTableBuilder.cpp +5 -5
- package/lib/SVFIR/SVFIR.cpp +4 -4
- package/lib/SVFIR/SVFStatements.cpp +16 -16
- package/lib/SVFIR/SVFVariables.cpp +5 -5
- package/lib/SVFIR/SymbolTableInfo.cpp +6 -6
- package/lib/Util/NodeIDAllocator.cpp +9 -9
- package/lib/Util/Options.cpp +431 -412
- package/lib/Util/SVFStat.cpp +5 -5
- package/lib/Util/SVFUtil.cpp +1 -1
- package/lib/Util/Z3Expr.cpp +2 -2
- package/lib/WPA/Andersen.cpp +13 -13
- package/lib/WPA/AndersenSCD.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +8 -8
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
- package/lib/WPA/WPAPass.cpp +10 -9
- package/package.json +1 -1
- package/tools/CFL/cfl.cpp +8 -14
- package/tools/DDA/dda.cpp +39 -29
- package/tools/Example/svf-ex.cpp +5 -8
- package/tools/MTA/LockResultValidator.cpp +2 -2
- package/tools/MTA/MTAAnnotator.cpp +5 -5
- package/tools/MTA/MTAResultValidator.cpp +8 -8
- package/tools/MTA/mta.cpp +5 -8
- package/tools/SABER/saber.cpp +23 -17
- package/tools/WPA/wpa.cpp +6 -9
package/lib/DDA/DDAPass.cpp
CHANGED
|
@@ -62,7 +62,8 @@ void DDAPass::runOnModule(SVFIR* pag)
|
|
|
62
62
|
for (u32_t i = PointerAnalysis::FlowS_DDA;
|
|
63
63
|
i < PointerAnalysis::Default_PTA; i++)
|
|
64
64
|
{
|
|
65
|
-
|
|
65
|
+
PointerAnalysis::PTATY iPtTy = static_cast<PointerAnalysis::PTATY>(i);
|
|
66
|
+
if (Options::DDASelected(iPtTy))
|
|
66
67
|
runPointerAnalysis(pag, i);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
@@ -71,14 +72,14 @@ void DDAPass::runOnModule(SVFIR* pag)
|
|
|
71
72
|
void DDAPass::selectClient(SVFModule* module)
|
|
72
73
|
{
|
|
73
74
|
|
|
74
|
-
if (!Options::UserInputQuery.empty())
|
|
75
|
+
if (!Options::UserInputQuery().empty())
|
|
75
76
|
{
|
|
76
77
|
/// solve function pointer
|
|
77
|
-
if (Options::UserInputQuery == "funptr")
|
|
78
|
+
if (Options::UserInputQuery() == "funptr")
|
|
78
79
|
{
|
|
79
80
|
_client = new FunptrDDAClient(module);
|
|
80
81
|
}
|
|
81
|
-
else if (Options::UserInputQuery == "alias")
|
|
82
|
+
else if (Options::UserInputQuery() == "alias")
|
|
82
83
|
{
|
|
83
84
|
_client = new AliasDDAClient(module);
|
|
84
85
|
}
|
|
@@ -86,10 +87,10 @@ void DDAPass::selectClient(SVFModule* module)
|
|
|
86
87
|
else
|
|
87
88
|
{
|
|
88
89
|
_client = new DDAClient(module);
|
|
89
|
-
if (Options::UserInputQuery != "all")
|
|
90
|
+
if (Options::UserInputQuery() != "all")
|
|
90
91
|
{
|
|
91
92
|
u32_t buf; // Have a buffer
|
|
92
|
-
stringstream ss(Options::UserInputQuery); // Insert the user input string into a stream
|
|
93
|
+
stringstream ss(Options::UserInputQuery()); // Insert the user input string into a stream
|
|
93
94
|
while (ss >> buf)
|
|
94
95
|
_client->setQuery(buf);
|
|
95
96
|
}
|
|
@@ -107,8 +108,8 @@ void DDAPass::selectClient(SVFModule* module)
|
|
|
107
108
|
void DDAPass::runPointerAnalysis(SVFIR* pag, u32_t kind)
|
|
108
109
|
{
|
|
109
110
|
|
|
110
|
-
ContextCond::setMaxPathLen(Options::MaxPathLen);
|
|
111
|
-
ContextCond::setMaxCxtLen(Options::MaxContextLen);
|
|
111
|
+
ContextCond::setMaxPathLen(Options::MaxPathLen());
|
|
112
|
+
ContextCond::setMaxCxtLen(Options::MaxContextLen());
|
|
112
113
|
|
|
113
114
|
/// Initialize pointer analysis.
|
|
114
115
|
switch (kind)
|
|
@@ -128,7 +129,7 @@ void DDAPass::runPointerAnalysis(SVFIR* pag, u32_t kind)
|
|
|
128
129
|
break;
|
|
129
130
|
}
|
|
130
131
|
|
|
131
|
-
if(Options::WPANum)
|
|
132
|
+
if(Options::WPANum())
|
|
132
133
|
{
|
|
133
134
|
_client->collectWPANum(pag->getModule());
|
|
134
135
|
}
|
|
@@ -140,13 +141,13 @@ void DDAPass::runPointerAnalysis(SVFIR* pag, u32_t kind)
|
|
|
140
141
|
_client->answerQueries(_pta.get());
|
|
141
142
|
///finalize
|
|
142
143
|
_pta->finalize();
|
|
143
|
-
if(Options::PrintCPts)
|
|
144
|
+
if(Options::PrintCPts())
|
|
144
145
|
_pta->dumpCPts();
|
|
145
146
|
|
|
146
147
|
if (_pta->printStat())
|
|
147
148
|
_client->performStat(_pta.get());
|
|
148
149
|
|
|
149
|
-
if (Options::PrintQueryPts)
|
|
150
|
+
if (Options::PrintQueryPts())
|
|
150
151
|
printQueryPTS();
|
|
151
152
|
}
|
|
152
153
|
}
|
|
@@ -157,9 +158,9 @@ void DDAPass::runPointerAnalysis(SVFIR* pag, u32_t kind)
|
|
|
157
158
|
*/
|
|
158
159
|
void DDAPass::initCxtInsensitiveEdges(PointerAnalysis* pta, const SVFG* svfg,const SVFGSCC* svfgSCC, SVFGEdgeSet& insensitveEdges)
|
|
159
160
|
{
|
|
160
|
-
if(Options::InsenRecur)
|
|
161
|
+
if(Options::InsenRecur())
|
|
161
162
|
collectCxtInsenEdgeForRecur(pta,svfg,insensitveEdges);
|
|
162
|
-
else if(Options::InsenCycle)
|
|
163
|
+
else if(Options::InsenCycle())
|
|
163
164
|
collectCxtInsenEdgeForVFCycle(pta,svfg,svfgSCC,insensitveEdges);
|
|
164
165
|
}
|
|
165
166
|
|
package/lib/DDA/FlowDDA.cpp
CHANGED
|
@@ -43,7 +43,7 @@ using namespace SVFUtil;
|
|
|
43
43
|
void FlowDDA::computeDDAPts(NodeID id)
|
|
44
44
|
{
|
|
45
45
|
resetQuery();
|
|
46
|
-
LocDPItem::setMaxBudget(Options::FlowBudget);
|
|
46
|
+
LocDPItem::setMaxBudget(Options::FlowBudget());
|
|
47
47
|
|
|
48
48
|
PAGNode* node = getPAG()->getGNode(id);
|
|
49
49
|
LocDPItem dpm = getDPIm(node->getId(),getDefSVFGNode(node));
|
package/lib/Graphs/ConsG.cpp
CHANGED
|
@@ -632,7 +632,7 @@ void ConstraintGraph::view()
|
|
|
632
632
|
//@{
|
|
633
633
|
ConstraintNode::iterator ConstraintNode::directOutEdgeBegin()
|
|
634
634
|
{
|
|
635
|
-
if (Options::DetectPWC)
|
|
635
|
+
if (Options::DetectPWC())
|
|
636
636
|
return directOutEdges.begin();
|
|
637
637
|
else
|
|
638
638
|
return copyOutEdges.begin();
|
|
@@ -640,7 +640,7 @@ ConstraintNode::iterator ConstraintNode::directOutEdgeBegin()
|
|
|
640
640
|
|
|
641
641
|
ConstraintNode::iterator ConstraintNode::directOutEdgeEnd()
|
|
642
642
|
{
|
|
643
|
-
if (Options::DetectPWC)
|
|
643
|
+
if (Options::DetectPWC())
|
|
644
644
|
return directOutEdges.end();
|
|
645
645
|
else
|
|
646
646
|
return copyOutEdges.end();
|
|
@@ -648,7 +648,7 @@ ConstraintNode::iterator ConstraintNode::directOutEdgeEnd()
|
|
|
648
648
|
|
|
649
649
|
ConstraintNode::iterator ConstraintNode::directInEdgeBegin()
|
|
650
650
|
{
|
|
651
|
-
if (Options::DetectPWC)
|
|
651
|
+
if (Options::DetectPWC())
|
|
652
652
|
return directInEdges.begin();
|
|
653
653
|
else
|
|
654
654
|
return copyInEdges.begin();
|
|
@@ -656,7 +656,7 @@ ConstraintNode::iterator ConstraintNode::directInEdgeBegin()
|
|
|
656
656
|
|
|
657
657
|
ConstraintNode::iterator ConstraintNode::directInEdgeEnd()
|
|
658
658
|
{
|
|
659
|
-
if (Options::DetectPWC)
|
|
659
|
+
if (Options::DetectPWC())
|
|
660
660
|
return directInEdges.end();
|
|
661
661
|
else
|
|
662
662
|
return copyInEdges.end();
|
|
@@ -664,7 +664,7 @@ ConstraintNode::iterator ConstraintNode::directInEdgeEnd()
|
|
|
664
664
|
|
|
665
665
|
ConstraintNode::const_iterator ConstraintNode::directOutEdgeBegin() const
|
|
666
666
|
{
|
|
667
|
-
if (Options::DetectPWC)
|
|
667
|
+
if (Options::DetectPWC())
|
|
668
668
|
return directOutEdges.begin();
|
|
669
669
|
else
|
|
670
670
|
return copyOutEdges.begin();
|
|
@@ -672,7 +672,7 @@ ConstraintNode::const_iterator ConstraintNode::directOutEdgeBegin() const
|
|
|
672
672
|
|
|
673
673
|
ConstraintNode::const_iterator ConstraintNode::directOutEdgeEnd() const
|
|
674
674
|
{
|
|
675
|
-
if (Options::DetectPWC)
|
|
675
|
+
if (Options::DetectPWC())
|
|
676
676
|
return directOutEdges.end();
|
|
677
677
|
else
|
|
678
678
|
return copyOutEdges.end();
|
|
@@ -680,7 +680,7 @@ ConstraintNode::const_iterator ConstraintNode::directOutEdgeEnd() const
|
|
|
680
680
|
|
|
681
681
|
ConstraintNode::const_iterator ConstraintNode::directInEdgeBegin() const
|
|
682
682
|
{
|
|
683
|
-
if (Options::DetectPWC)
|
|
683
|
+
if (Options::DetectPWC())
|
|
684
684
|
return directInEdges.begin();
|
|
685
685
|
else
|
|
686
686
|
return copyInEdges.begin();
|
|
@@ -688,7 +688,7 @@ ConstraintNode::const_iterator ConstraintNode::directInEdgeBegin() const
|
|
|
688
688
|
|
|
689
689
|
ConstraintNode::const_iterator ConstraintNode::directInEdgeEnd() const
|
|
690
690
|
{
|
|
691
|
-
if (Options::DetectPWC)
|
|
691
|
+
if (Options::DetectPWC())
|
|
692
692
|
return directInEdges.end();
|
|
693
693
|
else
|
|
694
694
|
return copyInEdges.end();
|
|
@@ -723,7 +723,7 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
|
|
|
723
723
|
static bool isNodeHidden(NodeType *n)
|
|
724
724
|
{
|
|
725
725
|
#endif
|
|
726
|
-
if (Options::ShowHiddenNode) return false;
|
|
726
|
+
if (Options::ShowHiddenNode()) return false;
|
|
727
727
|
else return (n->getInEdges().empty() && n->getOutEdges().empty());
|
|
728
728
|
}
|
|
729
729
|
|
|
@@ -732,7 +732,7 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
|
|
|
732
732
|
static std::string getNodeLabel(NodeType *n, ConstraintGraph*)
|
|
733
733
|
{
|
|
734
734
|
PAGNode* node = SVFIR::getPAG()->getGNode(n->getId());
|
|
735
|
-
bool briefDisplay = Options::BriefConsCGDotGraph;
|
|
735
|
+
bool briefDisplay = Options::BriefConsCGDotGraph();
|
|
736
736
|
bool nameDisplay = true;
|
|
737
737
|
std::string str;
|
|
738
738
|
std::stringstream rawstr(str);
|
package/lib/Graphs/ICFG.cpp
CHANGED
package/lib/Graphs/IRGraph.cpp
CHANGED
|
@@ -144,7 +144,7 @@ struct DOTGraphTraits<IRGraph*> : public DefaultDOTGraphTraits
|
|
|
144
144
|
static bool isNodeHidden(SVFVar *node)
|
|
145
145
|
{
|
|
146
146
|
#endif
|
|
147
|
-
if (Options::ShowHiddenNode) return false;
|
|
147
|
+
if (Options::ShowHiddenNode()) return false;
|
|
148
148
|
else return node->isIsolatedNode();
|
|
149
149
|
}
|
|
150
150
|
|
|
@@ -289,4 +289,4 @@ struct DOTGraphTraits<IRGraph*> : public DefaultDOTGraphTraits
|
|
|
289
289
|
return "";
|
|
290
290
|
}
|
|
291
291
|
};
|
|
292
|
-
} // End namespace llvm
|
|
292
|
+
} // End namespace llvm
|
package/lib/Graphs/SVFG.cpp
CHANGED
|
@@ -226,9 +226,9 @@ void SVFG::buildSVFG()
|
|
|
226
226
|
DBOUT(DGENERAL, outs() << pasMsg("Build Sparse Value-Flow Graph \n"));
|
|
227
227
|
|
|
228
228
|
stat->startClk();
|
|
229
|
-
if (!Options::ReadSVFG.empty())
|
|
229
|
+
if (!Options::ReadSVFG().empty())
|
|
230
230
|
{
|
|
231
|
-
readFile(Options::ReadSVFG);
|
|
231
|
+
readFile(Options::ReadSVFG());
|
|
232
232
|
}
|
|
233
233
|
else
|
|
234
234
|
{
|
|
@@ -240,8 +240,8 @@ void SVFG::buildSVFG()
|
|
|
240
240
|
stat->indVFEdgeStart();
|
|
241
241
|
connectIndirectSVFGEdges();
|
|
242
242
|
stat->indVFEdgeEnd();
|
|
243
|
-
if (!Options::WriteSVFG.empty())
|
|
244
|
-
writeToFile(Options::WriteSVFG);
|
|
243
|
+
if (!Options::WriteSVFG().empty())
|
|
244
|
+
writeToFile(Options::WriteSVFG());
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
|
|
@@ -788,7 +788,7 @@ struct DOTGraphTraits<SVFG*> : public DOTGraphTraits<SVFIR*>
|
|
|
788
788
|
static bool isNodeHidden(SVFGNode *node)
|
|
789
789
|
{
|
|
790
790
|
#endif
|
|
791
|
-
if (Options::ShowHiddenNode) return false;
|
|
791
|
+
if (Options::ShowHiddenNode()) return false;
|
|
792
792
|
else return node->getInEdges().empty() && node->getOutEdges().empty();
|
|
793
793
|
}
|
|
794
794
|
|
package/lib/Graphs/SVFGOPT.cpp
CHANGED
|
@@ -48,12 +48,12 @@ void SVFGOPT::buildSVFG()
|
|
|
48
48
|
{
|
|
49
49
|
SVFG::buildSVFG();
|
|
50
50
|
|
|
51
|
-
if(Options::DumpVFG)
|
|
51
|
+
if(Options::DumpVFG())
|
|
52
52
|
dump("SVFG_before_opt");
|
|
53
53
|
|
|
54
54
|
DBOUT(DGENERAL, outs() << SVFUtil::pasMsg("\tSVFG Optimisation\n"));
|
|
55
55
|
|
|
56
|
-
keepActualOutFormalIn = Options::KeepAOFI;
|
|
56
|
+
keepActualOutFormalIn = Options::KeepAOFI();
|
|
57
57
|
|
|
58
58
|
stat->sfvgOptStart();
|
|
59
59
|
handleInterValueFlow();
|
|
@@ -67,7 +67,7 @@ void SVFGOPT::buildSVFG()
|
|
|
67
67
|
*/
|
|
68
68
|
SVFGEdge* SVFGOPT::addCallIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS& cpts)
|
|
69
69
|
{
|
|
70
|
-
if (Options::ContextInsensitive)
|
|
70
|
+
if (Options::ContextInsensitive())
|
|
71
71
|
return addIntraIndirectVFEdge(srcId, dstId, cpts);
|
|
72
72
|
else
|
|
73
73
|
return addCallIndirectVFEdge(srcId, dstId, cpts, csid);
|
|
@@ -78,7 +78,7 @@ SVFGEdge* SVFGOPT::addCallIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteI
|
|
|
78
78
|
*/
|
|
79
79
|
SVFGEdge* SVFGOPT::addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS& cpts)
|
|
80
80
|
{
|
|
81
|
-
if (Options::ContextInsensitive)
|
|
81
|
+
if (Options::ContextInsensitive())
|
|
82
82
|
return addIntraIndirectVFEdge(srcId, dstId, cpts);
|
|
83
83
|
else
|
|
84
84
|
return addRetIndirectVFEdge(srcId, dstId, cpts, csid);
|
|
@@ -371,7 +371,7 @@ bool SVFGOPT::canBeRemoved(const SVFGNode * node)
|
|
|
371
371
|
*/
|
|
372
372
|
void SVFGOPT::parseSelfCycleHandleOption()
|
|
373
373
|
{
|
|
374
|
-
std::string choice = (Options::SelfCycle
|
|
374
|
+
std::string choice = (Options::SelfCycle().empty()) ? "" : Options::SelfCycle();
|
|
375
375
|
if (choice.empty() || choice == KeepAllSelfCycle)
|
|
376
376
|
keepAllSelfCycle = true;
|
|
377
377
|
else if (choice == KeepContextSelfCycle)
|
package/lib/Graphs/VFG.cpp
CHANGED
|
@@ -835,7 +835,7 @@ void VFG::connectDirectVFGEdges()
|
|
|
835
835
|
}
|
|
836
836
|
|
|
837
837
|
/// connect direct value-flow edges (parameter passing) for thread fork/join
|
|
838
|
-
if(Options::EnableThreadCallGraph)
|
|
838
|
+
if(Options::EnableThreadCallGraph())
|
|
839
839
|
{
|
|
840
840
|
/// add fork edge
|
|
841
841
|
SVFStmt::SVFStmtSetTy& forks = getPAGEdgeSet(SVFStmt::ThreadFork);
|
package/lib/MSSA/MemRegion.cpp
CHANGED
|
@@ -178,7 +178,7 @@ void MRGenerator::collectModRefForLoadStore()
|
|
|
178
178
|
const SVFFunction& fun = **fi;
|
|
179
179
|
|
|
180
180
|
/// if this function does not have any caller, then we do not care its MSSA
|
|
181
|
-
if (Options::IgnoreDeadFun && fun.isUncalledFunction())
|
|
181
|
+
if (Options::IgnoreDeadFun() && fun.isUncalledFunction())
|
|
182
182
|
continue;
|
|
183
183
|
|
|
184
184
|
for (SVFFunction::const_iterator iter = fun.begin(), eiter = fun.end();
|
|
@@ -811,4 +811,4 @@ std::ostream& SVF::operator<<(std::ostream &o, const MRVer& mrver)
|
|
|
811
811
|
o << "MRVERID: " << mrver.getID() <<" MemRegion: " << mrver.getMR()->dumpStr() << " MRVERSION: " << mrver.getSSAVersion() << " MSSADef: " << mrver.getDef()->getType() << ", "
|
|
812
812
|
<< mrver.getDef()->getMR()->dumpStr() ;
|
|
813
813
|
return o;
|
|
814
|
-
}
|
|
814
|
+
}
|
package/lib/MSSA/MemSSA.cpp
CHANGED
|
@@ -49,11 +49,11 @@ MemSSA::MemSSA(BVDataPTAImpl* p, bool ptrOnlyMSSA)
|
|
|
49
49
|
assert((pta->getAnalysisTy()!=PointerAnalysis::Default_PTA)
|
|
50
50
|
&& "please specify a pointer analysis");
|
|
51
51
|
|
|
52
|
-
if (Options::MemPar == MemPartition::Distinct)
|
|
52
|
+
if (Options::MemPar() == MemPartition::Distinct)
|
|
53
53
|
mrGen = new DistinctMRG(pta, ptrOnlyMSSA);
|
|
54
|
-
else if (Options::MemPar == MemPartition::IntraDisjoint)
|
|
54
|
+
else if (Options::MemPar() == MemPartition::IntraDisjoint)
|
|
55
55
|
mrGen = new IntraDisjointMRG(pta, ptrOnlyMSSA);
|
|
56
|
-
else if (Options::MemPar == MemPartition::InterDisjoint)
|
|
56
|
+
else if (Options::MemPar() == MemPartition::InterDisjoint)
|
|
57
57
|
mrGen = new InterDisjointMRG(pta, ptrOnlyMSSA);
|
|
58
58
|
else
|
|
59
59
|
assert(false && "unrecognised memory partition strategy");
|
|
@@ -585,7 +585,7 @@ void MemSSA::dumpMSSA(OutStream& Out)
|
|
|
585
585
|
fit != efit; ++fit)
|
|
586
586
|
{
|
|
587
587
|
const SVFFunction* fun = *fit;
|
|
588
|
-
if(Options::MSSAFun!="" && Options::MSSAFun!=fun->getName())
|
|
588
|
+
if(Options::MSSAFun()!="" && Options::MSSAFun()!=fun->getName())
|
|
589
589
|
continue;
|
|
590
590
|
|
|
591
591
|
Out << "==========FUNCTION: " << fun->getName() << "==========\n";
|
package/lib/MSSA/SVFGBuilder.cpp
CHANGED
|
@@ -40,7 +40,7 @@ using namespace SVFUtil;
|
|
|
40
40
|
|
|
41
41
|
SVFG* SVFGBuilder::buildPTROnlySVFG(BVDataPTAImpl* pta)
|
|
42
42
|
{
|
|
43
|
-
if(Options::OPTSVFG)
|
|
43
|
+
if(Options::OPTSVFG())
|
|
44
44
|
return build(pta, VFG::PTRONLYSVFG_OPT);
|
|
45
45
|
else
|
|
46
46
|
return build(pta, VFG::PTRONLYSVFG);
|
|
@@ -74,13 +74,13 @@ SVFG* SVFGBuilder::build(BVDataPTAImpl* pta, VFG::VFGK kind)
|
|
|
74
74
|
buildSVFG();
|
|
75
75
|
|
|
76
76
|
/// Update call graph using pre-analysis results
|
|
77
|
-
if(Options::SVFGWithIndirectCall || SVFGWithIndCall)
|
|
77
|
+
if(Options::SVFGWithIndirectCall() || SVFGWithIndCall)
|
|
78
78
|
svfg->updateCallGraph(pta);
|
|
79
79
|
|
|
80
80
|
if(svfg->getMSSA()->getPTA()->printStat())
|
|
81
81
|
svfg->performStat();
|
|
82
82
|
|
|
83
|
-
if(Options::DumpVFG)
|
|
83
|
+
if(Options::DumpVFG())
|
|
84
84
|
svfg->dump("svfg_final");
|
|
85
85
|
|
|
86
86
|
return svfg.get();
|
|
@@ -114,7 +114,7 @@ std::unique_ptr<MemSSA> SVFGBuilder::buildMSSA(BVDataPTAImpl* pta, bool ptrOnlyM
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
mssa->performStat();
|
|
117
|
-
if (Options::DumpMSSA)
|
|
117
|
+
if (Options::DumpMSSA())
|
|
118
118
|
{
|
|
119
119
|
mssa->dumpMSSA();
|
|
120
120
|
}
|
package/lib/MTA/FSMPTA.cpp
CHANGED
|
@@ -48,7 +48,7 @@ void MTASVFGBuilder::buildSVFG()
|
|
|
48
48
|
{
|
|
49
49
|
MemSSA* mssa = svfg->getMSSA();
|
|
50
50
|
svfg->buildSVFG();
|
|
51
|
-
if (ADDEDGE_NOEDGE != Options::AddModelFlag)
|
|
51
|
+
if (ADDEDGE_NOEDGE != Options::AddModelFlag())
|
|
52
52
|
{
|
|
53
53
|
DBOUT(DGENERAL, outs() << SVFUtil::pasMsg("FSMPTA adding edge\n"));
|
|
54
54
|
DBOUT(DMTA, outs() << SVFUtil::pasMsg("FSMPTA adding edge\n"));
|
|
@@ -486,10 +486,10 @@ void MTASVFGBuilder::handleStoreLoad(const StmtSVFGNode* n1,const StmtSVFGNode*
|
|
|
486
486
|
const SVFInstruction* i1 = n1->getInst();
|
|
487
487
|
const SVFInstruction* i2 = n2->getInst();
|
|
488
488
|
/// MHP
|
|
489
|
-
if (ADDEDGE_NOMHP!=Options::AddModelFlag && !mhp->mayHappenInParallel(i1, i2))
|
|
489
|
+
if (ADDEDGE_NOMHP!=Options::AddModelFlag() && !mhp->mayHappenInParallel(i1, i2))
|
|
490
490
|
return;
|
|
491
491
|
/// Alias
|
|
492
|
-
if (ADDEDGE_NOALIAS!=Options::AddModelFlag && !pta->alias(n1->getPAGDstNodeID(), n2->getPAGSrcNodeID()))
|
|
492
|
+
if (ADDEDGE_NOALIAS!=Options::AddModelFlag() && !pta->alias(n1->getPAGDstNodeID(), n2->getPAGSrcNodeID()))
|
|
493
493
|
return;
|
|
494
494
|
|
|
495
495
|
|
|
@@ -502,7 +502,7 @@ void MTASVFGBuilder::handleStoreLoad(const StmtSVFGNode* n1,const StmtSVFGNode*
|
|
|
502
502
|
/// This constrait is too strong. All cxt lock under different cxt cannot be identified.
|
|
503
503
|
|
|
504
504
|
|
|
505
|
-
if (ADDEDGE_NOLOCK!=Options::AddModelFlag && lockana->isProtectedByCommonLock(i1, i2))
|
|
505
|
+
if (ADDEDGE_NOLOCK!=Options::AddModelFlag() && lockana->isProtectedByCommonLock(i1, i2))
|
|
506
506
|
{
|
|
507
507
|
if (isTailofSpan(n1) && isHeadofSpan(n2))
|
|
508
508
|
addTDEdges(n1->getId(), n2->getId(), pts);
|
|
@@ -520,17 +520,17 @@ void MTASVFGBuilder::handleStoreStore(const StmtSVFGNode* n1,const StmtSVFGNode*
|
|
|
520
520
|
const SVFInstruction* i1 = n1->getInst();
|
|
521
521
|
const SVFInstruction* i2 = n2->getInst();
|
|
522
522
|
/// MHP
|
|
523
|
-
if (ADDEDGE_NOMHP!=Options::AddModelFlag && !mhp->mayHappenInParallel(i1, i2))
|
|
523
|
+
if (ADDEDGE_NOMHP!=Options::AddModelFlag() && !mhp->mayHappenInParallel(i1, i2))
|
|
524
524
|
return;
|
|
525
525
|
/// Alias
|
|
526
|
-
if (ADDEDGE_NOALIAS!=Options::AddModelFlag && !pta->alias(n1->getPAGDstNodeID(), n2->getPAGDstNodeID()))
|
|
526
|
+
if (ADDEDGE_NOALIAS!=Options::AddModelFlag() && !pta->alias(n1->getPAGDstNodeID(), n2->getPAGDstNodeID()))
|
|
527
527
|
return;
|
|
528
528
|
|
|
529
529
|
PointsTo pts = pta->getPts(n1->getPAGDstNodeID());
|
|
530
530
|
pts &= pta->getPts(n2->getPAGDstNodeID());
|
|
531
531
|
|
|
532
532
|
/// Lock
|
|
533
|
-
if (ADDEDGE_NOLOCK!=Options::AddModelFlag && lockana->isProtectedByCommonLock(i1, i2))
|
|
533
|
+
if (ADDEDGE_NOLOCK!=Options::AddModelFlag() && lockana->isProtectedByCommonLock(i1, i2))
|
|
534
534
|
{
|
|
535
535
|
if (isTailofSpan(n1) && isHeadofSpan(n2))
|
|
536
536
|
addTDEdges(n1->getId(), n2->getId(), pts);
|
|
@@ -706,7 +706,7 @@ void MTASVFGBuilder::readPrecision()
|
|
|
706
706
|
void MTASVFGBuilder::connectMHPEdges(PointerAnalysis* pta)
|
|
707
707
|
{
|
|
708
708
|
PCG* pcg = new PCG(pta);
|
|
709
|
-
if ((ADDEDGE_NONSPARSE==Options::AddModelFlag) && Options::UsePCG)
|
|
709
|
+
if ((ADDEDGE_NONSPARSE==Options::AddModelFlag()) && Options::UsePCG())
|
|
710
710
|
{
|
|
711
711
|
pcg->analyze();
|
|
712
712
|
}
|
|
@@ -725,9 +725,9 @@ void MTASVFGBuilder::connectMHPEdges(PointerAnalysis* pta)
|
|
|
725
725
|
{
|
|
726
726
|
const StmtSVFGNode* n2 = SVFUtil::cast<StmtSVFGNode>(*it2);
|
|
727
727
|
const SVFInstruction* i2 = n2->getInst();
|
|
728
|
-
if (ADDEDGE_NONSPARSE==Options::AddModelFlag)
|
|
728
|
+
if (ADDEDGE_NONSPARSE==Options::AddModelFlag())
|
|
729
729
|
{
|
|
730
|
-
if (Options::UsePCG)
|
|
730
|
+
if (Options::UsePCG())
|
|
731
731
|
{
|
|
732
732
|
if (pcg->mayHappenInParallel(i1, i2) || mhp->mayHappenInParallel(i1, i2))
|
|
733
733
|
handleStoreLoadNonSparse(n1, n2, pta);
|
|
@@ -747,9 +747,9 @@ void MTASVFGBuilder::connectMHPEdges(PointerAnalysis* pta)
|
|
|
747
747
|
{
|
|
748
748
|
const StmtSVFGNode* n2 = SVFUtil::cast<StmtSVFGNode>(*it2);
|
|
749
749
|
const SVFInstruction* i2 = n2->getInst();
|
|
750
|
-
if (ADDEDGE_NONSPARSE == Options::AddModelFlag)
|
|
750
|
+
if (ADDEDGE_NONSPARSE == Options::AddModelFlag())
|
|
751
751
|
{
|
|
752
|
-
if (Options::UsePCG)
|
|
752
|
+
if (Options::UsePCG())
|
|
753
753
|
{
|
|
754
754
|
if(pcg->mayHappenInParallel(i1, i2) || mhp->mayHappenInParallel(i1, i2))
|
|
755
755
|
handleStoreStoreNonSparse(n1, n2, pta);
|
|
@@ -766,7 +766,7 @@ void MTASVFGBuilder::connectMHPEdges(PointerAnalysis* pta)
|
|
|
766
766
|
}
|
|
767
767
|
}
|
|
768
768
|
|
|
769
|
-
if(Options::ReadPrecisionTDEdge && ADDEDGE_NORP!=Options::AddModelFlag)
|
|
769
|
+
if(Options::ReadPrecisionTDEdge() && ADDEDGE_NORP!=Options::AddModelFlag())
|
|
770
770
|
{
|
|
771
771
|
DBOUT(DGENERAL,outs()<<"Read precision edge removing \n");
|
|
772
772
|
DBOUT(DMTA,outs()<<"Read precision edge removing \n");
|
package/lib/MTA/MHP.cpp
CHANGED
package/lib/MTA/MTA.cpp
CHANGED
|
@@ -67,12 +67,12 @@ bool MTA::runOnModule(SVFIR* pag)
|
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
/*
|
|
70
|
-
if (Options::AndersenAnno) {
|
|
70
|
+
if (Options::AndersenAnno()) {
|
|
71
71
|
pta = mhp->getTCT()->getPTA();
|
|
72
72
|
if (pta->printStat())
|
|
73
73
|
stat->performMHPPairStat(mhp,lsa);
|
|
74
74
|
AndersenWaveDiff::releaseAndersenWaveDiff();
|
|
75
|
-
} else if (Options::FSAnno) {
|
|
75
|
+
} else if (Options::FSAnno()) {
|
|
76
76
|
|
|
77
77
|
reportMemoryUsageKB("Mem before analysis");
|
|
78
78
|
DBOUT(DGENERAL, outs() << pasMsg("FSMPTA analysis\n"));
|
package/lib/MTA/MTAStat.cpp
CHANGED
package/lib/MTA/PCG.cpp
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
* Author: Yulei Sui, Peng Di
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
+
#include "Util/CommandLine.h"
|
|
30
31
|
#include "Util/Options.h"
|
|
31
32
|
#include "MTA/PCG.h"
|
|
32
33
|
#include "Util/SVFUtil.h"
|
|
@@ -39,7 +40,12 @@ using namespace SVFUtil;
|
|
|
39
40
|
* Whether two functions may happen in parallel
|
|
40
41
|
*/
|
|
41
42
|
|
|
42
|
-
//static
|
|
43
|
+
//static Option<bool> TDPrint(
|
|
44
|
+
// "print-td",
|
|
45
|
+
// true,
|
|
46
|
+
// "Print Thread Analysis Results"
|
|
47
|
+
//);
|
|
48
|
+
|
|
43
49
|
bool PCG::analyze()
|
|
44
50
|
{
|
|
45
51
|
|
|
@@ -53,7 +59,7 @@ bool PCG::analyze()
|
|
|
53
59
|
|
|
54
60
|
//interferenceAnalysis();
|
|
55
61
|
|
|
56
|
-
//if (Options::TDPrint) {
|
|
62
|
+
//if (Options::TDPrint()) {
|
|
57
63
|
//printResults();
|
|
58
64
|
//tdAPI->performAPIStat(mod);
|
|
59
65
|
//}
|
package/lib/MTA/TCT.cpp
CHANGED
|
@@ -429,7 +429,7 @@ void TCT::build()
|
|
|
429
429
|
|
|
430
430
|
collectMultiForkedThreads();
|
|
431
431
|
|
|
432
|
-
if (Options::TCTDotGraph)
|
|
432
|
+
if (Options::TCTDotGraph())
|
|
433
433
|
{
|
|
434
434
|
print();
|
|
435
435
|
dump("tct");
|
|
@@ -511,7 +511,7 @@ void TCT::dumpCxt(CallStrCxt& cxt)
|
|
|
511
511
|
*/
|
|
512
512
|
void TCT::dump(const std::string& filename)
|
|
513
513
|
{
|
|
514
|
-
if (Options::TCTDotGraph)
|
|
514
|
+
if (Options::TCTDotGraph())
|
|
515
515
|
GraphPrinter::WriteGraphToFile(outs(), filename, this);
|
|
516
516
|
}
|
|
517
517
|
|
|
@@ -70,10 +70,10 @@ PointerAnalysis::PointerAnalysis(SVFIR* p, PTATY ty, bool alias_check) :
|
|
|
70
70
|
svfMod(nullptr),ptaTy(ty),stat(nullptr),ptaCallGraph(nullptr),callGraphSCC(nullptr),icfg(nullptr),chgraph(nullptr),typeSystem(nullptr)
|
|
71
71
|
{
|
|
72
72
|
pag = p;
|
|
73
|
-
OnTheFlyIterBudgetForStat = Options::StatBudget;
|
|
74
|
-
print_stat = Options::PStat;
|
|
73
|
+
OnTheFlyIterBudgetForStat = Options::StatBudget();
|
|
74
|
+
print_stat = Options::PStat();
|
|
75
75
|
ptaImplTy = BaseImpl;
|
|
76
|
-
alias_validation = (alias_check && Options::EnableAliasCheck);
|
|
76
|
+
alias_validation = (alias_check && Options::EnableAliasCheck());
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
/*!
|
|
@@ -110,7 +110,7 @@ void PointerAnalysis::initialize()
|
|
|
110
110
|
chgraph = pag->getCHG();
|
|
111
111
|
|
|
112
112
|
/// initialise pta call graph for every pointer analysis instance
|
|
113
|
-
if(Options::EnableThreadCallGraph)
|
|
113
|
+
if(Options::EnableThreadCallGraph())
|
|
114
114
|
{
|
|
115
115
|
ThreadCallGraph* cg = new ThreadCallGraph();
|
|
116
116
|
ThreadCallGraphBuilder bd(cg, pag->getICFG());
|
|
@@ -125,7 +125,7 @@ void PointerAnalysis::initialize()
|
|
|
125
125
|
callGraphSCCDetection();
|
|
126
126
|
|
|
127
127
|
// dump callgraph
|
|
128
|
-
if (Options::CallGraphDotGraph)
|
|
128
|
+
if (Options::CallGraphDotGraph())
|
|
129
129
|
getPTACallGraph()->dump("callgraph_initial");
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -183,31 +183,31 @@ void PointerAnalysis::finalize()
|
|
|
183
183
|
dumpStat();
|
|
184
184
|
|
|
185
185
|
/// Dump results
|
|
186
|
-
if (Options::PTSPrint)
|
|
186
|
+
if (Options::PTSPrint())
|
|
187
187
|
{
|
|
188
188
|
dumpTopLevelPtsTo();
|
|
189
189
|
//dumpAllPts();
|
|
190
190
|
//dumpCPts();
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
if (Options::TypePrint)
|
|
193
|
+
if (Options::TypePrint())
|
|
194
194
|
dumpAllTypes();
|
|
195
195
|
|
|
196
|
-
if(Options::PTSAllPrint)
|
|
196
|
+
if(Options::PTSAllPrint())
|
|
197
197
|
dumpAllPts();
|
|
198
198
|
|
|
199
|
-
if (Options::FuncPointerPrint)
|
|
199
|
+
if (Options::FuncPointerPrint())
|
|
200
200
|
printIndCSTargets();
|
|
201
201
|
|
|
202
202
|
getPTACallGraph()->verifyCallGraph();
|
|
203
203
|
|
|
204
|
-
if (Options::CallGraphDotGraph)
|
|
204
|
+
if (Options::CallGraphDotGraph())
|
|
205
205
|
getPTACallGraph()->dump("callgraph_final");
|
|
206
206
|
|
|
207
207
|
if(!pag->isBuiltFromFile() && alias_validation)
|
|
208
208
|
validateTests();
|
|
209
209
|
|
|
210
|
-
if (!Options::UsePreCompFieldSensitive)
|
|
210
|
+
if (!Options::UsePreCompFieldSensitive())
|
|
211
211
|
resetObjFieldSensitive();
|
|
212
212
|
}
|
|
213
213
|
|
|
@@ -392,7 +392,7 @@ void PointerAnalysis::resolveIndCalls(const CallICFGNode* cs, const PointsTo& ta
|
|
|
392
392
|
ii != ie; ii++)
|
|
393
393
|
{
|
|
394
394
|
|
|
395
|
-
if(getNumOfResolvedIndCallEdge() >= Options::IndirectCallLimit)
|
|
395
|
+
if(getNumOfResolvedIndCallEdge() >= Options::IndirectCallLimit())
|
|
396
396
|
{
|
|
397
397
|
wrnMsg("Resolved Indirect Call Edges are Out-Of-Budget, please increase the limit");
|
|
398
398
|
return;
|
|
@@ -504,7 +504,7 @@ void PointerAnalysis::resolveCPPIndCalls(const CallICFGNode* cs, const PointsTo&
|
|
|
504
504
|
assert(SVFUtil::getSVFCallSite(cs->getCallSite()).isVirtualCall() && "not cpp virtual call");
|
|
505
505
|
|
|
506
506
|
VFunSet vfns;
|
|
507
|
-
if (Options::ConnectVCallOnCHA)
|
|
507
|
+
if (Options::ConnectVCallOnCHA())
|
|
508
508
|
getVFnsFromCHA(cs, vfns);
|
|
509
509
|
else
|
|
510
510
|
getVFnsFromPts(cs, target, vfns);
|