svf-tools 1.0.633 → 1.0.635
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/CMakeLists.txt +111 -90
- package/SVF-doxygen/html/html/CFL_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/CMakeLists_8txt.html +73 -0
- package/SVF-doxygen/html/html/DDA_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/Example_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/LockResultValidator_8cpp.html +2 -3
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +6 -52
- package/SVF-doxygen/html/html/LockResultValidator_8h.html +2 -3
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -26
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp.html +3 -3
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -57
- package/SVF-doxygen/html/html/MTAAnnotator_8h.html +5 -6
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -22
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp.html +2 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +12 -72
- package/SVF-doxygen/html/html/MTAResultValidator_8h.html +6 -6
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +76 -114
- package/SVF-doxygen/html/html/MTA_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/SABER_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/WPA_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/annotated.html +9 -468
- package/SVF-doxygen/html/html/cfl_8cpp.html +5 -10
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +2 -12
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +51 -119
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator-members.html +2 -14
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +14 -49
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator-members.html +25 -43
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +67 -187
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator-members.html +20 -48
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +345 -1317
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator-members.html +8 -23
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +137 -758
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator_1_1AccessPair-members.html +3 -7
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator_1_1AccessPair.html +37 -184
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator-members.html +1 -13
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +13 -48
- package/SVF-doxygen/html/html/classes.html +10 -123
- package/SVF-doxygen/html/html/dda_8cpp.html +172 -63
- package/SVF-doxygen/html/html/dda_8cpp_source.html +8 -20
- package/SVF-doxygen/html/html/dir_0c09191358c30c0f2d864382d285cb43.html +1 -1
- package/SVF-doxygen/html/html/files.html +19 -288
- package/SVF-doxygen/html/html/functions.html +322 -300
- package/SVF-doxygen/html/html/functions_func.html +171 -1020
- package/SVF-doxygen/html/html/functions_type.html +27 -17
- package/SVF-doxygen/html/html/functions_vars.html +151 -364
- package/SVF-doxygen/html/html/globals.html +53 -11
- package/SVF-doxygen/html/html/globals_func.html +22 -236
- package/SVF-doxygen/html/html/hierarchy.html +9 -543
- package/SVF-doxygen/html/html/menudata.js +44 -294
- package/SVF-doxygen/html/html/mta_8cpp.html +8 -16
- package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -18
- package/SVF-doxygen/html/html/namespaceSVF.html +9 -6287
- package/SVF-doxygen/html/html/namespacemembers.html +3 -35
- package/SVF-doxygen/html/html/namespacemembers_type.html +3 -26
- package/SVF-doxygen/html/html/namespaces.html +2 -9
- package/SVF-doxygen/html/html/saber_8cpp.html +104 -53
- package/SVF-doxygen/html/html/saber_8cpp_source.html +5 -19
- package/SVF-doxygen/html/html/search/all_0.js +1 -131
- package/SVF-doxygen/html/html/search/all_1.js +4 -449
- package/SVF-doxygen/html/html/search/all_10.js +9 -310
- package/SVF-doxygen/html/html/search/all_11.js +1 -187
- package/SVF-doxygen/html/html/search/all_12.js +4 -474
- package/SVF-doxygen/html/html/search/all_2.js +17 -141
- package/SVF-doxygen/html/html/search/all_3.js +5 -592
- package/SVF-doxygen/html/html/search/all_4.js +3 -222
- package/SVF-doxygen/html/html/search/all_5.js +3 -141
- package/SVF-doxygen/html/html/search/all_6.js +12 -211
- package/SVF-doxygen/html/html/search/all_7.js +1 -923
- package/SVF-doxygen/html/html/search/all_8.js +17 -187
- package/SVF-doxygen/html/html/search/all_9.js +11 -553
- package/SVF-doxygen/html/html/search/all_a.js +17 -10
- package/SVF-doxygen/html/html/search/all_b.js +11 -21
- package/SVF-doxygen/html/html/search/all_c.js +5 -112
- package/SVF-doxygen/html/html/search/all_d.js +15 -190
- package/SVF-doxygen/html/html/search/all_e.js +7 -198
- package/SVF-doxygen/html/html/search/all_f.js +6 -122
- package/SVF-doxygen/html/html/search/classes_0.js +1 -25
- package/SVF-doxygen/html/html/search/classes_1.js +1 -7
- package/SVF-doxygen/html/html/search/classes_2.js +3 -69
- package/SVF-doxygen/html/html/search/classes_3.js +2 -32
- package/SVF-doxygen/html/html/search/files_0.js +2 -11
- package/SVF-doxygen/html/html/search/files_1.js +1 -5
- package/SVF-doxygen/html/html/search/files_2.js +2 -48
- package/SVF-doxygen/html/html/search/files_3.js +5 -14
- package/SVF-doxygen/html/html/search/files_4.js +2 -4
- package/SVF-doxygen/html/html/search/files_5.js +1 -13
- package/SVF-doxygen/html/html/search/functions_0.js +3 -339
- package/SVF-doxygen/html/html/search/functions_1.js +8 -73
- package/SVF-doxygen/html/html/search/functions_2.js +4 -228
- package/SVF-doxygen/html/html/search/functions_3.js +3 -69
- package/SVF-doxygen/html/html/search/functions_4.js +1 -50
- package/SVF-doxygen/html/html/search/functions_5.js +12 -49
- package/SVF-doxygen/html/html/search/functions_6.js +1 -766
- package/SVF-doxygen/html/html/search/functions_7.js +7 -143
- package/SVF-doxygen/html/html/search/functions_8.js +2 -393
- package/SVF-doxygen/html/html/search/functions_9.js +9 -4
- package/SVF-doxygen/html/html/search/functions_a.js +5 -1
- package/SVF-doxygen/html/html/search/functions_b.js +4 -20
- package/SVF-doxygen/html/html/search/functions_c.js +2 -72
- package/SVF-doxygen/html/html/search/functions_d.js +2 -31
- package/SVF-doxygen/html/html/search/functions_e.js +5 -58
- package/SVF-doxygen/html/html/search/functions_f.js +4 -132
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/searchdata.js +9 -21
- package/SVF-doxygen/html/html/search/typedefs_0.js +3 -15
- package/SVF-doxygen/html/html/search/typedefs_1.js +2 -24
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -120
- package/SVF-doxygen/html/html/search/typedefs_3.js +1 -41
- package/SVF-doxygen/html/html/search/typedefs_4.js +3 -15
- package/SVF-doxygen/html/html/search/typedefs_5.js +2 -41
- package/SVF-doxygen/html/html/search/variables_0.js +1 -131
- package/SVF-doxygen/html/html/search/variables_1.js +2 -66
- package/SVF-doxygen/html/html/search/variables_2.js +4 -30
- package/SVF-doxygen/html/html/search/variables_3.js +2 -136
- package/SVF-doxygen/html/html/search/variables_4.js +8 -54
- package/SVF-doxygen/html/html/search/variables_5.js +6 -35
- package/SVF-doxygen/html/html/search/variables_6.js +3 -66
- package/SVF-doxygen/html/html/search/variables_7.js +10 -30
- package/SVF-doxygen/html/html/search/variables_8.js +7 -8
- package/SVF-doxygen/html/html/search/variables_9.js +2 -68
- package/SVF-doxygen/html/html/search/variables_a.js +4 -3
- package/SVF-doxygen/html/html/search/variables_b.js +2 -10
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +31 -86
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -64
- package/SVF-doxygen/html/html/wpa_8cpp.html +6 -12
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +2 -14
- package/package.json +1 -1
- package/svf/CMakeLists.txt +26 -0
- package/{include → svf/include}/AbstractExecution/AbstractValue.h +0 -0
- package/{include → svf/include}/AbstractExecution/AddressValue.h +0 -0
- package/{include → svf/include}/AbstractExecution/ExeState.h +0 -0
- package/{include → svf/include}/AbstractExecution/IntervalExeState.h +0 -0
- package/{include → svf/include}/AbstractExecution/IntervalValue.h +0 -0
- package/{include → svf/include}/AbstractExecution/NumericLiteral.h +0 -0
- package/{include → svf/include}/AbstractExecution/RelExeState.h +0 -0
- package/{include → svf/include}/AbstractExecution/RelationSolver.h +0 -0
- package/{include → svf/include}/AbstractExecution/SVFIR2ItvExeState.h +0 -0
- package/{include → svf/include}/AbstractExecution/WTO.h +0 -0
- package/{include → svf/include}/CFL/CFGNormalizer.h +0 -0
- package/{include → svf/include}/CFL/CFLAlias.h +0 -0
- package/{include → svf/include}/CFL/CFLBase.h +0 -0
- package/{include → svf/include}/CFL/CFLData.h +0 -0
- package/{include → svf/include}/CFL/CFLDataBuilder.h +0 -0
- package/{include → svf/include}/CFL/CFLGramGraphChecker.h +0 -0
- package/{include → svf/include}/CFL/CFLGrammar.h +0 -0
- package/{include → svf/include}/CFL/CFLGrammar.txt +0 -0
- package/{include → svf/include}/CFL/CFLGraphBuilder.h +0 -0
- package/{include → svf/include}/CFL/CFLSolver.h +0 -0
- package/{include → svf/include}/CFL/CFLStat.h +0 -0
- package/{include → svf/include}/CFL/CFLVF.h +0 -0
- package/{include → svf/include}/CFL/GrammarBuilder.h +0 -0
- package/{include → svf/include}/CFL/PEGGrammar.txt +0 -0
- package/{include → svf/include}/CFL/VFG.txt +0 -0
- package/{include → svf/include}/DDA/ContextDDA.h +0 -0
- package/{include → svf/include}/DDA/DDAClient.h +0 -0
- package/{include → svf/include}/DDA/DDAPass.h +0 -0
- package/{include → svf/include}/DDA/DDAStat.h +0 -0
- package/{include → svf/include}/DDA/DDAVFSolver.h +0 -0
- package/{include → svf/include}/DDA/FlowDDA.h +0 -0
- package/{include → svf/include}/FastCluster/LICENSE.TXT +0 -0
- package/{include → svf/include}/FastCluster/fastcluster.h +0 -0
- package/{include → svf/include}/Graphs/CFLGraph.h +0 -0
- package/{include → svf/include}/Graphs/CHG.h +0 -0
- package/{include → svf/include}/Graphs/ConsG.h +0 -0
- package/{include → svf/include}/Graphs/ConsGEdge.h +0 -0
- package/{include → svf/include}/Graphs/ConsGNode.h +0 -0
- package/{include → svf/include}/Graphs/DOTGraphTraits.h +0 -0
- package/{include → svf/include}/Graphs/GenericGraph.h +0 -0
- package/{include → svf/include}/Graphs/GraphPrinter.h +0 -0
- package/{include → svf/include}/Graphs/GraphTraits.h +0 -0
- package/{include → svf/include}/Graphs/GraphWriter.h +0 -0
- package/{include → svf/include}/Graphs/ICFG.h +0 -0
- package/{include → svf/include}/Graphs/ICFGEdge.h +0 -0
- package/{include → svf/include}/Graphs/ICFGNode.h +0 -0
- package/{include → svf/include}/Graphs/ICFGStat.h +0 -0
- package/{include → svf/include}/Graphs/IRGraph.h +0 -0
- package/{include → svf/include}/Graphs/PTACallGraph.h +0 -0
- package/{include → svf/include}/Graphs/SVFG.h +0 -0
- package/{include → svf/include}/Graphs/SVFGEdge.h +0 -0
- package/{include → svf/include}/Graphs/SVFGNode.h +0 -0
- package/{include → svf/include}/Graphs/SVFGOPT.h +0 -0
- package/{include → svf/include}/Graphs/SVFGStat.h +0 -0
- package/{include → svf/include}/Graphs/ThreadCallGraph.h +0 -0
- package/{include → svf/include}/Graphs/VFG.h +0 -0
- package/{include → svf/include}/Graphs/VFGEdge.h +0 -0
- package/{include → svf/include}/Graphs/VFGNode.h +0 -0
- package/{include → svf/include}/MSSA/MSSAMuChi.h +0 -0
- package/{include → svf/include}/MSSA/MemPartition.h +0 -0
- package/{include → svf/include}/MSSA/MemRegion.h +0 -0
- package/{include → svf/include}/MSSA/MemSSA.h +0 -0
- package/{include → svf/include}/MSSA/SVFGBuilder.h +0 -0
- package/{include → svf/include}/MTA/FSMPTA.h +0 -0
- package/{include → svf/include}/MTA/LockAnalysis.h +0 -0
- package/{include → svf/include}/MTA/MHP.h +0 -0
- package/{include → svf/include}/MTA/MTA.h +0 -0
- package/{include → svf/include}/MTA/MTAResultValidator.h +0 -0
- package/{include → svf/include}/MTA/MTAStat.h +0 -0
- package/{include → svf/include}/MTA/PCG.h +0 -0
- package/{include → svf/include}/MTA/TCT.h +0 -0
- package/{include → svf/include}/MemoryModel/AbstractPointsToDS.h +0 -0
- package/{include → svf/include}/MemoryModel/ConditionalPT.h +0 -0
- package/{include → svf/include}/MemoryModel/LocationSet.h +0 -0
- package/{include → svf/include}/MemoryModel/MutablePointsToDS.h +0 -0
- package/{include → svf/include}/MemoryModel/PersistentPointsToCache.h +0 -0
- package/{include → svf/include}/MemoryModel/PersistentPointsToDS.h +0 -0
- package/{include → svf/include}/MemoryModel/PointerAnalysis.h +0 -0
- package/{include → svf/include}/MemoryModel/PointerAnalysisImpl.h +0 -0
- package/{include → svf/include}/MemoryModel/PointsTo.h +0 -0
- package/{include → svf/include}/MemoryModel/SVFLoop.h +0 -0
- package/{include → svf/include}/SABER/DoubleFreeChecker.h +0 -0
- package/{include → svf/include}/SABER/FileChecker.h +0 -0
- package/{include → svf/include}/SABER/LeakChecker.h +0 -0
- package/{include → svf/include}/SABER/ProgSlice.h +0 -0
- package/{include → svf/include}/SABER/SaberCheckerAPI.h +0 -0
- package/{include → svf/include}/SABER/SaberCondAllocator.h +0 -0
- package/{include → svf/include}/SABER/SaberSVFGBuilder.h +0 -0
- package/{include → svf/include}/SABER/SrcSnkDDA.h +0 -0
- package/{include → svf/include}/SABER/SrcSnkSolver.h +0 -0
- package/{include → svf/include}/SVFIR/PAGBuilderFromFile.h +0 -0
- package/{include → svf/include}/SVFIR/SVFIR.h +0 -0
- package/{include → svf/include}/SVFIR/SVFModule.h +0 -0
- package/{include → svf/include}/SVFIR/SVFStatements.h +0 -0
- package/{include → svf/include}/SVFIR/SVFType.h +12 -14
- package/{include → svf/include}/SVFIR/SVFValue.h +0 -0
- package/{include → svf/include}/SVFIR/SVFVariables.h +0 -0
- package/{include → svf/include}/SVFIR/SymbolTableInfo.h +0 -0
- package/{include → svf/include}/Util/Annotator.h +0 -0
- package/{include → svf/include}/Util/BitVector.h +0 -0
- package/{include → svf/include}/Util/CallGraphBuilder.h +0 -0
- package/{include → svf/include}/Util/Casting.h +0 -0
- package/{include → svf/include}/Util/CommandLine.h +0 -0
- package/{include → svf/include}/Util/CoreBitVector.h +0 -0
- package/{include → svf/include}/Util/CppUtil.h +0 -0
- package/{include → svf/include}/Util/CxtStmt.h +0 -0
- package/{include → svf/include}/Util/DPItem.h +0 -0
- package/{include → svf/include}/Util/ExtAPI.h +2 -2
- package/{include → svf/include}/Util/ExtAPI.json +0 -0
- package/{include → svf/include}/Util/GraphReachSolver.h +0 -0
- package/{include → svf/include}/Util/NodeIDAllocator.h +0 -0
- package/{include → svf/include}/Util/Options.h +0 -0
- package/{include → svf/include}/Util/PTAStat.h +0 -0
- package/{include → svf/include}/Util/SCC.h +0 -0
- package/{include → svf/include}/Util/SVFStat.h +0 -0
- package/{include → svf/include}/Util/SVFUtil.h +0 -0
- package/{include → svf/include}/Util/SparseBitVector.h +0 -0
- package/{include → svf/include}/Util/ThreadAPI.h +0 -0
- package/{include → svf/include}/Util/WorkList.h +0 -0
- package/{include → svf/include}/Util/Z3Expr.h +0 -0
- package/{include → svf/include}/Util/cJSON.h +0 -0
- package/{include → svf/include}/Util/iterator.h +0 -0
- package/{include → svf/include}/Util/iterator_range.h +0 -0
- package/{include → svf/include}/WPA/Andersen.h +0 -0
- package/{include → svf/include}/WPA/AndersenPWC.h +0 -0
- package/{include → svf/include}/WPA/CSC.h +0 -0
- package/{include → svf/include}/WPA/FlowSensitive.h +0 -0
- package/{include → svf/include}/WPA/Steensgaard.h +0 -0
- package/{include → svf/include}/WPA/TypeAnalysis.h +0 -0
- package/{include → svf/include}/WPA/VersionedFlowSensitive.h +0 -0
- package/{include → svf/include}/WPA/WPAFSSolver.h +0 -0
- package/{include → svf/include}/WPA/WPAPass.h +0 -0
- package/{include → svf/include}/WPA/WPASolver.h +0 -0
- package/{include → svf/include}/WPA/WPAStat.h +0 -0
- package/{lib → svf/lib}/AbstractExecution/ExeState.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/IntervalExeState.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/RelExeState.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/RelationSolver.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/SVFIR2ItvExeState.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/SVFIR2Relation.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFGNormalizer.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLAlias.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLBase.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLGrammar.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLGraphBuilder.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLSolver.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLStat.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLVF.cpp +0 -0
- package/{lib → svf/lib}/CFL/GrammarBuilder.cpp +6 -1
- package/{lib → svf/lib}/DDA/ContextDDA.cpp +0 -0
- package/{lib → svf/lib}/DDA/DDAClient.cpp +0 -0
- package/{lib → svf/lib}/DDA/DDAPass.cpp +0 -0
- package/{lib → svf/lib}/DDA/DDAStat.cpp +0 -0
- package/{lib → svf/lib}/DDA/FlowDDA.cpp +0 -0
- package/{lib → svf/lib}/FastCluster/LICENSE.TXT +0 -0
- package/{lib → svf/lib}/FastCluster/fastcluster.cpp +0 -0
- package/{lib → svf/lib}/FastCluster/fastcluster_R_dm.cpp.inc +0 -0
- package/{lib → svf/lib}/FastCluster/fastcluster_dm.cpp.inc +0 -0
- package/{lib → svf/lib}/Graphs/CFLGraph.cpp +0 -0
- package/{lib → svf/lib}/Graphs/CHG.cpp +0 -0
- package/{lib → svf/lib}/Graphs/ConsG.cpp +0 -0
- package/{lib → svf/lib}/Graphs/GraphWriter.cpp +0 -0
- package/{lib → svf/lib}/Graphs/ICFG.cpp +0 -0
- package/{lib → svf/lib}/Graphs/IRGraph.cpp +0 -0
- package/{lib → svf/lib}/Graphs/PTACallGraph.cpp +0 -0
- package/{lib → svf/lib}/Graphs/SVFG.cpp +0 -0
- package/{lib → svf/lib}/Graphs/SVFGOPT.cpp +0 -0
- package/{lib → svf/lib}/Graphs/SVFGReadWrite.cpp +0 -0
- package/{lib → svf/lib}/Graphs/SVFGStat.cpp +0 -0
- package/{lib → svf/lib}/Graphs/ThreadCallGraph.cpp +0 -0
- package/{lib → svf/lib}/Graphs/VFG.cpp +0 -0
- package/{lib → svf/lib}/MSSA/MemPartition.cpp +0 -0
- package/{lib → svf/lib}/MSSA/MemRegion.cpp +0 -0
- package/{lib → svf/lib}/MSSA/MemSSA.cpp +0 -0
- package/{lib → svf/lib}/MSSA/SVFGBuilder.cpp +0 -0
- package/{lib → svf/lib}/MTA/FSMPTA.cpp +0 -0
- package/{lib → svf/lib}/MTA/LockAnalysis.cpp +0 -0
- package/{lib → svf/lib}/MTA/MHP.cpp +0 -0
- package/{lib → svf/lib}/MTA/MTA.cpp +0 -0
- package/{lib → svf/lib}/MTA/MTAStat.cpp +0 -0
- package/{lib → svf/lib}/MTA/PCG.cpp +0 -0
- package/{lib → svf/lib}/MTA/TCT.cpp +0 -0
- package/{lib → svf/lib}/MemoryModel/LocationSet.cpp +0 -0
- package/{lib → svf/lib}/MemoryModel/PointerAnalysis.cpp +0 -0
- package/{lib → svf/lib}/MemoryModel/PointerAnalysisImpl.cpp +0 -0
- package/{lib → svf/lib}/MemoryModel/PointsTo.cpp +0 -0
- package/{lib → svf/lib}/SABER/DoubleFreeChecker.cpp +0 -0
- package/{lib → svf/lib}/SABER/FileChecker.cpp +0 -0
- package/{lib → svf/lib}/SABER/LeakChecker.cpp +0 -0
- package/{lib → svf/lib}/SABER/ProgSlice.cpp +0 -0
- package/{lib → svf/lib}/SABER/SaberCheckerAPI.cpp +0 -0
- package/{lib → svf/lib}/SABER/SaberCondAllocator.cpp +0 -0
- package/{lib → svf/lib}/SABER/SaberSVFGBuilder.cpp +0 -0
- package/{lib → svf/lib}/SABER/SrcSnkDDA.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/PAGBuilderFromFile.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFIR.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFModule.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFStatements.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFValue.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFVariables.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SymbolTableInfo.cpp +0 -0
- package/{lib → svf/lib}/Util/BitVector.cpp +0 -0
- package/{lib → svf/lib}/Util/CallGraphBuilder.cpp +0 -0
- package/{lib → svf/lib}/Util/CoreBitVector.cpp +0 -0
- package/{lib → svf/lib}/Util/CppUtil.cpp +0 -0
- package/{lib → svf/lib}/Util/ExtAPI.cpp +64 -58
- package/{lib → svf/lib}/Util/NodeIDAllocator.cpp +0 -0
- package/{lib → svf/lib}/Util/Options.cpp +0 -0
- package/{lib → svf/lib}/Util/PTAStat.cpp +0 -0
- package/{lib → svf/lib}/Util/SVFStat.cpp +0 -0
- package/{lib → svf/lib}/Util/SVFUtil.cpp +0 -0
- package/{lib → svf/lib}/Util/ThreadAPI.cpp +0 -0
- package/{lib → svf/lib}/Util/Z3Expr.cpp +0 -0
- package/{lib → svf/lib}/Util/cJSON.cpp +0 -0
- package/{lib → svf/lib}/WPA/Andersen.cpp +0 -0
- package/{lib → svf/lib}/WPA/AndersenSCD.cpp +0 -0
- package/{lib → svf/lib}/WPA/AndersenSFR.cpp +0 -0
- package/{lib → svf/lib}/WPA/AndersenStat.cpp +0 -0
- package/{lib → svf/lib}/WPA/AndersenWaveDiff.cpp +0 -0
- package/{lib → svf/lib}/WPA/CSC.cpp +0 -0
- package/{lib → svf/lib}/WPA/FlowSensitive.cpp +0 -0
- package/{lib → svf/lib}/WPA/FlowSensitiveStat.cpp +0 -0
- package/{lib → svf/lib}/WPA/Steensgaard.cpp +0 -0
- package/{lib → svf/lib}/WPA/TypeAnalysis.cpp +0 -0
- package/{lib → svf/lib}/WPA/VersionedFlowSensitive.cpp +0 -0
- package/{lib → svf/lib}/WPA/VersionedFlowSensitiveStat.cpp +0 -0
- package/{lib → svf/lib}/WPA/WPAPass.cpp +0 -0
- package/svf-llvm/CMakeLists.txt +21 -0
- package/{include → svf-llvm/include}/SVF-LLVM/BasicTypes.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/BreakConstantExpr.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/CHGBuilder.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/DCHG.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/GEPTypeBridgeIterator.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/ICFGBuilder.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/LLVMLoopAnalysis.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/LLVMModule.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/LLVMUtil.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/SVFIRBuilder.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/SymbolTableBuilder.h +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/BreakConstantExpr.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/CHGBuilder.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/DCHG.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/ICFGBuilder.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/LLVMLoopAnalysis.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/LLVMModule.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/LLVMUtil.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/SVFIRBuilder.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/SymbolTableBuilder.cpp +0 -0
- package/tools/CFL/CMakeLists.txt +18 -7
- package/tools/CMakeLists.txt +2 -1
- package/tools/DDA/CMakeLists.txt +18 -7
- package/tools/Example/CMakeLists.txt +18 -7
- package/tools/Example/svf-ex.cpp +0 -1
- package/tools/MTA/CMakeLists.txt +20 -9
- package/tools/SABER/CMakeLists.txt +18 -7
- package/tools/WPA/CMakeLists.txt +18 -8
- package/lib/CMakeLists.txt +0 -55
|
@@ -58,41 +58,9 @@ $(function() {
|
|
|
58
58
|
</div>
|
|
59
59
|
|
|
60
60
|
<div class="contents">
|
|
61
|
-
<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
|
|
62
|
-
|
|
63
|
-
<
|
|
64
|
-
<li>ActualParmSVFGNode
|
|
65
|
-
: <a class="el" href="namespaceSVF.html#a11c50c2f81327753b3ff3ffdbe356812">SVF</a>
|
|
66
|
-
</li>
|
|
67
|
-
<li>ActualRetSVFGNode
|
|
68
|
-
: <a class="el" href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67">SVF</a>
|
|
69
|
-
</li>
|
|
70
|
-
<li>AddrSVFGNode
|
|
71
|
-
: <a class="el" href="namespaceSVF.html#a959453cbb8ff2d852b526fd1ff74ce49">SVF</a>
|
|
72
|
-
</li>
|
|
73
|
-
<li>AliasResult
|
|
74
|
-
: <a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF</a>
|
|
75
|
-
</li>
|
|
76
|
-
<li>AllocaInst
|
|
77
|
-
: <a class="el" href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">SVF</a>
|
|
78
|
-
</li>
|
|
79
|
-
<li>ArgInDeadFunction()
|
|
80
|
-
: <a class="el" href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449">SVF::LLVMUtil</a>
|
|
81
|
-
</li>
|
|
82
|
-
<li>ArgInProgEntryFunction()
|
|
83
|
-
: <a class="el" href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">SVF::LLVMUtil</a>
|
|
84
|
-
</li>
|
|
85
|
-
<li>Argument
|
|
86
|
-
: <a class="el" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF</a>
|
|
87
|
-
</li>
|
|
88
|
-
<li>ArrayType
|
|
89
|
-
: <a class="el" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">SVF</a>
|
|
90
|
-
</li>
|
|
91
|
-
<li>AtomicCmpXchgInst
|
|
92
|
-
: <a class="el" href="namespaceSVF.html#a582e3736a2bbb0540364c1693d831b49">SVF</a>
|
|
93
|
-
</li>
|
|
94
|
-
<li>AtomicRMWInst
|
|
95
|
-
: <a class="el" href="namespaceSVF.html#a468154e0ab9e7be82afef1aa0a2fb9e0">SVF</a>
|
|
61
|
+
<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div><ul>
|
|
62
|
+
<li>NodeID
|
|
63
|
+
: <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF</a>
|
|
96
64
|
</li>
|
|
97
65
|
</ul>
|
|
98
66
|
</div><!-- contents -->
|
|
@@ -58,32 +58,9 @@ $(function() {
|
|
|
58
58
|
</div>
|
|
59
59
|
|
|
60
60
|
<div class="contents">
|
|
61
|
-
 
|
|
62
|
-
|
|
63
|
-
<
|
|
64
|
-
<li>ActualParmSVFGNode
|
|
65
|
-
: <a class="el" href="namespaceSVF.html#a11c50c2f81327753b3ff3ffdbe356812">SVF</a>
|
|
66
|
-
</li>
|
|
67
|
-
<li>ActualRetSVFGNode
|
|
68
|
-
: <a class="el" href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67">SVF</a>
|
|
69
|
-
</li>
|
|
70
|
-
<li>AddrSVFGNode
|
|
71
|
-
: <a class="el" href="namespaceSVF.html#a959453cbb8ff2d852b526fd1ff74ce49">SVF</a>
|
|
72
|
-
</li>
|
|
73
|
-
<li>AllocaInst
|
|
74
|
-
: <a class="el" href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">SVF</a>
|
|
75
|
-
</li>
|
|
76
|
-
<li>Argument
|
|
77
|
-
: <a class="el" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF</a>
|
|
78
|
-
</li>
|
|
79
|
-
<li>ArrayType
|
|
80
|
-
: <a class="el" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">SVF</a>
|
|
81
|
-
</li>
|
|
82
|
-
<li>AtomicCmpXchgInst
|
|
83
|
-
: <a class="el" href="namespaceSVF.html#a582e3736a2bbb0540364c1693d831b49">SVF</a>
|
|
84
|
-
</li>
|
|
85
|
-
<li>AtomicRMWInst
|
|
86
|
-
: <a class="el" href="namespaceSVF.html#a468154e0ab9e7be82afef1aa0a2fb9e0">SVF</a>
|
|
61
|
+
 <ul>
|
|
62
|
+
<li>NodeID
|
|
63
|
+
: <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF</a>
|
|
87
64
|
</li>
|
|
88
65
|
</ul>
|
|
89
66
|
</div><!-- contents -->
|
|
@@ -63,15 +63,8 @@ $(function() {
|
|
|
63
63
|
</div><!--header-->
|
|
64
64
|
<div class="contents">
|
|
65
65
|
<div class="textblock">Here is a list of all namespaces with brief descriptions:</div><div class="directory">
|
|
66
|
-
<
|
|
67
|
-
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="
|
|
68
|
-
<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">▼</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceSVF.html" target="_self">SVF</a></td><td class="desc">For isBitcode </td></tr>
|
|
69
|
-
<tr id="row_1_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_0_" class="arrow" onclick="toggleFolder('1_0_')">▼</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceSVF_1_1cppUtil.html" target="_self">cppUtil</a></td><td class="desc"></td></tr>
|
|
70
|
-
<tr id="row_1_0_0_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceSVF_1_1cppUtil_1_1ctir.html" target="_self">ctir</a></td><td class="desc"></td></tr>
|
|
71
|
-
<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceSVF_1_1DOT.html" target="_self">DOT</a></td><td class="desc"></td></tr>
|
|
72
|
-
<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceSVF_1_1GraphProgram.html" target="_self">GraphProgram</a></td><td class="desc"></td></tr>
|
|
73
|
-
<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceSVF_1_1LLVMUtil.html" target="_self">LLVMUtil</a></td><td class="desc"></td></tr>
|
|
74
|
-
<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceSVF_1_1SVFUtil.html" target="_self">SVFUtil</a></td><td class="desc"></td></tr>
|
|
66
|
+
<table class="directory">
|
|
67
|
+
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceSVF.html" target="_self">SVF</a></td><td class="desc"></td></tr>
|
|
75
68
|
</table>
|
|
76
69
|
</div><!-- directory -->
|
|
77
70
|
</div><!-- contents -->
|
|
@@ -63,55 +63,60 @@ $(function() {
|
|
|
63
63
|
</div><!-- top -->
|
|
64
64
|
<div class="header">
|
|
65
65
|
<div class="summary">
|
|
66
|
-
<a href="#func-members">Functions</a>
|
|
67
|
-
<a href="#var-members">Variables</a> </div>
|
|
66
|
+
<a href="#func-members">Functions</a> </div>
|
|
68
67
|
<div class="headertitle">
|
|
69
68
|
<div class="title">saber.cpp File Reference</div> </div>
|
|
70
69
|
</div><!--header-->
|
|
71
70
|
<div class="contents">
|
|
72
|
-
<div class="textblock"><code>#include "
|
|
73
|
-
<code>#include "
|
|
74
|
-
<code>#include "
|
|
75
|
-
<code>#include "
|
|
76
|
-
<code>#include "
|
|
77
|
-
<code>#include "
|
|
78
|
-
<code>#include "
|
|
79
|
-
<code>#include "
|
|
71
|
+
<div class="textblock"><code>#include "SVF-LLVM/LLVMUtil.h"</code><br />
|
|
72
|
+
<code>#include "SVF-LLVM/SVFIRBuilder.h"</code><br />
|
|
73
|
+
<code>#include "SABER/LeakChecker.h"</code><br />
|
|
74
|
+
<code>#include "SABER/FileChecker.h"</code><br />
|
|
75
|
+
<code>#include "SABER/DoubleFreeChecker.h"</code><br />
|
|
76
|
+
<code>#include "Util/CommandLine.h"</code><br />
|
|
77
|
+
<code>#include "Util/Options.h"</code><br />
|
|
78
|
+
<code>#include "Util/Z3Expr.h"</code><br />
|
|
80
79
|
</div>
|
|
81
80
|
<p><a href="saber_8cpp_source.html">Go to the source code of this file.</a></p>
|
|
82
81
|
<table class="memberdecls">
|
|
83
82
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
84
83
|
Functions</h2></td></tr>
|
|
84
|
+
<tr class="memitem:ab978200e20fbbdb10acca9efeff745bc"><td class="memItemLeft" align="right" valign="top">static Option< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#ab978200e20fbbdb10acca9efeff745bc">LEAKCHECKER</a> ("leak", "Memory Leak Detection", false)</td></tr>
|
|
85
|
+
<tr class="separator:ab978200e20fbbdb10acca9efeff745bc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
86
|
+
<tr class="memitem:a7fcc25f6477cb14786e27bf43226cc87"><td class="memItemLeft" align="right" valign="top">static Option< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#a7fcc25f6477cb14786e27bf43226cc87">FILECHECKER</a> ("fileck", "File Open/Close Detection", false)</td></tr>
|
|
87
|
+
<tr class="separator:a7fcc25f6477cb14786e27bf43226cc87"><td class="memSeparator" colspan="2"> </td></tr>
|
|
88
|
+
<tr class="memitem:a7414c3557fff03632694a567163935e4"><td class="memItemLeft" align="right" valign="top">static Option< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="saber_8cpp.html#a7414c3557fff03632694a567163935e4">DFREECHECKER</a> ("dfree", "Double Free Detection", false)</td></tr>
|
|
89
|
+
<tr class="separator:a7414c3557fff03632694a567163935e4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
85
90
|
<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>
|
|
86
91
|
<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>
|
|
96
92
|
</table>
|
|
97
93
|
<h2 class="groupheader">Function Documentation</h2>
|
|
98
|
-
<a id="
|
|
99
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
94
|
+
<a id="a7414c3557fff03632694a567163935e4"></a>
|
|
95
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a7414c3557fff03632694a567163935e4">◆ </a></span>DFREECHECKER()</h2>
|
|
100
96
|
|
|
101
97
|
<div class="memitem">
|
|
102
98
|
<div class="memproto">
|
|
99
|
+
<table class="mlabels">
|
|
100
|
+
<tr>
|
|
101
|
+
<td class="mlabels-left">
|
|
103
102
|
<table class="memname">
|
|
104
103
|
<tr>
|
|
105
|
-
<td class="memname">
|
|
104
|
+
<td class="memname">static Option<bool> DFREECHECKER </td>
|
|
106
105
|
<td>(</td>
|
|
107
|
-
<td class="paramtype"
|
|
108
|
-
<td class="paramname"
|
|
106
|
+
<td class="paramtype">"dfree" </td>
|
|
107
|
+
<td class="paramname">, </td>
|
|
109
108
|
</tr>
|
|
110
109
|
<tr>
|
|
111
110
|
<td class="paramkey"></td>
|
|
112
111
|
<td></td>
|
|
113
|
-
<td class="paramtype"
|
|
114
|
-
<td class="paramname"
|
|
112
|
+
<td class="paramtype">"Double Free Detection" </td>
|
|
113
|
+
<td class="paramname">, </td>
|
|
114
|
+
</tr>
|
|
115
|
+
<tr>
|
|
116
|
+
<td class="paramkey"></td>
|
|
117
|
+
<td></td>
|
|
118
|
+
<td class="paramtype">false </td>
|
|
119
|
+
<td class="paramname"> </td>
|
|
115
120
|
</tr>
|
|
116
121
|
<tr>
|
|
117
122
|
<td></td>
|
|
@@ -119,22 +124,17 @@ Variables</h2></td></tr>
|
|
|
119
124
|
<td></td><td></td>
|
|
120
125
|
</tr>
|
|
121
126
|
</table>
|
|
127
|
+
</td>
|
|
128
|
+
<td class="mlabels-right">
|
|
129
|
+
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
130
|
+
</tr>
|
|
131
|
+
</table>
|
|
122
132
|
</div><div class="memdoc">
|
|
123
133
|
|
|
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#l00046">SVFIRBuilder.h:46</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 -->
|
|
133
134
|
</div>
|
|
134
135
|
</div>
|
|
135
|
-
<
|
|
136
|
-
<a
|
|
137
|
-
<h2 class="memtitle"><span class="permalink"><a href="#ab233df6b8c190aa2c26fa20bd1ac7c52">◆ </a></span>DFREECHECKER</h2>
|
|
136
|
+
<a id="a7fcc25f6477cb14786e27bf43226cc87"></a>
|
|
137
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a7fcc25f6477cb14786e27bf43226cc87">◆ </a></span>FILECHECKER()</h2>
|
|
138
138
|
|
|
139
139
|
<div class="memitem">
|
|
140
140
|
<div class="memproto">
|
|
@@ -143,7 +143,27 @@ Variables</h2></td></tr>
|
|
|
143
143
|
<td class="mlabels-left">
|
|
144
144
|
<table class="memname">
|
|
145
145
|
<tr>
|
|
146
|
-
<td class="memname"
|
|
146
|
+
<td class="memname">static Option<bool> FILECHECKER </td>
|
|
147
|
+
<td>(</td>
|
|
148
|
+
<td class="paramtype">"fileck" </td>
|
|
149
|
+
<td class="paramname">, </td>
|
|
150
|
+
</tr>
|
|
151
|
+
<tr>
|
|
152
|
+
<td class="paramkey"></td>
|
|
153
|
+
<td></td>
|
|
154
|
+
<td class="paramtype">"File Open/Close Detection" </td>
|
|
155
|
+
<td class="paramname">, </td>
|
|
156
|
+
</tr>
|
|
157
|
+
<tr>
|
|
158
|
+
<td class="paramkey"></td>
|
|
159
|
+
<td></td>
|
|
160
|
+
<td class="paramtype">false </td>
|
|
161
|
+
<td class="paramname"> </td>
|
|
162
|
+
</tr>
|
|
163
|
+
<tr>
|
|
164
|
+
<td></td>
|
|
165
|
+
<td>)</td>
|
|
166
|
+
<td></td><td></td>
|
|
147
167
|
</tr>
|
|
148
168
|
</table>
|
|
149
169
|
</td>
|
|
@@ -155,8 +175,8 @@ Variables</h2></td></tr>
|
|
|
155
175
|
|
|
156
176
|
</div>
|
|
157
177
|
</div>
|
|
158
|
-
<a id="
|
|
159
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
178
|
+
<a id="ab978200e20fbbdb10acca9efeff745bc"></a>
|
|
179
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ab978200e20fbbdb10acca9efeff745bc">◆ </a></span>LEAKCHECKER()</h2>
|
|
160
180
|
|
|
161
181
|
<div class="memitem">
|
|
162
182
|
<div class="memproto">
|
|
@@ -165,7 +185,27 @@ Variables</h2></td></tr>
|
|
|
165
185
|
<td class="mlabels-left">
|
|
166
186
|
<table class="memname">
|
|
167
187
|
<tr>
|
|
168
|
-
<td class="memname"
|
|
188
|
+
<td class="memname">static Option<bool> LEAKCHECKER </td>
|
|
189
|
+
<td>(</td>
|
|
190
|
+
<td class="paramtype">"leak" </td>
|
|
191
|
+
<td class="paramname">, </td>
|
|
192
|
+
</tr>
|
|
193
|
+
<tr>
|
|
194
|
+
<td class="paramkey"></td>
|
|
195
|
+
<td></td>
|
|
196
|
+
<td class="paramtype">"Memory Leak Detection" </td>
|
|
197
|
+
<td class="paramname">, </td>
|
|
198
|
+
</tr>
|
|
199
|
+
<tr>
|
|
200
|
+
<td class="paramkey"></td>
|
|
201
|
+
<td></td>
|
|
202
|
+
<td class="paramtype">false </td>
|
|
203
|
+
<td class="paramname"> </td>
|
|
204
|
+
</tr>
|
|
205
|
+
<tr>
|
|
206
|
+
<td></td>
|
|
207
|
+
<td>)</td>
|
|
208
|
+
<td></td><td></td>
|
|
169
209
|
</tr>
|
|
170
210
|
</table>
|
|
171
211
|
</td>
|
|
@@ -177,26 +217,37 @@ Variables</h2></td></tr>
|
|
|
177
217
|
|
|
178
218
|
</div>
|
|
179
219
|
</div>
|
|
180
|
-
<a id="
|
|
181
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
220
|
+
<a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
|
|
221
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">◆ </a></span>main()</h2>
|
|
182
222
|
|
|
183
223
|
<div class="memitem">
|
|
184
224
|
<div class="memproto">
|
|
185
|
-
<table class="mlabels">
|
|
186
|
-
<tr>
|
|
187
|
-
<td class="mlabels-left">
|
|
188
225
|
<table class="memname">
|
|
189
226
|
<tr>
|
|
190
|
-
<td class="memname"
|
|
227
|
+
<td class="memname">int main </td>
|
|
228
|
+
<td>(</td>
|
|
229
|
+
<td class="paramtype">int </td>
|
|
230
|
+
<td class="paramname"><em>argc</em>, </td>
|
|
231
|
+
</tr>
|
|
232
|
+
<tr>
|
|
233
|
+
<td class="paramkey"></td>
|
|
234
|
+
<td></td>
|
|
235
|
+
<td class="paramtype">char ** </td>
|
|
236
|
+
<td class="paramname"><em>argv</em> </td>
|
|
237
|
+
</tr>
|
|
238
|
+
<tr>
|
|
239
|
+
<td></td>
|
|
240
|
+
<td>)</td>
|
|
241
|
+
<td></td><td></td>
|
|
191
242
|
</tr>
|
|
192
243
|
</table>
|
|
193
|
-
</td>
|
|
194
|
-
<td class="mlabels-right">
|
|
195
|
-
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
196
|
-
</tr>
|
|
197
|
-
</table>
|
|
198
244
|
</div><div class="memdoc">
|
|
199
245
|
|
|
246
|
+
<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>
|
|
247
|
+
<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 = OptionBase::parseOptions(</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>  SVFModule* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  SVFIRBuilder builder(svfModule);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  SVFIR* 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#ab978200e20fbbdb10acca9efeff745bc">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#a7fcc25f6477cb14786e27bf43226cc87">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#a7414c3557fff03632694a567163935e4">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_a7fcc25f6477cb14786e27bf43226cc87"><div class="ttname"><a href="saber_8cpp.html#a7fcc25f6477cb14786e27bf43226cc87">FILECHECKER</a></div><div class="ttdeci">static Option< bool > FILECHECKER("fileck", "File Open/Close Detection", false)</div></div>
|
|
248
|
+
<div class="ttc" id="saber_8cpp_html_ab978200e20fbbdb10acca9efeff745bc"><div class="ttname"><a href="saber_8cpp.html#ab978200e20fbbdb10acca9efeff745bc">LEAKCHECKER</a></div><div class="ttdeci">static Option< bool > LEAKCHECKER("leak", "Memory Leak Detection", false)</div></div>
|
|
249
|
+
<div class="ttc" id="saber_8cpp_html_a7414c3557fff03632694a567163935e4"><div class="ttname"><a href="saber_8cpp.html#a7414c3557fff03632694a567163935e4">DFREECHECKER</a></div><div class="ttdeci">static Option< bool > DFREECHECKER("dfree", "Double Free Detection", false)</div></div>
|
|
250
|
+
</div><!-- fragment -->
|
|
200
251
|
</div>
|
|
201
252
|
</div>
|
|
202
253
|
</div><!-- contents -->
|
|
@@ -66,26 +66,12 @@ $(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="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>
|
|
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>
|
|
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>
|
|
73
|
-
<div class="ttc" id="FileChecker_8h_html"><div class="ttname"><a href="FileChecker_8h.html">FileChecker.h</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 "SVF-LLVM/LLVMUtil.h"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "SVF-LLVM/SVFIRBuilder.h"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "SABER/LeakChecker.h"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "SABER/FileChecker.h"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "SABER/DoubleFreeChecker.h"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "Util/CommandLine.h"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "Util/Options.h"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "Util/Z3Expr.h"</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> Option<bool> <a class="code" href="saber_8cpp.html#ab978200e20fbbdb10acca9efeff745bc">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> Option<bool> <a class="code" href="saber_8cpp.html#a7fcc25f6477cb14786e27bf43226cc87">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> Option<bool> <a class="code" href="saber_8cpp.html#a7414c3557fff03632694a567163935e4">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 = OptionBase::parseOptions(</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>  SVFModule* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  SVFIRBuilder builder(svfModule);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  SVFIR* 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#ab978200e20fbbdb10acca9efeff745bc">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#a7fcc25f6477cb14786e27bf43226cc87">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#a7414c3557fff03632694a567163935e4">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>
|
|
74
70
|
<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>
|
|
75
|
-
<div class="ttc" id="
|
|
76
|
-
<div class="ttc" id="
|
|
77
|
-
<div class="ttc" id="
|
|
78
|
-
<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>
|
|
80
|
-
<div class="ttc" id="Z3Expr_8h_html"><div class="ttname"><a href="Z3Expr_8h.html">Z3Expr.h</a></div></div>
|
|
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>
|
|
82
|
-
<div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
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>
|
|
84
|
-
<div class="ttc" id="SVFIRBuilder_8h_html"><div class="ttname"><a href="SVFIRBuilder_8h.html">SVFIRBuilder.h</a></div></div>
|
|
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>
|
|
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>
|
|
87
|
-
<div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
|
|
88
|
-
<div class="ttc" id="DoubleFreeChecker_8h_html"><div class="ttname"><a href="DoubleFreeChecker_8h.html">DoubleFreeChecker.h</a></div></div>
|
|
71
|
+
<div class="ttc" id="saber_8cpp_html_a7fcc25f6477cb14786e27bf43226cc87"><div class="ttname"><a href="saber_8cpp.html#a7fcc25f6477cb14786e27bf43226cc87">FILECHECKER</a></div><div class="ttdeci">static Option< bool > FILECHECKER("fileck", "File Open/Close Detection", false)</div></div>
|
|
72
|
+
<div class="ttc" id="saber_8cpp_html_ab978200e20fbbdb10acca9efeff745bc"><div class="ttname"><a href="saber_8cpp.html#ab978200e20fbbdb10acca9efeff745bc">LEAKCHECKER</a></div><div class="ttdeci">static Option< bool > LEAKCHECKER("leak", "Memory Leak Detection", false)</div></div>
|
|
73
|
+
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8cpp_source.html#l00016">LockResultValidator.cpp:16</a></div></div>
|
|
74
|
+
<div class="ttc" id="saber_8cpp_html_a7414c3557fff03632694a567163935e4"><div class="ttname"><a href="saber_8cpp.html#a7414c3557fff03632694a567163935e4">DFREECHECKER</a></div><div class="ttdeci">static Option< bool > DFREECHECKER("dfree", "Double Free Detection", false)</div></div>
|
|
89
75
|
</div><!-- fragment --></div><!-- contents -->
|
|
90
76
|
<!-- start footer part -->
|
|
91
77
|
<hr class="footer"/><address class="footer"><small>
|