svf-tools 1.0.581 → 1.0.582
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/AndersenPWC_8h_source.html +1 -2
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -5
- package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -5
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +32 -30
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +11 -11
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +2 -3
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +3 -4
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLBase_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGramGraphChecker_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +23 -21
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +70 -66
- package/SVF-doxygen/html/html/CFLGrammar_8txt.html +28 -262
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +33 -20
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +5 -7
- package/SVF-doxygen/html/html/CFLStat_8h_source.html +4 -5
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -3
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -3
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +1 -4
- package/SVF-doxygen/html/html/CPPUtil_8h.html +4 -4
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -7
- package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -3
- package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -4
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +1 -3
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -2
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -3
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -5
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -5
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -2
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -4
- package/SVF-doxygen/html/html/MTA_8h_source.html +1 -2
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -3
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -3
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -3
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/PEGGrammar_8txt.html +6 -6
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +1 -3
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -3
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -2
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -2
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/SVFUtil_8h.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -2
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -2
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -1
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -5
- package/SVF-doxygen/html/html/VFG_8h_source.html +3 -6
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +1 -3
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +58 -56
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge-members.html +19 -18
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +43 -20
- package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +40 -37
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +55 -49
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode-members.html +37 -28
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +317 -20
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CFLStat-members.html +25 -26
- package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +8 -34
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +5 -7
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +8 -17
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -5
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +6 -10
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +13 -14
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +4 -5
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +6 -10
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase-members.html +23 -19
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +197 -78
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -5
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +5 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -7
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +3 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +13 -25
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +6 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +4 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +14 -20
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +4 -5
- package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +1 -2
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/functions_a.html +9 -3
- package/SVF-doxygen/html/html/functions_c.html +36 -33
- package/SVF-doxygen/html/html/functions_e.html +4 -1
- package/SVF-doxygen/html/html/functions_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func.html +13 -7
- package/SVF-doxygen/html/html/functions_func_c.html +17 -18
- package/SVF-doxygen/html/html/functions_func_g.html +25 -16
- package/SVF-doxygen/html/html/functions_func_i.html +7 -4
- package/SVF-doxygen/html/html/functions_func_r.html +8 -2
- package/SVF-doxygen/html/html/functions_func_s.html +13 -10
- package/SVF-doxygen/html/html/functions_g.html +23 -14
- package/SVF-doxygen/html/html/functions_i.html +19 -13
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- package/SVF-doxygen/html/html/functions_n.html +4 -4
- package/SVF-doxygen/html/html/functions_o.html +21 -10
- package/SVF-doxygen/html/html/functions_p.html +15 -15
- package/SVF-doxygen/html/html/functions_r.html +8 -2
- package/SVF-doxygen/html/html/functions_s.html +12 -9
- package/SVF-doxygen/html/html/functions_t.html +4 -4
- package/SVF-doxygen/html/html/functions_type_c.html +6 -0
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_i.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_o.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +11 -11
- package/SVF-doxygen/html/html/globals_a.html +0 -4
- package/SVF-doxygen/html/html/globals_c.html +7 -8
- package/SVF-doxygen/html/html/globals_e.html +1 -2
- package/SVF-doxygen/html/html/globals_f.html +4 -8
- package/SVF-doxygen/html/html/globals_g.html +4 -8
- package/SVF-doxygen/html/html/globals_l.html +2 -8
- package/SVF-doxygen/html/html/globals_m.html +1 -4
- package/SVF-doxygen/html/html/globals_s.html +3 -6
- package/SVF-doxygen/html/html/globals_v.html +1 -4
- package/SVF-doxygen/html/html/globals_vars.html +22 -55
- package/SVF-doxygen/html/html/menudata.js +0 -1
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +4 -4
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +2 -3
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +9 -15
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +4 -2
- package/SVF-doxygen/html/html/search/all_10.js +7 -7
- package/SVF-doxygen/html/html/search/all_11.js +4 -2
- package/SVF-doxygen/html/html/search/all_12.js +10 -9
- package/SVF-doxygen/html/html/search/all_13.js +4 -4
- package/SVF-doxygen/html/html/search/all_15.js +4 -5
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_3.js +6 -4
- package/SVF-doxygen/html/html/search/all_5.js +2 -1
- package/SVF-doxygen/html/html/search/all_6.js +3 -4
- package/SVF-doxygen/html/html/search/all_7.js +7 -5
- package/SVF-doxygen/html/html/search/all_9.js +5 -3
- package/SVF-doxygen/html/html/search/all_c.js +4 -5
- package/SVF-doxygen/html/html/search/all_d.js +0 -1
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +3 -2
- package/SVF-doxygen/html/html/search/functions_0.js +2 -0
- package/SVF-doxygen/html/html/search/functions_10.js +2 -0
- package/SVF-doxygen/html/html/search/functions_11.js +2 -1
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +3 -0
- package/SVF-doxygen/html/html/search/functions_8.js +2 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +2 -0
- package/SVF-doxygen/html/html/search/variables_1.js +1 -2
- package/SVF-doxygen/html/html/search/variables_12.js +1 -2
- package/SVF-doxygen/html/html/search/variables_13.js +2 -2
- package/SVF-doxygen/html/html/search/variables_15.js +1 -2
- package/SVF-doxygen/html/html/search/variables_3.js +1 -1
- package/SVF-doxygen/html/html/search/variables_5.js +2 -1
- package/SVF-doxygen/html/html/search/variables_6.js +1 -2
- package/SVF-doxygen/html/html/search/variables_7.js +4 -5
- package/SVF-doxygen/html/html/search/variables_9.js +1 -0
- package/SVF-doxygen/html/html/search/variables_c.js +1 -3
- package/SVF-doxygen/html/html/search/variables_d.js +0 -1
- package/SVF-doxygen/html/html/search/variables_f.js +1 -0
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/CFL/CFLGrammar.h +13 -0
- package/include/CFL/CFLGrammar.txt +9 -33
- package/include/CFL/CFLStat.h +0 -2
- package/include/Graphs/CFLGraph.h +59 -0
- package/lib/CFL/CFGNormalizer.cpp +1 -0
- package/lib/CFL/CFLGrammar.cpp +34 -1
- package/lib/CFL/CFLStat.cpp +7 -62
- package/package.json +1 -1
|
@@ -93,13 +93,13 @@ Functions</h2></td></tr>
|
|
|
93
93
|
<tr class="separator:a1e99d5cf28e0d6546e0d85b805a7e371"><td class="memSeparator" colspan="2"> </td></tr>
|
|
94
94
|
<tr class="memitem:aca6465c72effcaddeb34f55da4555754"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#aca6465c72effcaddeb34f55da4555754">isVirtualCallSite</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs)</td></tr>
|
|
95
95
|
<tr class="separator:aca6465c72effcaddeb34f55da4555754"><td class="memSeparator" colspan="2"> </td></tr>
|
|
96
|
-
<tr class="memitem:ad6f9578cdce518141772a11617160da8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">isConstructor</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>
|
|
96
|
+
<tr class="memitem:ad6f9578cdce518141772a11617160da8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">isConstructor</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F)</td></tr>
|
|
97
97
|
<tr class="separator:ad6f9578cdce518141772a11617160da8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
98
|
-
<tr class="memitem:af19bec54621f4605bac4feaf9f73803c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">isDestructor</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>
|
|
98
|
+
<tr class="memitem:af19bec54621f4605bac4feaf9f73803c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">isDestructor</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F)</td></tr>
|
|
99
99
|
<tr class="separator:af19bec54621f4605bac4feaf9f73803c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
100
|
-
<tr class="memitem:a917c4bd2d5fd1354b5069bf0a68533d9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">isCPPThunkFunction</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>
|
|
100
|
+
<tr class="memitem:a917c4bd2d5fd1354b5069bf0a68533d9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">isCPPThunkFunction</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F)</td></tr>
|
|
101
101
|
<tr class="separator:a917c4bd2d5fd1354b5069bf0a68533d9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
102
|
-
<tr class="memitem:ac9c6d4315e7a1a826add7ed9cf924553"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">getThunkTarget</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>
|
|
102
|
+
<tr class="memitem:ac9c6d4315e7a1a826add7ed9cf924553"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">getThunkTarget</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F)</td></tr>
|
|
103
103
|
<tr class="separator:ac9c6d4315e7a1a826add7ed9cf924553"><td class="memSeparator" colspan="2"> </td></tr>
|
|
104
104
|
<tr class="memitem:a26c3ceb82a398663284690c898a5354d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#a26c3ceb82a398663284690c898a5354d">getConstructorThisPtr</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun)</td></tr>
|
|
105
105
|
<tr class="separator:a26c3ceb82a398663284690c898a5354d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -298,9 +298,8 @@ Functions</h2></td></tr>
|
|
|
298
298
|
</div><div class="memdoc">
|
|
299
299
|
|
|
300
300
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00291">291</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
301
|
-
<div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *ret = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &bb
|
|
301
|
+
<div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *ret = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &bb:*F)</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &inst: bb)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span> (llvm::isa<CallInst>(inst) || llvm::isa<InvokeInst>(inst)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  || llvm::isa<CallBrInst>(inst))</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(const_cast<Instruction*>(&inst));</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">// assert(cs.getCalledFunction() &&</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// "Indirect call detected in thunk func");</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="comment">// assert(ret == nullptr && "multiple callsites in thunk func");</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  ret = cs.getCalledFunction();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> }</div><div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
|
|
302
302
|
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00294">BasicTypes.h:294</a></div></div>
|
|
303
|
-
<div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
|
|
304
303
|
</div><!-- fragment -->
|
|
305
304
|
</div>
|
|
306
305
|
</div>
|
|
@@ -397,12 +396,11 @@ Functions</h2></td></tr>
|
|
|
397
396
|
<p>TODO: on mac os function name is an empty string after demangling </p>
|
|
398
397
|
|
|
399
398
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00454">454</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
400
|
-
<div class="fragment"><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">if</span> (
|
|
399
|
+
<div class="fragment"><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">if</span> (F->isDeclaration())</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordtype">string</span> funcName = F->getName().str();</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>.size(), <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>) != 0)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(funcName.c_str());</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">"::"</span>);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">if</span> (colon == string::npos)</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  }</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon+2));</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() > 0 && (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>) == 0))</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> }</div><div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00046">CPPUtil.h:46</a></div></div>
|
|
401
400
|
<div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a1dd17b240663bc9412adefde82385e02"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">SVF::cppUtil::DemangledName::funcName</a></div><div class="ttdeci">std::string funcName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00049">CPPUtil.h:49</a></div></div>
|
|
402
401
|
<div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a5cd207bce618521166e6fa235014b297"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">SVF::cppUtil::DemangledName::className</a></div><div class="ttdeci">std::string className</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00048">CPPUtil.h:48</a></div></div>
|
|
403
402
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1cf2e4671b16b477cc779c72f2419234"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">SVF::cppUtil::getBeforeBrackets</a></div><div class="ttdeci">std::string getBeforeBrackets(const std::string &name)</div></div>
|
|
404
403
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1007c092efaeae41002efd91b803a7f6"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div></div>
|
|
405
|
-
<div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
|
|
406
404
|
<div class="ttc" id="CPPUtil_8cpp_html_a74958d1db4b08e58aee58557d386c24b"><div class="ttname"><a href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a></div><div class="ttdeci">const string vfunPreLabel</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00048">CPPUtil.cpp:48</a></div></div>
|
|
407
405
|
</div><!-- fragment -->
|
|
408
406
|
</div>
|
|
@@ -424,10 +422,9 @@ Functions</h2></td></tr>
|
|
|
424
422
|
</div><div class="memdoc">
|
|
425
423
|
|
|
426
424
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00285">285</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
427
|
-
<div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">cppUtil::demangle</a>(
|
|
425
|
+
<div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">cppUtil::demangle</a>(F->getName().str());</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">return</span> dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">isThunkFunc</a>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> }</div><div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_af6117df8aec7f4c077058fa8f00b0243"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">SVF::cppUtil::DemangledName::isThunkFunc</a></div><div class="ttdeci">bool isThunkFunc</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00050">CPPUtil.h:50</a></div></div>
|
|
428
426
|
<div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00046">CPPUtil.h:46</a></div></div>
|
|
429
427
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1007c092efaeae41002efd91b803a7f6"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div></div>
|
|
430
|
-
<div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
|
|
431
428
|
</div><!-- fragment -->
|
|
432
429
|
</div>
|
|
433
430
|
</div>
|
|
@@ -448,12 +445,11 @@ Functions</h2></td></tr>
|
|
|
448
445
|
</div><div class="memdoc">
|
|
449
446
|
|
|
450
447
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00486">486</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
451
|
-
<div class="fragment"><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">if</span> (
|
|
448
|
+
<div class="fragment"><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">if</span> (F->isDeclaration())</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordtype">string</span> funcName = F->getName().str();</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>.size(), <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>) != 0)</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(funcName.c_str());</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">"::"</span>);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">if</span> (colon == string::npos)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon+2));</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() > 0 && dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() > 0 &&</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() + 1 == dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() &&</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.compare(0, 1, <span class="stringliteral">"~"</span>) == 0 &&</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.substr(1)) == 0)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> }</div><div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00046">CPPUtil.h:46</a></div></div>
|
|
452
449
|
<div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a1dd17b240663bc9412adefde82385e02"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">SVF::cppUtil::DemangledName::funcName</a></div><div class="ttdeci">std::string funcName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00049">CPPUtil.h:49</a></div></div>
|
|
453
450
|
<div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a5cd207bce618521166e6fa235014b297"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">SVF::cppUtil::DemangledName::className</a></div><div class="ttdeci">std::string className</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00048">CPPUtil.h:48</a></div></div>
|
|
454
451
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1cf2e4671b16b477cc779c72f2419234"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">SVF::cppUtil::getBeforeBrackets</a></div><div class="ttdeci">std::string getBeforeBrackets(const std::string &name)</div></div>
|
|
455
452
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1007c092efaeae41002efd91b803a7f6"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div></div>
|
|
456
|
-
<div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
|
|
457
453
|
<div class="ttc" id="CPPUtil_8cpp_html_a74958d1db4b08e58aee58557d386c24b"><div class="ttname"><a href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a></div><div class="ttdeci">const string vfunPreLabel</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00048">CPPUtil.cpp:48</a></div></div>
|
|
458
454
|
</div><!-- fragment -->
|
|
459
455
|
</div>
|
|
@@ -514,9 +510,7 @@ Functions</h2></td></tr>
|
|
|
514
510
|
<p>define linkonce_odr dso_local void ::B1()(class.B1* this) unnamed_addr #6 comdat this.addr = alloca class.B1*, align 8 store class.B1* this, class.B1** this.addr, align 8 this1 = load class.B1*, class.B1** this.addr, align 8 %0 = bitcast class.B1* this1 to class.A* call void ::A()(class.A* %0) </p>
|
|
515
511
|
|
|
516
512
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00339">339</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
517
|
-
<div class="fragment"><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">if</span> (thisPtr1 == thisPtr2)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *thisU : thisPtr1->users())</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a>
|
|
518
|
-
<div class="ttc" id="CFLGrammar_8txt_html_af94ae7efab42c57589a313f6cc7ada63"><div class="ttname"><a href="CFLGrammar_8txt.html#af94ae7efab42c57589a313f6cc7ada63">load</a></div><div class="ttdeci">F F store V load</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00009">CFLGrammar.txt:9</a></div></div>
|
|
519
|
-
<div class="ttc" id="CFLGrammar_8txt_html_a92d5a256d74eadeb5bfa131b84067f0d"><div class="ttname"><a href="CFLGrammar_8txt.html#a92d5a256d74eadeb5bfa131b84067f0d">store</a></div><div class="ttdeci">Memflow load store</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00030">CFLGrammar.txt:30</a></div></div>
|
|
513
|
+
<div class="fragment"><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">if</span> (thisPtr1 == thisPtr2)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *thisU : thisPtr1->users())</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a> *store = SVFUtil::dyn_cast<StoreInst>(thisU))</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *storeU : store->getPointerOperand()->users())</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *load = SVFUtil::dyn_cast<LoadInst>(storeU))</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">if</span>(load->getNextNode() && SVFUtil::isa<CastInst>(load->getNextNode()))</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> SVFUtil::cast<CastInst>(load->getNextNode()) == (thisPtr2->stripPointerCasts());</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> }</div><div class="ttc" id="namespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00098">BasicTypes.h:98</a></div></div>
|
|
520
514
|
<div class="ttc" id="namespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
|
|
521
515
|
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
|
|
522
516
|
</div><!-- fragment -->
|
|
@@ -68,7 +68,7 @@ $(function() {
|
|
|
68
68
|
<div class="contents">
|
|
69
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-FE/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="LeakChecker_8h.html">SABER/LeakChecker.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="FileChecker_8h.html">SABER/FileChecker.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="DoubleFreeChecker_8h.html">SABER/DoubleFreeChecker.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="Z3Expr_8h.html">Util/Z3Expr.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</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> <span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</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="l00041"></a><span class="lineno"> 41</span>  llvm::cl::desc(<span class="stringliteral">"<input bitcode>"</span>), llvm::cl::init(<span class="stringliteral">"-"</span>));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</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="l00044"></a><span class="lineno"> 44</span>  llvm::cl::desc(<span class="stringliteral">"Memory Leak Detection"</span>));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</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="l00047"></a><span class="lineno"> 47</span>  llvm::cl::desc(<span class="stringliteral">"File Open/Close Detection"</span>));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</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="l00050"></a><span class="lineno"> 50</span>  llvm::cl::desc(<span class="stringliteral">"Double Free Detection"</span>));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 52</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="l00053"></a><span class="lineno"> 53</span> {</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>  <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</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="l00057"></a><span class="lineno"> 57</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</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="l00059"></a><span class="lineno"> 59</span>  cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="stringliteral">"Source-Sink Bug Detector\n"</span>);</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>  <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</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>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  svfModule-><a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a> *saber;</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>  <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</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="l00075"></a><span class="lineno"> 75</span>  saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FileChecker.html">FileChecker</a>();</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#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DoubleFreeChecker.html">DoubleFreeChecker</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a>(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  saber-><a class="code" href="classSVF_1_1LeakChecker.html#ab3bb79d88d73c8b881d714921e7b5e12">runOnModule</a>(svfModule);</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>  <span class="keywordflow">return</span> 0;</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> }</div><div class="ttc" id="classSVF_1_1LeakChecker_html"><div class="ttname"><a href="classSVF_1_1LeakChecker.html">SVF::LeakChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00042">LeakChecker.h:42</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1DoubleFreeChecker_html"><div class="ttname"><a href="classSVF_1_1DoubleFreeChecker.html">SVF::DoubleFreeChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="DoubleFreeChecker_8h_source.html#l00042">DoubleFreeChecker.h:42</a></div></div>
|
|
71
|
-
<div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#
|
|
71
|
+
<div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00182">CFLGraph.h:182</a></div></div>
|
|
72
72
|
<div class="ttc" id="saber_8cpp_html_a2d332c504284f0bc181289ee67479845"><div class="ttname"><a href="saber_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a></div><div class="ttdeci">static llvm::cl::opt< std::string > InputFilename(cl::Positional, llvm::cl::desc("<input bitcode>"), llvm::cl::init("-"))</div></div>
|
|
73
73
|
<div class="ttc" id="FileChecker_8h_html"><div class="ttname"><a href="FileChecker_8h.html">FileChecker.h</a></div></div>
|
|
74
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#l00052">saber.cpp:52</a></div></div>
|
|
@@ -158,6 +158,7 @@ var searchData=
|
|
|
158
158
|
['addindirectforkedge',['addIndirectForkEdge',['../classSVF_1_1ThreadCallGraph.html#a579dd874301280f7c9750c2a22f065c7',1,'SVF::ThreadCallGraph']]],
|
|
159
159
|
['addindirectparforedge',['addIndirectParForEdge',['../classSVF_1_1ThreadCallGraph.html#a9258b680de64d8d2fdd1cb9aed8ae428',1,'SVF::ThreadCallGraph']]],
|
|
160
160
|
['addinedge',['addInEdge',['../classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618',1,'SVF::SVFVar']]],
|
|
161
|
+
['addinedgewithkind',['addInEdgeWithKind',['../classSVF_1_1CFLNode.html#a348aaed58a3ec2a14fd270f98c5f0486',1,'SVF::CFLNode']]],
|
|
161
162
|
['addinicfgedge',['addInICFGEdge',['../classSVF_1_1SVFLoop.html#ae55b0dee93fb4298a1544d09312a258d',1,'SVF::SVFLoop']]],
|
|
162
163
|
['addinstances',['addInstances',['../classSVF_1_1CHGraph.html#a5ee7e559425045f3af5c35ea6d6f03ee',1,'SVF::CHGraph']]],
|
|
163
164
|
['addinteredgefromaptofp',['addInterEdgeFromAPToFP',['../classSVF_1_1VFG.html#a6fd24c001a6daedf591974ba27140461',1,'SVF::VFG::addInterEdgeFromAPToFP(ActualParmVFGNode *src, FormalParmVFGNode *dst, CallSiteID csId)'],['../classSVF_1_1VFG.html#a185ed4079babc0e0f72c4bf223342ee2',1,'SVF::VFG::addInterEdgeFromAPToFP(NodeID src, NodeID dst, CallSiteID csId)']]],
|
|
@@ -206,6 +207,7 @@ var searchData=
|
|
|
206
207
|
['addoffsetvalue',['addOffsetValue',['../classSVF_1_1LocationSet.html#aa2682a73f1ab2c32326fb4e0d5b3586b',1,'SVF::LocationSet']]],
|
|
207
208
|
['addopvar',['addOpVar',['../classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37',1,'SVF::PhiStmt']]],
|
|
208
209
|
['addoutedge',['addOutEdge',['../classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f',1,'SVF::SVFVar']]],
|
|
210
|
+
['addoutedgewithkind',['addOutEdgeWithKind',['../classSVF_1_1CFLNode.html#ac1e79fcff5089ce56b14783b2014774b',1,'SVF::CFLNode']]],
|
|
209
211
|
['addoutgoingaddredge',['addOutgoingAddrEdge',['../classSVF_1_1ConstraintNode.html#af129941c522dbc1b0fe94f84eea0d97a',1,'SVF::ConstraintNode']]],
|
|
210
212
|
['addoutgoingcopyedge',['addOutgoingCopyEdge',['../classSVF_1_1ConstraintNode.html#a2395948518a1befb7a3762bbad6adf9f',1,'SVF::ConstraintNode']]],
|
|
211
213
|
['addoutgoingdirectedge',['addOutgoingDirectEdge',['../classSVF_1_1ConstraintNode.html#a230e89618c562c7aed63b4457ec69637',1,'SVF::ConstraintNode']]],
|
|
@@ -221,8 +223,8 @@ var searchData=
|
|
|
221
223
|
['addptrelementtype',['addptrElementType',['../classSVF_1_1SVFModule.html#a4ca35d1a1c7fe2152bb11681624f27ac',1,'SVF::SVFModule']]],
|
|
222
224
|
['addptrinuncalledfunction',['addPtrInUncalledFunction',['../classSVF_1_1SVFModule.html#ad09d9748b6e3fd1be3a751f7aeef68a8',1,'SVF::SVFModule']]],
|
|
223
225
|
['addpts',['addPts',['../classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a',1,'SVF::PTData::addPts()'],['../classSVF_1_1VersionedPTData.html#ae00316730227769a39b22d3df1b6d38a',1,'SVF::VersionedPTData::addPts()'],['../classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1',1,'SVF::MutablePTData::addPts(const Key &dstKey, const Data &element) override'],['../classSVF_1_1MutablePTData.html#a8cdeda0ef0e976102d05de3004bd8c8a',1,'SVF::MutablePTData::addPts(DataSet &d, const Data &e)'],['../classSVF_1_1MutableDiffPTData.html#a717c166c5efdf2e1d71be1772fc0898d',1,'SVF::MutableDiffPTData::addPts()'],['../classSVF_1_1MutableDFPTData.html#ab75373d16f57dbbf1e9472e9a27d6b4b',1,'SVF::MutableDFPTData::addPts(const Key &dstKey, const Key &srcKey) override'],['../classSVF_1_1MutableDFPTData.html#ab7d1a3464e561029573f6f3c13c9bff4',1,'SVF::MutableDFPTData::addPts(DataSet &d, const Data &e)'],['../classSVF_1_1MutableVersionedPTData.html#a00a88cc3e802921c6a0951801ec712a6',1,'SVF::MutableVersionedPTData::addPts(const Key &k, const Data &element) override'],['../classSVF_1_1MutableVersionedPTData.html#af39232f64ff0ede20161c7f265da6cf5',1,'SVF::MutableVersionedPTData::addPts(const VersionedKey &vk, const Data &element) override'],['../classSVF_1_1PersistentPTData.html#a8d53322eadc657ed88a8b724647070b2',1,'SVF::PersistentPTData::addPts()'],['../classSVF_1_1PersistentDiffPTData.html#a9f748619f67f3ff9c4c4a429e6614989',1,'SVF::PersistentDiffPTData::addPts()'],['../classSVF_1_1PersistentDFPTData.html#a95df7d565ba8e990b61b1c932c8d4273',1,'SVF::PersistentDFPTData::addPts()'],['../classSVF_1_1PersistentVersionedPTData.html#a7f3730473af9218bea520ec0498fb4ac',1,'SVF::PersistentVersionedPTData::addPts(const Key &k, const Data &element) override'],['../classSVF_1_1PersistentVersionedPTData.html#ae4877cf4db5b1da5e7d05fe65ae8ed32',1,'SVF::PersistentVersionedPTData::addPts(const VersionedKey &vk, const Data &element) override'],['../classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff',1,'SVF::BVDataPTAImpl::addPts()'],['../classSVF_1_1CondPTAImpl.html#a08037f32b927fe2e6be47a61a060463c',1,'SVF::CondPTAImpl::addPts()']]],
|
|
224
|
-
['addr',['Addr',['../classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3',1,'SVF::ConstraintEdge::Addr()'],['../classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75af866301a661c59a7aa3182c0a7fc0c92',1,'SVF::VFGNode::Addr()'],['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197',1,'SVF::SVFStmt::Addr()']
|
|
225
|
-
['addrbar',['addrbar',['../
|
|
226
|
+
['addr',['Addr',['../classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3',1,'SVF::ConstraintEdge::Addr()'],['../classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75af866301a661c59a7aa3182c0a7fc0c92',1,'SVF::VFGNode::Addr()'],['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197',1,'SVF::SVFStmt::Addr()']]],
|
|
227
|
+
['addrbar',['addrbar',['../PEGGrammar_8txt.html#ac0ba65b20304c39926bf018842207e87',1,'PEGGrammar.txt']]],
|
|
226
228
|
['addrcgedge',['AddrCGEdge',['../classSVF_1_1AddrCGEdge.html',1,'SVF::AddrCGEdge'],['../classSVF_1_1AddrCGEdge.html#a9c8da69a469e51d83c5009ba2685bcf6',1,'SVF::AddrCGEdge::AddrCGEdge()'],['../classSVF_1_1AddrCGEdge.html#a3e07c316815631b1ddfd35ae3781daab',1,'SVF::AddrCGEdge::AddrCGEdge(const AddrCGEdge &)'],['../classSVF_1_1AddrCGEdge.html#a131779667553499b85423e1932664252',1,'SVF::AddrCGEdge::AddrCGEdge(ConstraintNode *s, ConstraintNode *d, EdgeID id)']]],
|
|
227
229
|
['addrcgedgeset',['AddrCGEdgeSet',['../classSVF_1_1ConstraintGraph.html#a5bbd6df25027d26911f5d8d6a10881dc',1,'SVF::ConstraintGraph']]],
|
|
228
230
|
['addrefsideeffectofcallsite',['addRefSideEffectOfCallSite',['../classSVF_1_1MRGenerator.html#a83f5087e84eb7a18976cbd3a446605ee',1,'SVF::MRGenerator']]],
|
|
@@ -9,7 +9,7 @@ var searchData=
|
|
|
9
9
|
['pagedge',['pagEdge',['../classSVF_1_1StmtVFGNode.html#ab5f48de8258f92bb7b9d411e178beb49',1,'SVF::StmtVFGNode::pagEdge()'],['../namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152',1,'SVF::PAGEdge()']]],
|
|
10
10
|
['pagedges',['pagEdges',['../classSVF_1_1ICFGNode.html#a12ce3aabc1bd3bae7caa9be9ec0a6a71',1,'SVF::ICFGNode']]],
|
|
11
11
|
['pagedgesetty',['PAGEdgeSetTy',['../classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2',1,'SVF::SVFStmt']]],
|
|
12
|
-
['pagedgetofunmap',['
|
|
12
|
+
['pagedgetofunmap',['PAGEdgeToFunMap',['../classSVF_1_1MRGenerator.html#a82be01b460a498c07fb6a8aba853ed31',1,'SVF::MRGenerator::PAGEdgeToFunMap()'],['../classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58',1,'SVF::MRGenerator::pagEdgeToFunMap()']]],
|
|
13
13
|
['pagedgetosetmapty',['PAGEdgeToSetMapTy',['../classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa',1,'SVF::SVFStmt']]],
|
|
14
14
|
['pagedgetostmtvfgnodemap',['PAGEdgeToStmtVFGNodeMap',['../classSVF_1_1VFG.html#a462fe6eefc55a436f90f91adeb34726f',1,'SVF::VFG']]],
|
|
15
15
|
['pagedgetostmtvfgnodemapty',['PAGEdgeToStmtVFGNodeMapTy',['../classSVF_1_1VFG.html#ab37b067a59b52c472a284eabbeba43ff',1,'SVF::VFG']]],
|
|
@@ -115,7 +115,7 @@ var searchData=
|
|
|
115
115
|
['persversionedptdataty',['PersVersionedPTDataTy',['../classSVF_1_1BVDataPTAImpl.html#ae028ae29bdc799f35777b82a39faf5e8',1,'SVF::BVDataPTAImpl']]],
|
|
116
116
|
['phi',['Phi',['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9',1,'SVF::SVFStmt::Phi()'],['../classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1',1,'SVF::MemSSA::PHI()']]],
|
|
117
117
|
['phinode',['PHINode',['../namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674',1,'SVF']]],
|
|
118
|
-
['phinodemap',['
|
|
118
|
+
['phinodemap',['PHINodeMap',['../classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b',1,'SVF::SVFIR::PHINodeMap()'],['../classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9',1,'SVF::SVFIR::phiNodeMap()']]],
|
|
119
119
|
['phiset',['PHISet',['../classSVF_1_1SVFG.html#aef7ee9d802934d51b3761663bdaf0c05',1,'SVF::SVFG::PHISet()'],['../classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f',1,'SVF::MemSSA::PHISet()']]],
|
|
120
120
|
['phistmt',['PhiStmt',['../classSVF_1_1PhiStmt.html',1,'SVF::PhiStmt'],['../classSVF_1_1PhiStmt.html#a74e4c9a108d70aff8acaf3f32a16335f',1,'SVF::PhiStmt::PhiStmt()'],['../classSVF_1_1PhiStmt.html#a7ac7cc8a4fd0c692b45df02fc5166b3b',1,'SVF::PhiStmt::PhiStmt(const PhiStmt &)'],['../classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3',1,'SVF::PhiStmt::PhiStmt(SVFVar *s, const OPVars &opnds, const OpICFGNodeVec &icfgNodes)']]],
|
|
121
121
|
['phisvfgnode',['PHISVFGNode',['../namespaceSVF.html#a71d4e214e049f02bf26537cba6328673',1,'SVF']]],
|
|
@@ -191,7 +191,7 @@ var searchData=
|
|
|
191
191
|
['printlockspan',['PrintLockSpan',['../classSVF_1_1Options.html#ab8a9641b660197b4421fbd6141858c58',1,'SVF::Options']]],
|
|
192
192
|
['printpathcond',['PrintPathCond',['../classSVF_1_1Options.html#ae6b763ff293381ed5da9b07c2e8ae496',1,'SVF::Options::PrintPathCond()'],['../classSVF_1_1SaberCondAllocator.html#a389fd522c1de5b4feed34f29b9709d03',1,'SVF::SaberCondAllocator::printPathCond()']]],
|
|
193
193
|
['printpts',['printPts',['../svf-ex_8cpp.html#ae004a620ad67220b6dd8212a2ad625a9',1,'svf-ex.cpp']]],
|
|
194
|
-
['printquerypts',['
|
|
194
|
+
['printquerypts',['printQueryPTS',['../classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f',1,'SVF::DDAPass::printQueryPTS()'],['../classSVF_1_1Options.html#aabfcfcd67df527cdf587aff5ecc26a10',1,'SVF::Options::PrintQueryPts()']]],
|
|
195
195
|
['printresults',['printResults',['../classSVF_1_1PCG.html#ab8a16eb34da91f2b7cd5a456653b1da0',1,'SVF::PCG']]],
|
|
196
196
|
['printstat',['printStat',['../classSVF_1_1DDAStat.html#ae6fd32471e0b9bf51233a36676658b49',1,'SVF::DDAStat::printStat()'],['../classSVF_1_1ICFGStat.html#af9c004e3532968ae806a3d344ef885ea',1,'SVF::ICFGStat::printStat()'],['../classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a',1,'SVF::MemSSAStat::printStat()'],['../classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88',1,'SVF::SVFGStat::printStat()'],['../classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183',1,'SVF::PointerAnalysis::printStat()'],['../classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe',1,'SVF::SVFStat::printStat()'],['../classSVF_1_1AndersenBase.html#a566830d0c7a1f5cd967bb8f2ab168f8d',1,'SVF::AndersenBase::printStat()']]],
|
|
197
197
|
['printstatperquery',['printStatPerQuery',['../classSVF_1_1DDAStat.html#ae695696e5cd06eb27635887f0de30eff',1,'SVF::DDAStat::printStatPerQuery()'],['../classSVF_1_1SVFStat.html#a2dd8ce8bb1970344533babb9fc8ddd02',1,'SVF::SVFStat::printStatPerQuery()']]],
|
|
@@ -263,14 +263,14 @@ var searchData=
|
|
|
263
263
|
['ptacfinfo',['ptaCFInfo',['../classSVF_1_1ForkJoinAnalysis.html#a1c616b61fbe9c713f51f2a44c4208cfa',1,'SVF::ForkJoinAnalysis']]],
|
|
264
264
|
['ptacfinfobuilder',['PTACFInfoBuilder',['../classSVF_1_1PTACFInfoBuilder.html',1,'SVF::PTACFInfoBuilder'],['../classSVF_1_1PTACFInfoBuilder.html#abf1c70ba37181884e7848f6a7c6acf2c',1,'SVF::PTACFInfoBuilder::PTACFInfoBuilder()']]],
|
|
265
265
|
['ptacgnodeset',['PTACGNodeSet',['../classSVF_1_1TCT.html#afb579a5bdcc0a1c6b075bb9aae36c237',1,'SVF::TCT']]],
|
|
266
|
-
['ptaimplty',['
|
|
266
|
+
['ptaimplty',['ptaImplTy',['../classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36',1,'SVF::PointerAnalysis::ptaImplTy()'],['../classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4d',1,'SVF::PointerAnalysis::PTAImplTy()']]],
|
|
267
267
|
['ptaname',['PTAName',['../classSVF_1_1ContextDDA.html#afb0ab7fc43e6f0331072419e39ae0606',1,'SVF::ContextDDA::PTAName()'],['../classSVF_1_1FlowDDA.html#ab3edece1bfb076bc01d60829615f2fa9',1,'SVF::FlowDDA::PTAName()'],['../classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0',1,'SVF::PointerAnalysis::PTAName()'],['../classSVF_1_1Andersen.html#ad92dbecc91170b235180e59ba307acda',1,'SVF::Andersen::PTAName()'],['../classSVF_1_1FlowSensitive.html#a4f1a0d533381660055210be1e2d7d72a',1,'SVF::FlowSensitive::PTAName()'],['../classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720',1,'SVF::VersionedFlowSensitive::PTAName()']]],
|
|
268
268
|
['ptascev',['PTASCEV',['../classSVF_1_1PTASCEV.html',1,'SVF::PTASCEV'],['../classSVF_1_1PTASCEV.html#afb1582fa355f2ae93a877f4f5bed56d3',1,'SVF::PTASCEV::PTASCEV()'],['../classSVF_1_1PTASCEV.html#a6a134ca4f7f50de053805e75431aa856',1,'SVF::PTASCEV::PTASCEV(const Value *p, const SCEV *s, ScalarEvolution *SE)'],['../classSVF_1_1PTASCEV.html#a3f4fbad38457025f35e151e54ab96b70',1,'SVF::PTASCEV::PTASCEV(const PTASCEV &ptase)']]],
|
|
269
269
|
['ptastat',['PTAStat',['../classSVF_1_1PTAStat.html',1,'SVF::PTAStat'],['../classSVF_1_1PTAStat.html#ac9b65b591200c16c420fbd26710b448f',1,'SVF::PTAStat::PTAStat()']]],
|
|
270
270
|
['ptastat_2ecpp',['PTAStat.cpp',['../PTAStat_8cpp.html',1,'']]],
|
|
271
271
|
['ptastat_2eh',['PTAStat.h',['../PTAStat_8h.html',1,'']]],
|
|
272
|
-
['ptaty',['
|
|
273
|
-
['ptavector',['
|
|
272
|
+
['ptaty',['ptaTy',['../classSVF_1_1PointerAnalysis.html#ade83738ac754d5ffc2a3b497b600cad4',1,'SVF::PointerAnalysis::ptaTy()'],['../classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85',1,'SVF::PointerAnalysis::PTATY()']]],
|
|
273
|
+
['ptavector',['ptaVector',['../classSVF_1_1WPAPass.html#a72a66ae158793f5d1bcb37b655db4446',1,'SVF::WPAPass::ptaVector()'],['../classSVF_1_1DDAPass.html#acc7ad5d3266cb3e24fba0b4db186348a',1,'SVF::DDAPass::PTAVector()'],['../classSVF_1_1WPAPass.html#ad4e3d480ebcc6bbbb7bcc8dc3df8663e',1,'SVF::WPAPass::PTAVector()']]],
|
|
274
274
|
['ptbackingtype',['PTBackingType',['../classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8a',1,'SVF::BVDataPTAImpl']]],
|
|
275
275
|
['ptcache',['ptCache',['../classSVF_1_1PersistentPTData.html#a146a25bf9ae76f4c3c117433df9d382f',1,'SVF::PersistentPTData::ptCache()'],['../classSVF_1_1PersistentDiffPTData.html#a444bc59754b4c365327b7ef44baadcd2',1,'SVF::PersistentDiffPTData::ptCache()'],['../classSVF_1_1PersistentDFPTData.html#af86313e37c5177e45456f813b9b46a4f',1,'SVF::PersistentDFPTData::ptCache()'],['../classSVF_1_1BVDataPTAImpl.html#a94acf249e50ad56f966ddad6843c18f8',1,'SVF::BVDataPTAImpl::ptCache()']]],
|
|
276
276
|
['ptd',['ptD',['../classSVF_1_1BVDataPTAImpl.html#aee07488c4d53551826439d79b28e2e6d',1,'SVF::BVDataPTAImpl::ptD()'],['../classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce',1,'SVF::CondPTAImpl::ptD()']]],
|
|
@@ -286,7 +286,7 @@ var searchData=
|
|
|
286
286
|
['ptronlysvfg',['PTRONLYSVFG',['../classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d',1,'SVF::VFG']]],
|
|
287
287
|
['ptronlysvfg_5fopt',['PTRONLYSVFG_OPT',['../classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd',1,'SVF::VFG']]],
|
|
288
288
|
['ptrsinuncalledfunctions',['ptrsInUncalledFunctions',['../classSVF_1_1SVFModule.html#a816a7065cd2cf664626ee023f9dfbd1d',1,'SVF::SVFModule']]],
|
|
289
|
-
['ptrtobvptsmap',['
|
|
289
|
+
['ptrtobvptsmap',['ptrToBVPtsMap',['../classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e',1,'SVF::CondPTAImpl::ptrToBVPtsMap()'],['../classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b',1,'SVF::CondPTAImpl::PtrToBVPtsMap()']]],
|
|
290
290
|
['ptrtocptsmap',['ptrToCPtsMap',['../classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a',1,'SVF::CondPTAImpl::ptrToCPtsMap()'],['../classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09',1,'SVF::CondPTAImpl::PtrToCPtsMap()']]],
|
|
291
291
|
['ptrtonsmap',['PtrToNSMap',['../classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d',1,'SVF::CondPTAImpl']]],
|
|
292
292
|
['ptsallprint',['PTSAllPrint',['../classSVF_1_1Options.html#a113ee30422ef08b6790eed9a83277b9c',1,'SVF::Options']]],
|
|
@@ -67,6 +67,8 @@ var searchData=
|
|
|
67
67
|
['removeallindirectsvfgedges',['removeAllIndirectSVFGEdges',['../classSVF_1_1VersionedFlowSensitive.html#a275095f60640d862034ad173af3371c3',1,'SVF::VersionedFlowSensitive']]],
|
|
68
68
|
['removeback',['removeBack',['../classSVF_1_1FILOWorkList.html#a10c20d2c670af8de5dcbe6f433ca83ee',1,'SVF::FILOWorkList']]],
|
|
69
69
|
['removecandidates',['removeCandidates',['../classSVF_1_1WPAMinimumSolver.html#aa6d8de95ddf703fdac33ef1216ce4aff',1,'SVF::WPAMinimumSolver']]],
|
|
70
|
+
['removecflinedge',['removeCFLInEdge',['../classSVF_1_1CFLNode.html#a60dfc3e421558eecee5065e8ae5f984a',1,'SVF::CFLNode']]],
|
|
71
|
+
['removecfloutedge',['removeCFLOutEdge',['../classSVF_1_1CFLNode.html#a821078d812986c488932610063d7509f',1,'SVF::CFLNode']]],
|
|
70
72
|
['removeconstraintnode',['removeConstraintNode',['../classSVF_1_1ConstraintGraph.html#a9e21bc9b86080b4059f0907e9a7b33f3',1,'SVF::ConstraintGraph']]],
|
|
71
73
|
['removecxtstmttospan',['removeCxtStmtToSpan',['../classSVF_1_1LockAnalysis.html#a0b21446e6d5dfc1b5d0ebd75895225dd',1,'SVF::LockAnalysis']]],
|
|
72
74
|
['removedirectedge',['removeDirectEdge',['../classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244',1,'SVF::ConstraintGraph']]],
|
|
@@ -131,7 +133,7 @@ var searchData=
|
|
|
131
133
|
['resulttype',['ResultType',['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html#a052f7cd3a81e368060f132bf0268fa68',1,'SVF::SVFUtil::cast_retty_impl< To, std::unique_ptr< From > >']]],
|
|
132
134
|
['resumeinst',['ResumeInst',['../namespaceSVF.html#a8c685f6bff3a67bf7fe3557dbfa84caa',1,'SVF']]],
|
|
133
135
|
['resver',['resVer',['../classSVF_1_1MSSADEF.html#a72560a998968ae2dbc6e5aa8a7e9f813',1,'SVF::MSSADEF']]],
|
|
134
|
-
['ret',['
|
|
136
|
+
['ret',['ret',['../classSVF_1_1CallICFGNode.html#a6c27c0d796b3d4becdebeba93f4fc785',1,'SVF::CallICFGNode::ret()'],['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af',1,'SVF::SVFStmt::Ret()']]],
|
|
135
137
|
['ret_5ftype',['ret_type',['../structSVF_1_1SVFUtil_1_1cast__retty__impl.html#a5f8f6d651931eba7e0fa14c26a691a04',1,'SVF::SVFUtil::cast_retty_impl::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_4.html#ad0bc349135b60cc51fd040b615a979f7',1,'SVF::SVFUtil::cast_retty_impl< To, const From >::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01From_01_5_01_4.html#a86c02dc15b65d0c052ea4447b3fb6333',1,'SVF::SVFUtil::cast_retty_impl< To, From * >::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5_01_4.html#a98a60de95a331a34dcbad6da9961a9b7',1,'SVF::SVFUtil::cast_retty_impl< To, const From * >::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5const_01_4.html#add8668ca96bbf0808c146cc81c62267c',1,'SVF::SVFUtil::cast_retty_impl< To, const From *const >::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html#a3bf80190e39c339d4e3ec703789ae845',1,'SVF::SVFUtil::cast_retty_impl< To, std::unique_ptr< From > >::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__wrap.html#af3d80ab43e47626f32c91a6c4454e82e',1,'SVF::SVFUtil::cast_retty_wrap::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html#ad989c130f2b6cd5a0f1ba0c7abd62b9a',1,'SVF::SVFUtil::cast_retty_wrap< To, FromTy, FromTy >::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty.html#aea91708cabb8176b031f1c1fdb89a15b',1,'SVF::SVFUtil::cast_retty::ret_type()']]],
|
|
136
138
|
['retargetdstofedge',['reTargetDstOfEdge',['../classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722',1,'SVF::ConstraintGraph']]],
|
|
137
139
|
['retargetedgesofainfout',['retargetEdgesOfAInFOut',['../classSVF_1_1SVFGOPT.html#abefe3efa0232106f1843351ff6dd1063',1,'SVF::SVFGOPT']]],
|
|
@@ -147,7 +149,7 @@ var searchData=
|
|
|
147
149
|
['retmssamu',['RetMSSAMU',['../classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9ba255f3e3fc50f3a8d9a8bd5800b1b4594',1,'SVF::MSSAMU']]],
|
|
148
150
|
['retmu',['RetMU',['../classSVF_1_1RetMU.html',1,'SVF::RetMU< Cond >'],['../classSVF_1_1SVFG.html#a047573d70182da351b9e3bbf66ca0056',1,'SVF::SVFG::RETMU()'],['../classSVF_1_1MemSSA.html#a953a56a65ee36fd1c78b29179cd3f33a',1,'SVF::MemSSA::RETMU()'],['../classSVF_1_1RetMU.html#a8cd41b018ddef450d17a20ea83ce3fee',1,'SVF::RetMU::RetMU()']]],
|
|
149
151
|
['retnode',['RetNode',['../classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98',1,'SVF::SVFVar']]],
|
|
150
|
-
['retpe',['RetPE',['../classSVF_1_1RetPE.html',1,'SVF::RetPE'],['../
|
|
152
|
+
['retpe',['RetPE',['../classSVF_1_1RetPE.html',1,'SVF::RetPE'],['../classSVF_1_1RetPE.html#ab4da5e54fec989eab5640acc8c4fe215',1,'SVF::RetPE::RetPE()'],['../classSVF_1_1RetPE.html#a0af89e939e91a980a083f931b209aea0',1,'SVF::RetPE::RetPE(const RetPE &)'],['../classSVF_1_1RetPE.html#a60cb8a19e352547b22f197f4ca8e19d8',1,'SVF::RetPE::RetPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, const FunExitICFGNode *e, GEdgeKind k=SVFStmt::Ret)'],['../classSVF_1_1RetCFGEdge.html#ad4bbb9881dff7b715c7a70b92baf376c',1,'SVF::RetCFGEdge::retPE()']]],
|
|
151
153
|
['retpebegin',['retPEBegin',['../classSVF_1_1FormalRetVFGNode.html#ad81c6e6579293352ecb59345538b2132',1,'SVF::FormalRetVFGNode']]],
|
|
152
154
|
['retpeend',['retPEEnd',['../classSVF_1_1FormalRetVFGNode.html#adae36045df1057e551d92aa7bfb236f9',1,'SVF::FormalRetVFGNode']]],
|
|
153
155
|
['retpes',['retPEs',['../classSVF_1_1FormalRetVFGNode.html#a5fa2fc654385d0fab018053e89565157',1,'SVF::FormalRetVFGNode']]],
|