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
|
@@ -63,7 +63,8 @@ $(function() {
|
|
|
63
63
|
</div><!-- top -->
|
|
64
64
|
<div class="header">
|
|
65
65
|
<div class="summary">
|
|
66
|
-
<a href="#func-members">Functions</a>
|
|
66
|
+
<a href="#func-members">Functions</a> |
|
|
67
|
+
<a href="#var-members">Variables</a> </div>
|
|
67
68
|
<div class="headertitle">
|
|
68
69
|
<div class="title">saber.cpp File Reference</div> </div>
|
|
69
70
|
</div><!--header-->
|
|
@@ -73,6 +74,7 @@ $(function() {
|
|
|
73
74
|
<code>#include "<a class="el" href="LeakChecker_8h_source.html">SABER/LeakChecker.h</a>"</code><br />
|
|
74
75
|
<code>#include "<a class="el" href="FileChecker_8h_source.html">SABER/FileChecker.h</a>"</code><br />
|
|
75
76
|
<code>#include "<a class="el" href="DoubleFreeChecker_8h_source.html">SABER/DoubleFreeChecker.h</a>"</code><br />
|
|
77
|
+
<code>#include "<a class="el" href="CommandLine_8h_source.html">Util/CommandLine.h</a>"</code><br />
|
|
76
78
|
<code>#include "<a class="el" href="Options_8h_source.html">Util/Options.h</a>"</code><br />
|
|
77
79
|
<code>#include "<a class="el" href="Z3Expr_8h_source.html">Util/Z3Expr.h</a>"</code><br />
|
|
78
80
|
</div>
|
|
@@ -80,44 +82,36 @@ $(function() {
|
|
|
80
82
|
<table class="memberdecls">
|
|
81
83
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
82
84
|
Functions</h2></td></tr>
|
|
83
|
-
<tr class="memitem:a2d332c504284f0bc181289ee67479845"><td class="memItemLeft" align="right" valign="top">static llvm::cl::opt< <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a> (cl::Positional, llvm::cl::desc("<input bitcode>"), llvm::cl::init("-"))</td></tr>
|
|
84
|
-
<tr class="separator:a2d332c504284f0bc181289ee67479845"><td class="memSeparator" colspan="2"> </td></tr>
|
|
85
|
-
<tr class="memitem:a3bebf1fb890054c49ae16f9706fa38d2"><td class="memItemLeft" align="right" valign="top">static llvm::cl::opt< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a> ("leak", llvm::cl::init(<a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), llvm::cl::desc("Memory Leak Detection"))</td></tr>
|
|
86
|
-
<tr class="separator:a3bebf1fb890054c49ae16f9706fa38d2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
87
|
-
<tr class="memitem:ae054770c30aa9b9ef72d5bc84084b472"><td class="memItemLeft" align="right" valign="top">static llvm::cl::opt< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a> ("fileck", llvm::cl::init(<a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), llvm::cl::desc("File Open/Close Detection"))</td></tr>
|
|
88
|
-
<tr class="separator:ae054770c30aa9b9ef72d5bc84084b472"><td class="memSeparator" colspan="2"> </td></tr>
|
|
89
|
-
<tr class="memitem:ae783b2330e99490ef5d366605d1098cf"><td class="memItemLeft" align="right" valign="top">static llvm::cl::opt< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a> ("dfree", llvm::cl::init(<a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), llvm::cl::desc("Double Free Detection"))</td></tr>
|
|
90
|
-
<tr class="separator:ae783b2330e99490ef5d366605d1098cf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
91
85
|
<tr class="memitem:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
|
|
92
86
|
<tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2"> </td></tr>
|
|
87
|
+
</table><table class="memberdecls">
|
|
88
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
|
|
89
|
+
Variables</h2></td></tr>
|
|
90
|
+
<tr class="memitem:a789415bb7081a399af0d4218ead5e6a5"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classOption.html">Option</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#a789415bb7081a399af0d4218ead5e6a5">LEAKCHECKER</a> ("leak", "Memory Leak Detection", false)</td></tr>
|
|
91
|
+
<tr class="separator:a789415bb7081a399af0d4218ead5e6a5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
92
|
+
<tr class="memitem:a040433670c569ad3978a19fb1bf44d5b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classOption.html">Option</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#a040433670c569ad3978a19fb1bf44d5b">FILECHECKER</a> ("fileck", "File Open/Close Detection", false)</td></tr>
|
|
93
|
+
<tr class="separator:a040433670c569ad3978a19fb1bf44d5b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
94
|
+
<tr class="memitem:ab233df6b8c190aa2c26fa20bd1ac7c52"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classOption.html">Option</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#ab233df6b8c190aa2c26fa20bd1ac7c52">DFREECHECKER</a> ("dfree", "Double Free Detection", false)</td></tr>
|
|
95
|
+
<tr class="separator:ab233df6b8c190aa2c26fa20bd1ac7c52"><td class="memSeparator" colspan="2"> </td></tr>
|
|
93
96
|
</table>
|
|
94
97
|
<h2 class="groupheader">Function Documentation</h2>
|
|
95
|
-
<a id="
|
|
96
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
98
|
+
<a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
|
|
99
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">◆ </a></span>main()</h2>
|
|
97
100
|
|
|
98
101
|
<div class="memitem">
|
|
99
102
|
<div class="memproto">
|
|
100
|
-
<table class="mlabels">
|
|
101
|
-
<tr>
|
|
102
|
-
<td class="mlabels-left">
|
|
103
103
|
<table class="memname">
|
|
104
104
|
<tr>
|
|
105
|
-
<td class="memname">
|
|
105
|
+
<td class="memname">int main </td>
|
|
106
106
|
<td>(</td>
|
|
107
|
-
<td class="paramtype"
|
|
108
|
-
<td class="paramname">, </td>
|
|
109
|
-
</tr>
|
|
110
|
-
<tr>
|
|
111
|
-
<td class="paramkey"></td>
|
|
112
|
-
<td></td>
|
|
113
|
-
<td class="paramtype">llvm::cl::init(<a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>) </td>
|
|
114
|
-
<td class="paramname">, </td>
|
|
107
|
+
<td class="paramtype">int </td>
|
|
108
|
+
<td class="paramname"><em>argc</em>, </td>
|
|
115
109
|
</tr>
|
|
116
110
|
<tr>
|
|
117
111
|
<td class="paramkey"></td>
|
|
118
112
|
<td></td>
|
|
119
|
-
<td class="paramtype">
|
|
120
|
-
<td class="paramname"> </td>
|
|
113
|
+
<td class="paramtype">char ** </td>
|
|
114
|
+
<td class="paramname"><em>argv</em> </td>
|
|
121
115
|
</tr>
|
|
122
116
|
<tr>
|
|
123
117
|
<td></td>
|
|
@@ -125,17 +119,22 @@ Functions</h2></td></tr>
|
|
|
125
119
|
<td></td><td></td>
|
|
126
120
|
</tr>
|
|
127
121
|
</table>
|
|
128
|
-
</td>
|
|
129
|
-
<td class="mlabels-right">
|
|
130
|
-
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
131
|
-
</tr>
|
|
132
|
-
</table>
|
|
133
122
|
</div><div class="memdoc">
|
|
134
123
|
|
|
124
|
+
<p class="definition">Definition at line <a class="el" href="saber_8cpp_source.html#l00060">60</a> of file <a class="el" href="saber_8cpp_source.html">saber.cpp</a>.</p>
|
|
125
|
+
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  argc, argv, <span class="stringliteral">"Source-Sink Bug Detector"</span>, <span class="stringliteral">"[options] <input-bitcode...>"</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  );</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.build();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  std::unique_ptr<LeakChecker> saber;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a789415bb7081a399af0d4218ead5e6a5">LEAKCHECKER</a>())</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  saber = std::make_unique<LeakChecker>();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a040433670c569ad3978a19fb1bf44d5b">FILECHECKER</a>())</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  saber = std::make_unique<FileChecker>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ab233df6b8c190aa2c26fa20bd1ac7c52">DFREECHECKER</a>())</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  saber = std::make_unique<DoubleFreeChecker>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  saber = std::make_unique<LeakChecker>(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  saber->runOnModule(pag);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> }</div><div class="ttc" id="saber_8cpp_html_ab233df6b8c190aa2c26fa20bd1ac7c52"><div class="ttname"><a href="saber_8cpp.html#ab233df6b8c190aa2c26fa20bd1ac7c52">DFREECHECKER</a></div><div class="ttdeci">static Option< bool > DFREECHECKER("dfree", "Double Free Detection", false)</div></div>
|
|
126
|
+
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
127
|
+
<div class="ttc" id="saber_8cpp_html_a040433670c569ad3978a19fb1bf44d5b"><div class="ttname"><a href="saber_8cpp.html#a040433670c569ad3978a19fb1bf44d5b">FILECHECKER</a></div><div class="ttdeci">static Option< bool > FILECHECKER("fileck", "File Open/Close Detection", false)</div></div>
|
|
128
|
+
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
|
|
129
|
+
<div class="ttc" id="saber_8cpp_html_a789415bb7081a399af0d4218ead5e6a5"><div class="ttname"><a href="saber_8cpp.html#a789415bb7081a399af0d4218ead5e6a5">LEAKCHECKER</a></div><div class="ttdeci">static Option< bool > LEAKCHECKER("leak", "Memory Leak Detection", false)</div></div>
|
|
130
|
+
<div class="ttc" id="classOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector< std::string > parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
|
|
131
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
132
|
+
</div><!-- fragment -->
|
|
135
133
|
</div>
|
|
136
134
|
</div>
|
|
137
|
-
<
|
|
138
|
-
<
|
|
135
|
+
<h2 class="groupheader">Variable Documentation</h2>
|
|
136
|
+
<a id="ab233df6b8c190aa2c26fa20bd1ac7c52"></a>
|
|
137
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ab233df6b8c190aa2c26fa20bd1ac7c52">◆ </a></span>DFREECHECKER</h2>
|
|
139
138
|
|
|
140
139
|
<div class="memitem">
|
|
141
140
|
<div class="memproto">
|
|
@@ -144,27 +143,7 @@ Functions</h2></td></tr>
|
|
|
144
143
|
<td class="mlabels-left">
|
|
145
144
|
<table class="memname">
|
|
146
145
|
<tr>
|
|
147
|
-
<td class="memname">
|
|
148
|
-
<td>(</td>
|
|
149
|
-
<td class="paramtype">"fileck" </td>
|
|
150
|
-
<td class="paramname">, </td>
|
|
151
|
-
</tr>
|
|
152
|
-
<tr>
|
|
153
|
-
<td class="paramkey"></td>
|
|
154
|
-
<td></td>
|
|
155
|
-
<td class="paramtype">llvm::cl::init(<a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>) </td>
|
|
156
|
-
<td class="paramname">, </td>
|
|
157
|
-
</tr>
|
|
158
|
-
<tr>
|
|
159
|
-
<td class="paramkey"></td>
|
|
160
|
-
<td></td>
|
|
161
|
-
<td class="paramtype">llvm::cl::desc("File Open/Close Detection") </td>
|
|
162
|
-
<td class="paramname"> </td>
|
|
163
|
-
</tr>
|
|
164
|
-
<tr>
|
|
165
|
-
<td></td>
|
|
166
|
-
<td>)</td>
|
|
167
|
-
<td></td><td></td>
|
|
146
|
+
<td class="memname"><a class="el" href="classOption.html">Option</a><bool> DFREECHECKER("dfree", "Double Free Detection", false)</td>
|
|
168
147
|
</tr>
|
|
169
148
|
</table>
|
|
170
149
|
</td>
|
|
@@ -176,8 +155,8 @@ Functions</h2></td></tr>
|
|
|
176
155
|
|
|
177
156
|
</div>
|
|
178
157
|
</div>
|
|
179
|
-
<a id="
|
|
180
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
158
|
+
<a id="a040433670c569ad3978a19fb1bf44d5b"></a>
|
|
159
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a040433670c569ad3978a19fb1bf44d5b">◆ </a></span>FILECHECKER</h2>
|
|
181
160
|
|
|
182
161
|
<div class="memitem">
|
|
183
162
|
<div class="memproto">
|
|
@@ -186,27 +165,7 @@ Functions</h2></td></tr>
|
|
|
186
165
|
<td class="mlabels-left">
|
|
187
166
|
<table class="memname">
|
|
188
167
|
<tr>
|
|
189
|
-
<td class="memname"
|
|
190
|
-
<td>(</td>
|
|
191
|
-
<td class="paramtype">cl::Positional </td>
|
|
192
|
-
<td class="paramname">, </td>
|
|
193
|
-
</tr>
|
|
194
|
-
<tr>
|
|
195
|
-
<td class="paramkey"></td>
|
|
196
|
-
<td></td>
|
|
197
|
-
<td class="paramtype">llvm::cl::desc("<input bitcode>") </td>
|
|
198
|
-
<td class="paramname">, </td>
|
|
199
|
-
</tr>
|
|
200
|
-
<tr>
|
|
201
|
-
<td class="paramkey"></td>
|
|
202
|
-
<td></td>
|
|
203
|
-
<td class="paramtype">llvm::cl::init("-") </td>
|
|
204
|
-
<td class="paramname"> </td>
|
|
205
|
-
</tr>
|
|
206
|
-
<tr>
|
|
207
|
-
<td></td>
|
|
208
|
-
<td>)</td>
|
|
209
|
-
<td></td><td></td>
|
|
168
|
+
<td class="memname"><a class="el" href="classOption.html">Option</a><bool> FILECHECKER("fileck", "File Open/Close Detection", false)</td>
|
|
210
169
|
</tr>
|
|
211
170
|
</table>
|
|
212
171
|
</td>
|
|
@@ -218,8 +177,8 @@ Functions</h2></td></tr>
|
|
|
218
177
|
|
|
219
178
|
</div>
|
|
220
179
|
</div>
|
|
221
|
-
<a id="
|
|
222
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
180
|
+
<a id="a789415bb7081a399af0d4218ead5e6a5"></a>
|
|
181
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a789415bb7081a399af0d4218ead5e6a5">◆ </a></span>LEAKCHECKER</h2>
|
|
223
182
|
|
|
224
183
|
<div class="memitem">
|
|
225
184
|
<div class="memproto">
|
|
@@ -228,27 +187,7 @@ Functions</h2></td></tr>
|
|
|
228
187
|
<td class="mlabels-left">
|
|
229
188
|
<table class="memname">
|
|
230
189
|
<tr>
|
|
231
|
-
<td class="memname">
|
|
232
|
-
<td>(</td>
|
|
233
|
-
<td class="paramtype">"leak" </td>
|
|
234
|
-
<td class="paramname">, </td>
|
|
235
|
-
</tr>
|
|
236
|
-
<tr>
|
|
237
|
-
<td class="paramkey"></td>
|
|
238
|
-
<td></td>
|
|
239
|
-
<td class="paramtype">llvm::cl::init(<a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>) </td>
|
|
240
|
-
<td class="paramname">, </td>
|
|
241
|
-
</tr>
|
|
242
|
-
<tr>
|
|
243
|
-
<td class="paramkey"></td>
|
|
244
|
-
<td></td>
|
|
245
|
-
<td class="paramtype">llvm::cl::desc("Memory Leak Detection") </td>
|
|
246
|
-
<td class="paramname"> </td>
|
|
247
|
-
</tr>
|
|
248
|
-
<tr>
|
|
249
|
-
<td></td>
|
|
250
|
-
<td>)</td>
|
|
251
|
-
<td></td><td></td>
|
|
190
|
+
<td class="memname"><a class="el" href="classOption.html">Option</a><bool> LEAKCHECKER("leak", "Memory Leak Detection", false)</td>
|
|
252
191
|
</tr>
|
|
253
192
|
</table>
|
|
254
193
|
</td>
|
|
@@ -258,43 +197,6 @@ Functions</h2></td></tr>
|
|
|
258
197
|
</table>
|
|
259
198
|
</div><div class="memdoc">
|
|
260
199
|
|
|
261
|
-
</div>
|
|
262
|
-
</div>
|
|
263
|
-
<a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
|
|
264
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">◆ </a></span>main()</h2>
|
|
265
|
-
|
|
266
|
-
<div class="memitem">
|
|
267
|
-
<div class="memproto">
|
|
268
|
-
<table class="memname">
|
|
269
|
-
<tr>
|
|
270
|
-
<td class="memname">int main </td>
|
|
271
|
-
<td>(</td>
|
|
272
|
-
<td class="paramtype">int </td>
|
|
273
|
-
<td class="paramname"><em>argc</em>, </td>
|
|
274
|
-
</tr>
|
|
275
|
-
<tr>
|
|
276
|
-
<td class="paramkey"></td>
|
|
277
|
-
<td></td>
|
|
278
|
-
<td class="paramtype">char ** </td>
|
|
279
|
-
<td class="paramname"><em>argv</em> </td>
|
|
280
|
-
</tr>
|
|
281
|
-
<tr>
|
|
282
|
-
<td></td>
|
|
283
|
-
<td>)</td>
|
|
284
|
-
<td></td><td></td>
|
|
285
|
-
</tr>
|
|
286
|
-
</table>
|
|
287
|
-
</div><div class="memdoc">
|
|
288
|
-
|
|
289
|
-
<p class="definition">Definition at line <a class="el" href="saber_8cpp_source.html#l00053">53</a> of file <a class="el" href="saber_8cpp_source.html">saber.cpp</a>.</p>
|
|
290
|
-
<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="stringliteral">"Source-Sink Bug Detector\n"</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.build();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  std::unique_ptr<LeakChecker> saber;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  saber = std::make_unique<LeakChecker>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  saber = std::make_unique<FileChecker>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  saber = std::make_unique<DoubleFreeChecker>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  saber = std::make_unique<LeakChecker>(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  saber->runOnModule(pag);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div><div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
291
|
-
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
|
|
292
|
-
<div class="ttc" id="saber_8cpp_html_a3bebf1fb890054c49ae16f9706fa38d2"><div class="ttname"><a href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a></div><div class="ttdeci">static llvm::cl::opt< bool > LEAKCHECKER("leak", llvm::cl::init(false), llvm::cl::desc("Memory Leak Detection"))</div></div>
|
|
293
|
-
<div class="ttc" id="saber_8cpp_html_ae054770c30aa9b9ef72d5bc84084b472"><div class="ttname"><a href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a></div><div class="ttdeci">static llvm::cl::opt< bool > FILECHECKER("fileck", llvm::cl::init(false), llvm::cl::desc("File Open/Close Detection"))</div></div>
|
|
294
|
-
<div class="ttc" id="saber_8cpp_html_ae783b2330e99490ef5d366605d1098cf"><div class="ttname"><a href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a></div><div class="ttdeci">static llvm::cl::opt< bool > DFREECHECKER("dfree", llvm::cl::init(false), llvm::cl::desc("Double Free Detection"))</div></div>
|
|
295
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &arg_num, char **arg_value, std::vector< std::string > &moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
|
|
296
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
297
|
-
</div><!-- fragment -->
|
|
298
200
|
</div>
|
|
299
201
|
</div>
|
|
300
202
|
</div><!-- contents -->
|
|
@@ -66,22 +66,23 @@ $(function() {
|
|
|
66
66
|
<div class="title">saber.cpp</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="saber_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- saber.cpp -- Source-sink bug checker------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> // Saber: Software Bug Check.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="LLVMUtil_8h.html">SVF-LLVM/LLVMUtil.h</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="SVFIRBuilder_8h.html">SVF-LLVM/SVFIRBuilder.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="LeakChecker_8h.html">SABER/LeakChecker.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="FileChecker_8h.html">SABER/FileChecker.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="DoubleFreeChecker_8h.html">SABER/DoubleFreeChecker.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="Z3Expr_8h.html">Util/Z3Expr.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">static</span> llvm::cl::opt<std::string> <a class="code" href="saber_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a>(cl::Positional,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  llvm::cl::desc(<span class="stringliteral">"<input bitcode>"</span>), llvm::cl::init(<span class="stringliteral">"-"</span>));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">static</span> llvm::cl::opt<bool> <a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>(<span class="stringliteral">"leak"</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  llvm::cl::desc(<span class="stringliteral">"Memory Leak Detection"</span>));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">static</span> llvm::cl::opt<bool> <a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>(<span class="stringliteral">"fileck"</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  llvm::cl::desc(<span class="stringliteral">"File Open/Close Detection"</span>));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">static</span> llvm::cl::opt<bool> <a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>(<span class="stringliteral">"dfree"</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  llvm::cl::desc(<span class="stringliteral">"Double Free Detection"</span>));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 53</a></span> <span class="keywordtype">int</span> <a class="code" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="stringliteral">"Source-Sink Bug Detector\n"</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  std::unique_ptr<LeakChecker> saber;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  saber = std::make_unique<LeakChecker>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  saber = std::make_unique<FileChecker>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  saber = std::make_unique<DoubleFreeChecker>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  saber = std::make_unique<LeakChecker>(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  saber->runOnModule(pag);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div><div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00013">GEPTypeBridgeIterator.h:13</a></div></div>
|
|
69
|
+
<a href="saber_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- saber.cpp -- Source-sink bug checker------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> // Saber: Software Bug Check.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="LLVMUtil_8h.html">SVF-LLVM/LLVMUtil.h</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="SVFIRBuilder_8h.html">SVF-LLVM/SVFIRBuilder.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="LeakChecker_8h.html">SABER/LeakChecker.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="FileChecker_8h.html">SABER/FileChecker.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="DoubleFreeChecker_8h.html">SABER/DoubleFreeChecker.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="CommandLine_8h.html">Util/CommandLine.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="Z3Expr_8h.html">Util/Z3Expr.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">static</span> <a class="code" href="classOption.html">Option<bool></a> <a class="code" href="saber_8cpp.html#a789415bb7081a399af0d4218ead5e6a5">LEAKCHECKER</a>(</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="stringliteral">"leak"</span>,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="stringliteral">"Memory Leak Detection"</span>,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">false</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> );</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">static</span> <a class="code" href="classOption.html">Option<bool></a> <a class="code" href="saber_8cpp.html#a040433670c569ad3978a19fb1bf44d5b">FILECHECKER</a>(</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="stringliteral">"fileck"</span>,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="stringliteral">"File Open/Close Detection"</span>,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">false</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> );</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> <a class="code" href="classOption.html">Option<bool></a> <a class="code" href="saber_8cpp.html#ab233df6b8c190aa2c26fa20bd1ac7c52">DFREECHECKER</a>(</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="stringliteral">"dfree"</span>,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="stringliteral">"Double Free Detection"</span>,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">false</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> );</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 60</a></span> <span class="keywordtype">int</span> <a class="code" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  argc, argv, <span class="stringliteral">"Source-Sink Bug Detector"</span>, <span class="stringliteral">"[options] <input-bitcode...>"</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  );</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  std::unique_ptr<LeakChecker> saber;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a789415bb7081a399af0d4218ead5e6a5">LEAKCHECKER</a>())</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  saber = std::make_unique<LeakChecker>();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a040433670c569ad3978a19fb1bf44d5b">FILECHECKER</a>())</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  saber = std::make_unique<FileChecker>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ab233df6b8c190aa2c26fa20bd1ac7c52">DFREECHECKER</a>())</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  saber = std::make_unique<DoubleFreeChecker>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  saber = std::make_unique<LeakChecker>(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  saber->runOnModule(pag);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> }</div><div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00013">GEPTypeBridgeIterator.h:13</a></div></div>
|
|
70
|
+
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< bool ></a></div></div>
|
|
70
71
|
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a5ecf1deb5646ccb46b0b3101417f4689"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build()</div><div class="ttdoc">Start building SVFIR here. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00051">SVFIRBuilder.cpp:51</a></div></div>
|
|
71
|
-
<div class="ttc" id="
|
|
72
|
+
<div class="ttc" id="saber_8cpp_html_ab233df6b8c190aa2c26fa20bd1ac7c52"><div class="ttname"><a href="saber_8cpp.html#ab233df6b8c190aa2c26fa20bd1ac7c52">DFREECHECKER</a></div><div class="ttdeci">static Option< bool > DFREECHECKER("dfree", "Double Free Detection", false)</div></div>
|
|
72
73
|
<div class="ttc" id="FileChecker_8h_html"><div class="ttname"><a href="FileChecker_8h.html">FileChecker.h</a></div></div>
|
|
73
|
-
<div class="ttc" id="saber_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="saber_8cpp_source.html#
|
|
74
|
+
<div class="ttc" id="saber_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="saber_8cpp_source.html#l00060">saber.cpp:60</a></div></div>
|
|
74
75
|
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
76
|
+
<div class="ttc" id="saber_8cpp_html_a040433670c569ad3978a19fb1bf44d5b"><div class="ttname"><a href="saber_8cpp.html#a040433670c569ad3978a19fb1bf44d5b">FILECHECKER</a></div><div class="ttdeci">static Option< bool > FILECHECKER("fileck", "File Open/Close Detection", false)</div></div>
|
|
75
77
|
<div class="ttc" id="LeakChecker_8h_html"><div class="ttname"><a href="LeakChecker_8h.html">LeakChecker.h</a></div></div>
|
|
76
78
|
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
|
|
77
|
-
<div class="ttc" id="
|
|
79
|
+
<div class="ttc" id="CommandLine_8h_html"><div class="ttname"><a href="CommandLine_8h.html">CommandLine.h</a></div></div>
|
|
78
80
|
<div class="ttc" id="Z3Expr_8h_html"><div class="ttname"><a href="Z3Expr_8h.html">Z3Expr.h</a></div></div>
|
|
79
|
-
<div class="ttc" id="
|
|
81
|
+
<div class="ttc" id="saber_8cpp_html_a789415bb7081a399af0d4218ead5e6a5"><div class="ttname"><a href="saber_8cpp.html#a789415bb7081a399af0d4218ead5e6a5">LEAKCHECKER</a></div><div class="ttdeci">static Option< bool > LEAKCHECKER("leak", "Memory Leak Detection", false)</div></div>
|
|
80
82
|
<div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
81
|
-
<div class="ttc" id="saber_8cpp_html_ae783b2330e99490ef5d366605d1098cf"><div class="ttname"><a href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a></div><div class="ttdeci">static llvm::cl::opt< bool > DFREECHECKER("dfree", llvm::cl::init(false), llvm::cl::desc("Double Free Detection"))</div></div>
|
|
82
83
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00037">AbstractValue.h:37</a></div></div>
|
|
83
84
|
<div class="ttc" id="SVFIRBuilder_8h_html"><div class="ttname"><a href="SVFIRBuilder_8h.html">SVFIRBuilder.h</a></div></div>
|
|
84
|
-
<div class="ttc" id="
|
|
85
|
+
<div class="ttc" id="classOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector< std::string > parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
|
|
85
86
|
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
86
87
|
<div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
|
|
87
88
|
<div class="ttc" id="DoubleFreeChecker_8h_html"><div class="ttname"><a href="DoubleFreeChecker_8h.html">DoubleFreeChecker.h</a></div></div>
|
|
@@ -16,6 +16,7 @@ var searchData=
|
|
|
16
16
|
['_5fbr_5fcond',['_br_cond',['../classSVF_1_1SVFIR2ItvExeState.html#a76bc62f9bcaf8a0513ffd11ccc23bc3b',1,'SVF::SVFIR2ItvExeState']]],
|
|
17
17
|
['_5fcallgraph',['_callGraph',['../classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5',1,'SVF::DDAVFSolver']]],
|
|
18
18
|
['_5fcallgraphscc',['_callGraphSCC',['../classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a',1,'SVF::DDAVFSolver']]],
|
|
19
|
+
['_5fcfldata',['_cflData',['../classSVF_1_1POCRAlias.html#a4a225814387ebd9ae2b32026579a6b4f',1,'SVF::POCRAlias::_cflData()'],['../classSVF_1_1CFLDataBuilder.html#a33912d00ef8eb5e205cb9b0177c60f77',1,'SVF::CFLDataBuilder::_cflData()'],['../classSVF_1_1POCRSolver.html#a3ed67db7c5bbddee09b7fefdec3ca538',1,'SVF::POCRSolver::_cflData()']]],
|
|
19
20
|
['_5fclient',['_client',['../classSVF_1_1ContextDDA.html#ae3b04859ed69c47302177988aa68a70b',1,'SVF::ContextDDA::_client()'],['../classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f',1,'SVF::DDAPass::_client()'],['../classSVF_1_1FlowDDA.html#a0e10ce1de61977d2fbb3ad2f64df64b9',1,'SVF::FlowDDA::_client()']]],
|
|
20
21
|
['_5fcomponents',['_components',['../classSVF_1_1WtoCycle.html#aa90f97dbcfe22d16cb3142908b3bf2a9',1,'SVF::WtoCycle::_components()'],['../classSVF_1_1Wto.html#a32ba62eb2b084c9b7bd6f628b378135a',1,'SVF::Wto::_components()']]],
|
|
21
22
|
['_5fcondpts',['_condPts',['../classSVF_1_1CondPointsToSet.html#ad0e1a70889a7bf2cb1b201a129128c52',1,'SVF::CondPointsToSet']]],
|
|
@@ -27,7 +28,7 @@ var searchData=
|
|
|
27
28
|
['_5fdfn_5ftable',['_dfn_table',['../classSVF_1_1Wto.html#afef30c109d468c59b1ae6300f6ea41e0',1,'SVF::Wto']]],
|
|
28
29
|
['_5fenditer',['_endIter',['../classSVF_1_1CondPointsToSet_1_1CondPtsSetIterator.html#a9ffed93e0d4ae4b1431689b7fa5d6082',1,'SVF::CondPointsToSet::CondPtsSetIterator']]],
|
|
29
30
|
['_5fes',['_es',['../classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e',1,'SVF::SVFIR2ItvExeState']]],
|
|
30
|
-
['_5fgraph',['_graph',['../classSVF_1_1SrcSnkSolver.html#a87242199e12fce5c5978ed0a4baa6b09',1,'SVF::SrcSnkSolver::_graph()'],['../classSVF_1_1GraphReachSolver.html#af486b67b972d797107ec82f3f7988668',1,'SVF::GraphReachSolver::_graph()'],['../classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8',1,'SVF::SCCDetection::_graph()'],['../classSVF_1_1WPASolver.html#a87e9adb7fb0e0a42abaf90adac27a9c0',1,'SVF::WPASolver::_graph()']]],
|
|
31
|
+
['_5fgraph',['_graph',['../classSVF_1_1CFLDataBuilder.html#a46acc7c901770ea22c66011f9c68c55c',1,'SVF::CFLDataBuilder::_graph()'],['../classSVF_1_1SrcSnkSolver.html#a87242199e12fce5c5978ed0a4baa6b09',1,'SVF::SrcSnkSolver::_graph()'],['../classSVF_1_1GraphReachSolver.html#af486b67b972d797107ec82f3f7988668',1,'SVF::GraphReachSolver::_graph()'],['../classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8',1,'SVF::SCCDetection::_graph()'],['../classSVF_1_1WPASolver.html#a87e9adb7fb0e0a42abaf90adac27a9c0',1,'SVF::WPASolver::_graph()']]],
|
|
31
32
|
['_5fhead',['_head',['../classSVF_1_1WtoCycle.html#a43a9e3b8ff350fecb0aa167ff9dc903b',1,'SVF::WtoCycle::_head()'],['../classSVF_1_1Wto_1_1TailBuilder.html#a52ad7e0321f822574122682503ad44c7',1,'SVF::Wto::TailBuilder::_head()']]],
|
|
32
33
|
['_5fheadnesting',['_headNesting',['../classSVF_1_1Wto_1_1TailBuilder.html#aaa34042f6bf2dc8bf561fbf0ecff8ebf',1,'SVF::Wto::TailBuilder']]],
|
|
33
34
|
['_5fi',['_I',['../classSVF_1_1SCCDetection.html#a9105051438f60587df95a9dba618d008',1,'SVF::SCCDetection::_I()'],['../classSVF_1_1CSC.html#af58e474ee7605663fd04fce58dc029d1',1,'SVF::CSC::_I()']]],
|