svf-tools 1.0.340 → 1.0.344
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +15 -15
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h.html +7 -7
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +69 -69
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +64 -61
- package/SVF-doxygen/html/html/ICFG_8h_source.html +46 -46
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +18 -18
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +12 -12
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -17
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +17 -17
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +32 -32
- package/SVF-doxygen/html/html/SVFG_8h_source.html +27 -27
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +32 -32
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +14 -14
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +16 -15
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +30 -28
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +44 -42
- package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +20 -20
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/VFG_8h_source.html +19 -19
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/annotated.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +158 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +852 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallMU-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +60 -60
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +52 -52
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +150 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +618 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +149 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +624 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +413 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +224 -217
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +74 -71
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +399 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +146 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +494 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +61 -61
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1MHP-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +198 -198
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +70 -47
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +17 -15
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +141 -106
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +118 -118
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +109 -109
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +153 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +696 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +160 -160
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +76 -76
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +133 -133
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +62 -62
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +220 -220
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +42 -42
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +96 -96
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/html/classes.html +16 -16
- package/SVF-doxygen/html/html/functions_a.html +59 -59
- package/SVF-doxygen/html/html/functions_c.html +74 -71
- package/SVF-doxygen/html/html/functions_eval_c.html +5 -2
- package/SVF-doxygen/html/html/functions_f.html +14 -14
- package/SVF-doxygen/html/html/functions_func.html +56 -56
- package/SVF-doxygen/html/html/functions_func_c.html +28 -28
- package/SVF-doxygen/html/html/functions_func_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func_g.html +88 -88
- package/SVF-doxygen/html/html/functions_func_h.html +17 -17
- package/SVF-doxygen/html/html/functions_func_i.html +31 -29
- package/SVF-doxygen/html/html/functions_func_m.html +1 -1
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_r.html +6 -6
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_func_t.html +7 -7
- package/SVF-doxygen/html/html/functions_func_u.html +3 -3
- package/SVF-doxygen/html/html/functions_g.html +88 -88
- package/SVF-doxygen/html/html/functions_h.html +16 -16
- package/SVF-doxygen/html/html/functions_i.html +37 -35
- package/SVF-doxygen/html/html/functions_m.html +2 -2
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +10 -10
- package/SVF-doxygen/html/html/functions_p.html +21 -30
- package/SVF-doxygen/html/html/functions_r.html +6 -6
- package/SVF-doxygen/html/html/functions_s.html +15 -14
- package/SVF-doxygen/html/html/functions_t.html +13 -15
- package/SVF-doxygen/html/html/functions_type.html +1 -1
- package/SVF-doxygen/html/html/functions_type_c.html +24 -24
- package/SVF-doxygen/html/html/functions_type_f.html +3 -3
- package/SVF-doxygen/html/html/functions_type_i.html +2 -2
- package/SVF-doxygen/html/html/functions_type_p.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_type_v.html +2 -2
- package/SVF-doxygen/html/html/functions_u.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_a.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_c.html +11 -11
- package/SVF-doxygen/html/html/functions_vars_f.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/hierarchy.html +7 -7
- package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
- package/SVF-doxygen/html/html/search/all_1.js +58 -58
- package/SVF-doxygen/html/html/search/all_10.js +13 -14
- package/SVF-doxygen/html/html/search/all_12.js +5 -5
- package/SVF-doxygen/html/html/search/all_13.js +9 -8
- package/SVF-doxygen/html/html/search/all_14.js +6 -6
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +37 -35
- package/SVF-doxygen/html/html/search/all_6.js +12 -12
- package/SVF-doxygen/html/html/search/all_7.js +62 -61
- package/SVF-doxygen/html/html/search/all_8.js +17 -17
- package/SVF-doxygen/html/html/search/all_9.js +19 -19
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/classes_2.js +1 -1
- package/SVF-doxygen/html/html/search/classes_5.js +2 -2
- package/SVF-doxygen/html/html/search/classes_6.js +1 -1
- package/SVF-doxygen/html/html/search/classes_8.js +2 -2
- package/SVF-doxygen/html/html/search/classes_e.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_2.js +2 -1
- package/SVF-doxygen/html/html/search/functions_0.js +55 -55
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_11.js +4 -4
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_2.js +10 -10
- package/SVF-doxygen/html/html/search/functions_5.js +4 -4
- package/SVF-doxygen/html/html/search/functions_6.js +61 -61
- package/SVF-doxygen/html/html/search/functions_7.js +17 -17
- package/SVF-doxygen/html/html/search/functions_8.js +16 -16
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +2 -2
- package/SVF-doxygen/html/html/search/functions_f.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_0.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +21 -21
- package/SVF-doxygen/html/html/search/typedefs_5.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1.js +2 -2
- package/SVF-doxygen/html/html/search/variables_10.js +0 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +4 -4
- package/SVF-doxygen/html/html/search/variables_6.js +5 -5
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +23 -23
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/DDA/ContextDDA.h +3 -3
- package/include/DDA/DDAClient.h +2 -2
- package/include/DDA/DDAVFSolver.h +2 -2
- package/include/DDA/FlowDDA.h +2 -2
- package/include/Graphs/ICFG.h +32 -32
- package/include/Graphs/ICFGNode.h +33 -33
- package/include/Graphs/ICFGStat.h +11 -11
- package/include/Graphs/PTACallGraph.h +19 -19
- package/include/Graphs/SVFG.h +16 -16
- package/include/Graphs/SVFGNode.h +14 -14
- package/include/Graphs/SVFGOPT.h +1 -1
- package/include/Graphs/ThreadCallGraph.h +25 -25
- package/include/Graphs/VFG.h +10 -10
- package/include/Graphs/VFGNode.h +8 -8
- package/include/MSSA/MSSAMuChi.h +6 -6
- package/include/MSSA/MemRegion.h +24 -24
- package/include/MSSA/MemSSA.h +10 -10
- package/include/MTA/LockResultValidator.h +2 -2
- package/include/MTA/MHP.h +4 -4
- package/include/MTA/PCG.h +1 -1
- package/include/MTA/TCT.h +2 -2
- package/include/MemoryModel/PointerAnalysis.h +12 -12
- package/include/MemoryModel/SVFIR.h +22 -22
- package/include/MemoryModel/SVFStatements.h +11 -11
- package/include/MemoryModel/SymbolTableInfo.h +15 -9
- package/include/SABER/LeakChecker.h +4 -4
- package/include/SABER/ProgSlice.h +2 -2
- package/include/SABER/SaberCheckerAPI.h +4 -4
- package/include/SABER/SaberSVFGBuilder.h +1 -1
- package/include/SABER/SrcSnkDDA.h +1 -1
- package/include/SVF-FE/ICFGBuilder.h +4 -4
- package/include/SVF-FE/SVFIRBuilder.h +5 -5
- package/include/Util/Options.h +1 -1
- package/lib/DDA/ContextDDA.cpp +3 -3
- package/lib/DDA/DDAClient.cpp +1 -1
- package/lib/DDA/FlowDDA.cpp +1 -1
- package/lib/Graphs/ICFG.cpp +88 -71
- package/lib/Graphs/PTACallGraph.cpp +5 -5
- package/lib/Graphs/SVFG.cpp +7 -7
- package/lib/Graphs/ThreadCallGraph.cpp +6 -6
- package/lib/Graphs/VFG.cpp +6 -6
- package/lib/MSSA/MemRegion.cpp +17 -17
- package/lib/MSSA/MemSSA.cpp +3 -3
- package/lib/MTA/LockAnalysis.cpp +4 -4
- package/lib/MTA/MHP.cpp +5 -5
- package/lib/MTA/MTAResultValidator.cpp +1 -1
- package/lib/MTA/PCG.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +10 -10
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
- package/lib/MemoryModel/SVFIR.cpp +5 -5
- package/lib/MemoryModel/SVFStatements.cpp +53 -49
- package/lib/MemoryModel/SVFVariables.cpp +10 -10
- package/lib/MemoryModel/SymbolTableInfo.cpp +12 -7
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/FileChecker.cpp +2 -2
- package/lib/SABER/LeakChecker.cpp +8 -8
- package/lib/SABER/ProgSlice.cpp +2 -2
- package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
- package/lib/SVF-FE/Graph2Json.cpp +5 -5
- package/lib/SVF-FE/ICFGBuilder.cpp +31 -25
- package/lib/SVF-FE/SVFIRBuilder.cpp +8 -8
- package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
- package/lib/Util/Options.cpp +3 -3
- package/lib/Util/PTAStat.cpp +3 -3
- package/lib/Util/SVFUtil.cpp +2 -0
- package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
- package/lib/WPA/Andersen.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +2 -2
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
- package/lib/WPA/WPAPass.cpp +4 -4
- package/package.json +1 -1
|
@@ -95,10 +95,10 @@ Public Types</h2></td></tr>
|
|
|
95
95
|
<a class="el" href="classSVF_1_1LeakChecker.html#a42f54433e5ca60928f3c329ab545842da20b4563d5fc09a0a076800cd02f238f1">GLOBAL_LEAK</a>
|
|
96
96
|
}</td></tr>
|
|
97
97
|
<tr class="separator:a42f54433e5ca60928f3c329ab545842d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
98
|
-
<tr class="memitem:
|
|
99
|
-
<tr class="separator:
|
|
100
|
-
<tr class="memitem:
|
|
101
|
-
<tr class="separator:
|
|
98
|
+
<tr class="memitem:a90c7275babe222f006233d2f2d2b6700"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1LeakChecker.html#a90c7275babe222f006233d2f2d2b6700">SVFGNodeToCSIDMap</a></td></tr>
|
|
99
|
+
<tr class="separator:a90c7275babe222f006233d2f2d2b6700"><td class="memSeparator" colspan="2"> </td></tr>
|
|
100
|
+
<tr class="memitem:aa0d4c66929f8ae39cf5efc77e873f642"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1LeakChecker.html#aa0d4c66929f8ae39cf5efc77e873f642">CSWorkList</a></td></tr>
|
|
101
|
+
<tr class="separator:aa0d4c66929f8ae39cf5efc77e873f642"><td class="memSeparator" colspan="2"> </td></tr>
|
|
102
102
|
<tr class="memitem:af1e1f0fd38f72dcdfb5daa3d8af9538b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1ProgSlice.html#a684e44ade783439c6f77a8d84eed282c">ProgSlice::VFWorkList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1LeakChecker.html#af1e1f0fd38f72dcdfb5daa3d8af9538b">WorkList</a></td></tr>
|
|
103
103
|
<tr class="separator:af1e1f0fd38f72dcdfb5daa3d8af9538b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
104
104
|
<tr class="memitem:a65b05e30410e40fe64d41f71516cd367"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1LeakChecker.html#a65b05e30410e40fe64d41f71516cd367">SVFGNodeBS</a></td></tr>
|
|
@@ -118,8 +118,8 @@ Public Types</h2></td></tr>
|
|
|
118
118
|
<tr class="memitem:a4f9de61860db86668606f0c276ce8117 inherit pub_types_classSVF_1_1SrcSnkDDA"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *, <a class="el" href="classSVF_1_1SrcSnkDDA.html#ab3cc8f13ea8de2db4ba874280802667a">DPImSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#a4f9de61860db86668606f0c276ce8117">SVFGNodeToDPItemsMap</a></td></tr>
|
|
119
119
|
<tr class="memdesc:a4f9de61860db86668606f0c276ce8117 inherit pub_types_classSVF_1_1SrcSnkDDA"><td class="mdescLeft"> </td><td class="mdescRight">map a SVFGNode to its visited dpitems <a href="classSVF_1_1SrcSnkDDA.html#a4f9de61860db86668606f0c276ce8117">More...</a><br /></td></tr>
|
|
120
120
|
<tr class="separator:a4f9de61860db86668606f0c276ce8117 inherit pub_types_classSVF_1_1SrcSnkDDA"><td class="memSeparator" colspan="2"> </td></tr>
|
|
121
|
-
<tr class="memitem:
|
|
122
|
-
<tr class="separator:
|
|
121
|
+
<tr class="memitem:a47a4be28c625bf4d079a04ac24132165 inherit pub_types_classSVF_1_1SrcSnkDDA"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#a47a4be28c625bf4d079a04ac24132165">CallSiteSet</a></td></tr>
|
|
122
|
+
<tr class="separator:a47a4be28c625bf4d079a04ac24132165 inherit pub_types_classSVF_1_1SrcSnkDDA"><td class="memSeparator" colspan="2"> </td></tr>
|
|
123
123
|
<tr class="memitem:a70cff8ea7c033c01400935c9e446f2c6 inherit pub_types_classSVF_1_1SrcSnkDDA"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVFGNodeBS</a></td></tr>
|
|
124
124
|
<tr class="separator:a70cff8ea7c033c01400935c9e446f2c6 inherit pub_types_classSVF_1_1SrcSnkDDA"><td class="memSeparator" colspan="2"> </td></tr>
|
|
125
125
|
<tr class="memitem:a3c0d8850c4dae49a760ce5f80fb8822a inherit pub_types_classSVF_1_1SrcSnkDDA"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1ProgSlice.html#a684e44ade783439c6f77a8d84eed282c">ProgSlice::VFWorkList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">WorkList</a></td></tr>
|
|
@@ -196,7 +196,7 @@ Public Member Functions</h2></td></tr>
|
|
|
196
196
|
<tr class="memitem:a391bb031b2f244e930b266a29cda0af7 inherit pub_methods_classSVF_1_1SrcSnkDDA"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#a391bb031b2f244e930b266a29cda0af7">isGlobalSVFGNode</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *node) const</td></tr>
|
|
197
197
|
<tr class="memdesc:a391bb031b2f244e930b266a29cda0af7 inherit pub_methods_classSVF_1_1SrcSnkDDA"><td class="mdescLeft"> </td><td class="mdescRight">Whether this svfg node may access global variable. <a href="classSVF_1_1SrcSnkDDA.html#a391bb031b2f244e930b266a29cda0af7">More...</a><br /></td></tr>
|
|
198
198
|
<tr class="separator:a391bb031b2f244e930b266a29cda0af7 inherit pub_methods_classSVF_1_1SrcSnkDDA"><td class="memSeparator" colspan="2"> </td></tr>
|
|
199
|
-
<tr class="memitem:afc75e55af839ef535d80555fd422342c inherit pub_methods_classSVF_1_1SrcSnkDDA"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#afc75e55af839ef535d80555fd422342c">isInAWrapper</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *src, <a class="el" href="classSVF_1_1SrcSnkDDA.html#
|
|
199
|
+
<tr class="memitem:afc75e55af839ef535d80555fd422342c inherit pub_methods_classSVF_1_1SrcSnkDDA"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#afc75e55af839ef535d80555fd422342c">isInAWrapper</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *src, <a class="el" href="classSVF_1_1SrcSnkDDA.html#a47a4be28c625bf4d079a04ac24132165">CallSiteSet</a> &csIdSet)</td></tr>
|
|
200
200
|
<tr class="memdesc:afc75e55af839ef535d80555fd422342c inherit pub_methods_classSVF_1_1SrcSnkDDA"><td class="mdescLeft"> </td><td class="mdescRight">Identify allocation wrappers. <a href="classSVF_1_1SrcSnkDDA.html#afc75e55af839ef535d80555fd422342c">More...</a><br /></td></tr>
|
|
201
201
|
<tr class="separator:afc75e55af839ef535d80555fd422342c inherit pub_methods_classSVF_1_1SrcSnkDDA"><td class="memSeparator" colspan="2"> </td></tr>
|
|
202
202
|
<tr class="memitem:a1a6ae6b1f6864057067d0e5533ea801e inherit pub_methods_classSVF_1_1SrcSnkDDA"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html">PathCondAllocator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a> () const</td></tr>
|
|
@@ -257,11 +257,11 @@ Protected Member Functions</h2></td></tr>
|
|
|
257
257
|
<tr class="memitem:a93486083c0f186b91e655cbef2382634"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1LeakChecker.html#a93486083c0f186b91e655cbef2382634">reportPartialLeak</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *src)</td></tr>
|
|
258
258
|
<tr class="separator:a93486083c0f186b91e655cbef2382634"><td class="memSeparator" colspan="2"> </td></tr>
|
|
259
259
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
260
|
-
<tr class="memitem:
|
|
261
|
-
<tr class="memdesc:
|
|
262
|
-
<tr class="separator:
|
|
263
|
-
<tr class="memitem:
|
|
264
|
-
<tr class="separator:
|
|
260
|
+
<tr class="memitem:a155da7c60f3232b43a3996313b0496c7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1LeakChecker.html#a155da7c60f3232b43a3996313b0496c7">addSrcToCSID</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *src, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
261
|
+
<tr class="memdesc:a155da7c60f3232b43a3996313b0496c7"><td class="mdescLeft"> </td><td class="mdescRight">Record a source to its callsite. <a href="#a155da7c60f3232b43a3996313b0496c7">More...</a><br /></td></tr>
|
|
262
|
+
<tr class="separator:a155da7c60f3232b43a3996313b0496c7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
263
|
+
<tr class="memitem:a8cc561fddf3435b3b40ff4aace23b846"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *src)</td></tr>
|
|
264
|
+
<tr class="separator:a8cc561fddf3435b3b40ff4aace23b846"><td class="memSeparator" colspan="2"> </td></tr>
|
|
265
265
|
<tr class="inherit_header pro_methods_classSVF_1_1SrcSnkDDA"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1SrcSnkDDA')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classSVF_1_1SrcSnkDDA.html">SVF::SrcSnkDDA</a></td></tr>
|
|
266
266
|
<tr class="memitem:abf20d02932b7ca983b9bd790812b1f40 inherit pro_methods_classSVF_1_1SrcSnkDDA"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#abf20d02932b7ca983b9bd790812b1f40">FWProcessCurNode</a> (const <a class="el" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> &item)</td></tr>
|
|
267
267
|
<tr class="memdesc:abf20d02932b7ca983b9bd790812b1f40 inherit pro_methods_classSVF_1_1SrcSnkDDA"><td class="mdescLeft"> </td><td class="mdescRight">Forward traverse. <a href="classSVF_1_1SrcSnkDDA.html#abf20d02932b7ca983b9bd790812b1f40">More...</a><br /></td></tr>
|
|
@@ -343,7 +343,7 @@ Protected Member Functions</h2></td></tr>
|
|
|
343
343
|
</table><table class="memberdecls">
|
|
344
344
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
|
|
345
345
|
Private Attributes</h2></td></tr>
|
|
346
|
-
<tr class="memitem:a46b4447bf1bf34d3b8e56cce93e04852"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1LeakChecker.html#
|
|
346
|
+
<tr class="memitem:a46b4447bf1bf34d3b8e56cce93e04852"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1LeakChecker.html#a90c7275babe222f006233d2f2d2b6700">SVFGNodeToCSIDMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1LeakChecker.html#a46b4447bf1bf34d3b8e56cce93e04852">srcToCSIDMap</a></td></tr>
|
|
347
347
|
<tr class="separator:a46b4447bf1bf34d3b8e56cce93e04852"><td class="memSeparator" colspan="2"> </td></tr>
|
|
348
348
|
</table><table class="memberdecls">
|
|
349
349
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
|
|
@@ -361,14 +361,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
361
361
|
|
|
362
362
|
<p class="definition">Definition at line <a class="el" href="LeakChecker_8h_source.html#l00042">42</a> of file <a class="el" href="LeakChecker_8h_source.html">LeakChecker.h</a>.</p>
|
|
363
363
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
364
|
-
<a id="
|
|
365
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
364
|
+
<a id="aa0d4c66929f8ae39cf5efc77e873f642"></a>
|
|
365
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aa0d4c66929f8ae39cf5efc77e873f642">◆ </a></span>CSWorkList</h2>
|
|
366
366
|
|
|
367
367
|
<div class="memitem">
|
|
368
368
|
<div class="memproto">
|
|
369
369
|
<table class="memname">
|
|
370
370
|
<tr>
|
|
371
|
-
<td class="memname">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a><const <a class="el" href="
|
|
371
|
+
<td class="memname">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a><const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*> <a class="el" href="classSVF_1_1LeakChecker.html#aa0d4c66929f8ae39cf5efc77e873f642">SVF::LeakChecker::CSWorkList</a></td>
|
|
372
372
|
</tr>
|
|
373
373
|
</table>
|
|
374
374
|
</div><div class="memdoc">
|
|
@@ -393,14 +393,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
393
393
|
|
|
394
394
|
</div>
|
|
395
395
|
</div>
|
|
396
|
-
<a id="
|
|
397
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
396
|
+
<a id="a90c7275babe222f006233d2f2d2b6700"></a>
|
|
397
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a90c7275babe222f006233d2f2d2b6700">◆ </a></span>SVFGNodeToCSIDMap</h2>
|
|
398
398
|
|
|
399
399
|
<div class="memitem">
|
|
400
400
|
<div class="memproto">
|
|
401
401
|
<table class="memname">
|
|
402
402
|
<tr>
|
|
403
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>*,const <a class="el" href="
|
|
403
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>*,const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*> <a class="el" href="classSVF_1_1LeakChecker.html#a90c7275babe222f006233d2f2d2b6700">SVF::LeakChecker::SVFGNodeToCSIDMap</a></td>
|
|
404
404
|
</tr>
|
|
405
405
|
</table>
|
|
406
406
|
</div><div class="memdoc">
|
|
@@ -512,8 +512,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
512
512
|
</div>
|
|
513
513
|
</div>
|
|
514
514
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
515
|
-
<a id="
|
|
516
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
515
|
+
<a id="a155da7c60f3232b43a3996313b0496c7"></a>
|
|
516
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a155da7c60f3232b43a3996313b0496c7">◆ </a></span>addSrcToCSID()</h2>
|
|
517
517
|
|
|
518
518
|
<div class="memitem">
|
|
519
519
|
<div class="memproto">
|
|
@@ -530,7 +530,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
530
530
|
<tr>
|
|
531
531
|
<td class="paramkey"></td>
|
|
532
532
|
<td></td>
|
|
533
|
-
<td class="paramtype">const <a class="el" href="
|
|
533
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
534
534
|
<td class="paramname"><em>cs</em> </td>
|
|
535
535
|
</tr>
|
|
536
536
|
<tr>
|
|
@@ -553,8 +553,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
553
553
|
</div><!-- fragment -->
|
|
554
554
|
</div>
|
|
555
555
|
</div>
|
|
556
|
-
<a id="
|
|
557
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
556
|
+
<a id="a8cc561fddf3435b3b40ff4aace23b846"></a>
|
|
557
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a8cc561fddf3435b3b40ff4aace23b846">◆ </a></span>getSrcCSID()</h2>
|
|
558
558
|
|
|
559
559
|
<div class="memitem">
|
|
560
560
|
<div class="memproto">
|
|
@@ -563,7 +563,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
563
563
|
<td class="mlabels-left">
|
|
564
564
|
<table class="memname">
|
|
565
565
|
<tr>
|
|
566
|
-
<td class="memname">const <a class="el" href="
|
|
566
|
+
<td class="memname">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* SVF::LeakChecker::getSrcCSID </td>
|
|
567
567
|
<td>(</td>
|
|
568
568
|
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> * </td>
|
|
569
569
|
<td class="paramname"><em>src</em></td><td>)</td>
|
|
@@ -611,21 +611,21 @@ Additional Inherited Members</h2></td></tr>
|
|
|
611
611
|
<p>Implements <a class="el" href="classSVF_1_1SrcSnkDDA.html#a0f6cfa30c346aab1fb03a44e47c32559">SVF::SrcSnkDDA</a>.</p>
|
|
612
612
|
|
|
613
613
|
<p class="definition">Definition at line <a class="el" href="LeakChecker_8cpp_source.html#l00107">107</a> of file <a class="el" href="LeakChecker_8cpp_source.html">LeakChecker.cpp</a>.</p>
|
|
614
|
-
<div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">getPAG</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">for</span>(SVFIR::CSToArgsListMap::iterator it = pag-><a class="code" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">getCallSiteArgsMap</a>().begin(),</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  eit = pag-><a class="code" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">getCallSiteArgsMap</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> callees;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad445032e9b2027b3c990ce2a250257f8">getCallgraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#
|
|
614
|
+
<div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">getPAG</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">for</span>(SVFIR::CSToArgsListMap::iterator it = pag-><a class="code" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">getCallSiteArgsMap</a>().begin(),</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  eit = pag-><a class="code" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">getCallSiteArgsMap</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> callees;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad445032e9b2027b3c990ce2a250257f8">getCallgraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">getCallees</a>(it->first,callees);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">for</span>(PTACallGraph::FunctionSet::const_iterator cit = callees.begin(), ecit = callees.end(); cit!=ecit; cit++)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = *cit;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LeakChecker.html#aa45d35a0dc5162e8cef8b27b92ff243d">isSinkLikeFun</a>(fun)) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFIR::SVFVarList</a> &arglist = it->second;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!arglist.empty() && <span class="stringliteral">"no actual parameter at deallocation site?"</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">for</span> (SVFIR::SVFVarList::const_iterator ait = arglist.begin(),</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  aeit = arglist.end(); ait != aeit; ++ait) {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *pagNode = *ait;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (pagNode-><a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>()) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *snk = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-><a class="code" href="classSVF_1_1VFG.html#a6bbfe457dcc7104e6928323499ea964e">getActualParmVFGNode</a>(pagNode, it->first);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a9c276e24d13cd1e8e5fbad10b46047f8">addToSinks</a>(snk);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a64939d7ecfd8e2cf862782954a56596b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVF::SVFIR::SVFVarList</a></div><div class="ttdeci">std::vector< const SVFVar * > SVFVarList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00057">SVFIR.h:57</a></div></div>
|
|
615
615
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
616
616
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
|
|
617
617
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
|
|
618
618
|
<div class="ttc" id="classSVF_1_1LeakChecker_html_aa45d35a0dc5162e8cef8b27b92ff243d"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#aa45d35a0dc5162e8cef8b27b92ff243d">SVF::LeakChecker::isSinkLikeFun</a></div><div class="ttdeci">virtual bool isSinkLikeFun(const SVFFunction *fun) override</div><div class="ttdoc">Whether the function is a heap deallocator (free/release memory) </div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00086">LeakChecker.h:86</a></div></div>
|
|
619
|
+
<div class="ttc" id="classSVF_1_1VFG_html_a6bbfe457dcc7104e6928323499ea964e"><div class="ttname"><a href="classSVF_1_1VFG.html#a6bbfe457dcc7104e6928323499ea964e">SVF::VFG::getActualParmVFGNode</a></div><div class="ttdeci">ActualParmVFGNode * getActualParmVFGNode(const PAGNode *aparm, const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00235">VFG.h:235</a></div></div>
|
|
619
620
|
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
|
|
620
621
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a346b9300ad16ef65e3ab4e11f88193a7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">SVF::SVFIR::getCallSiteArgsMap</a></div><div class="ttdeci">CSToArgsListMap & getCallSiteArgsMap()</div><div class="ttdoc">Get callsite argument list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00237">SVFIR.h:237</a></div></div>
|
|
621
622
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00118">SVFVariables.h:118</a></div></div>
|
|
622
|
-
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a486f79252c216eb5a9f4c09261a24ae2"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a486f79252c216eb5a9f4c09261a24ae2">SVF::PTACallGraph::getCallees</a></div><div class="ttdeci">void getCallees(const CallBlockNode *cs, FunctionSet &callees)</div><div class="ttdoc">Get all callees for a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00382">PTACallGraph.h:382</a></div></div>
|
|
623
623
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a9c276e24d13cd1e8e5fbad10b46047f8"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a9c276e24d13cd1e8e5fbad10b46047f8">SVF::SrcSnkDDA::addToSinks</a></div><div class="ttdeci">void addToSinks(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00224">SrcSnkDDA.h:224</a></div></div>
|
|
624
624
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00120">SrcSnkDDA.h:120</a></div></div>
|
|
625
|
-
<div class="ttc" id="classSVF_1_1VFG_html_a01b8694a5ab7acf8df0213225550791b"><div class="ttname"><a href="classSVF_1_1VFG.html#a01b8694a5ab7acf8df0213225550791b">SVF::VFG::getActualParmVFGNode</a></div><div class="ttdeci">ActualParmVFGNode * getActualParmVFGNode(const PAGNode *aparm, const CallBlockNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00235">VFG.h:235</a></div></div>
|
|
626
625
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a4f37c66db2588cd691353a9ad1a4d5b1"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">SVF::SrcSnkDDA::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Get SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00114">SrcSnkDDA.h:114</a></div></div>
|
|
627
626
|
<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>
|
|
628
627
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad445032e9b2027b3c990ce2a250257f8"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad445032e9b2027b3c990ce2a250257f8">SVF::SrcSnkDDA::getCallgraph</a></div><div class="ttdeci">PTACallGraph * getCallgraph() const</div><div class="ttdoc">Get Callgraph. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00126">SrcSnkDDA.h:126</a></div></div>
|
|
628
|
+
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a317e09edb29b110cf4273009551d31ec"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">SVF::PTACallGraph::getCallees</a></div><div class="ttdeci">void getCallees(const CallICFGNode *cs, FunctionSet &callees)</div><div class="ttdoc">Get all callees for a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00382">PTACallGraph.h:382</a></div></div>
|
|
629
629
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
630
630
|
</div><!-- fragment -->
|
|
631
631
|
</div>
|
|
@@ -661,35 +661,35 @@ Additional Inherited Members</h2></td></tr>
|
|
|
661
661
|
<p>Implements <a class="el" href="classSVF_1_1SrcSnkDDA.html#a1c8f91ffa0b9f01d51c8cd5e14f076d5">SVF::SrcSnkDDA</a>.</p>
|
|
662
662
|
|
|
663
663
|
<p class="definition">Definition at line <a class="el" href="LeakChecker_8cpp_source.html#l00041">41</a> of file <a class="el" href="LeakChecker_8cpp_source.html">LeakChecker.cpp</a>.</p>
|
|
664
|
-
<div class="fragment"><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> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">getPAG</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = pag-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">for</span>(SVFIR::CSToRetMap::iterator it = pag-><a class="code" href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22">getCallSiteRets</a>().begin(),</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  eit = pag-><a class="code" href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22">getCallSiteRets</a>().end(); it!=eit; ++it)</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">const</span> <a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* cs = it->first;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4dcfe3e66a16813350ec8dffd47c5644">isPtrInDeadFunction</a>(cs-><a class="code" href="classSVF_1_1RetBlockNode.html#a436cd30be9fba449fee6bc6dcc18bb18">getCallSite</a>()) || !cs-><a class="code" href="classSVF_1_1RetBlockNode.html#a436cd30be9fba449fee6bc6dcc18bb18">getCallSite</a>()->getType()->isPointerTy())</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> callees;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad445032e9b2027b3c990ce2a250257f8">getCallgraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a486f79252c216eb5a9f4c09261a24ae2">getCallees</a>(cs-><a class="code" href="classSVF_1_1RetBlockNode.html#a6f47c3169f64fb7637b544ec1faf6f31">getCallBlockNode</a>(),callees);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span>(PTACallGraph::FunctionSet::const_iterator cit = callees.begin(), ecit = callees.end(); cit!=ecit; cit++)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = *cit;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LeakChecker.html#afeee30f5f0c08d9aed59be3064bcc134">isSourceLikeFun</a>(fun))</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>  <a class="code" href="classSVF_1_1LeakChecker.html#ae4622afe7eae8f6d8a3616de70c09fe0">CSWorkList</a> <a class="code" href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">worklist</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1LeakChecker.html#a65b05e30410e40fe64d41f71516cd367">SVFGNodeBS</a> visited;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  worklist.push(it->first->getCallBlockNode());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">while</span> (!worklist.empty())</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = worklist.pop();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* retBlockNode = icfg-><a class="code" href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">getRetBlockNode</a>(cs-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = pag-><a class="code" href="classSVF_1_1SVFIR.html#a70aa4d730ef1d38ef9c46f5014465bdd">getCallSiteRet</a>(retBlockNode);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pagNode);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (visited.test(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()) == 0)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  visited.set(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#af254f2a00cabb91c61a0a592bdb7f0f1">CallSiteSet</a> csSet;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// if this node is in an allocation wrapper, find all its call nodes</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#afc75e55af839ef535d80555fd422342c">isInAWrapper</a>(node, csSet))</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>  <span class="keywordflow">for</span> (CallSiteSet::iterator it = csSet.begin(), eit =</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  csSet.end(); it != eit; ++it)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  worklist.push(*it);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// otherwise, this is the source we are interested</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// exclude sources in dead functions</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4dcfe3e66a16813350ec8dffd47c5644">isPtrInDeadFunction</a>(cs-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()) == <span class="keyword">false</span>)</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>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#acdffb63fd5ae67306640bfe2fcfc3a79">addToSources</a>(node);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1LeakChecker.html#a5046d4a090560dd6f4ffd85631086b10">addSrcToCSID</a>(node, cs);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_af254f2a00cabb91c61a0a592bdb7f0f1"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#af254f2a00cabb91c61a0a592bdb7f0f1">SVF::SrcSnkDDA::CallSiteSet</a></div><div class="ttdeci">Set< const CallBlockNode * > CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00056">SrcSnkDDA.h:56</a></div></div>
|
|
665
|
-
<div class="ttc" id="
|
|
666
|
-
<div class="ttc" id="
|
|
664
|
+
<div class="fragment"><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> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">getPAG</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = pag-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">for</span>(SVFIR::CSToRetMap::iterator it = pag-><a class="code" href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22">getCallSiteRets</a>().begin(),</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  eit = pag-><a class="code" href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22">getCallSiteRets</a>().end(); it!=eit; ++it)</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">const</span> <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* cs = it->first;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4dcfe3e66a16813350ec8dffd47c5644">isPtrInDeadFunction</a>(cs-><a class="code" href="classSVF_1_1RetICFGNode.html#a8f0490ea9491afdf81641e9928f5a5f7">getCallSite</a>()) || !cs-><a class="code" href="classSVF_1_1RetICFGNode.html#a8f0490ea9491afdf81641e9928f5a5f7">getCallSite</a>()->getType()->isPointerTy())</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> callees;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad445032e9b2027b3c990ce2a250257f8">getCallgraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">getCallees</a>(cs-><a class="code" href="classSVF_1_1RetICFGNode.html#afd2a06f0749c359c544048ae40085695">getCallBlockNode</a>(),callees);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span>(PTACallGraph::FunctionSet::const_iterator cit = callees.begin(), ecit = callees.end(); cit!=ecit; cit++)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = *cit;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LeakChecker.html#afeee30f5f0c08d9aed59be3064bcc134">isSourceLikeFun</a>(fun))</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>  <a class="code" href="classSVF_1_1LeakChecker.html#aa0d4c66929f8ae39cf5efc77e873f642">CSWorkList</a> <a class="code" href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">worklist</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1LeakChecker.html#a65b05e30410e40fe64d41f71516cd367">SVFGNodeBS</a> visited;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  worklist.push(it->first->getCallBlockNode());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">while</span> (!worklist.empty())</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = worklist.pop();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = icfg-><a class="code" href="classSVF_1_1ICFG.html#a392e5ea7c356763a988407f91343f034">getRetBlockNode</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>());</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = pag-><a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(retBlockNode);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pagNode);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (visited.test(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()) == 0)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  visited.set(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#a47a4be28c625bf4d079a04ac24132165">CallSiteSet</a> csSet;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// if this node is in an allocation wrapper, find all its call nodes</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#afc75e55af839ef535d80555fd422342c">isInAWrapper</a>(node, csSet))</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>  <span class="keywordflow">for</span> (CallSiteSet::iterator it = csSet.begin(), eit =</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  csSet.end(); it != eit; ++it)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  worklist.push(*it);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// otherwise, this is the source we are interested</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// exclude sources in dead functions</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4dcfe3e66a16813350ec8dffd47c5644">isPtrInDeadFunction</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()) == <span class="keyword">false</span>)</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>  <a class="code" href="classSVF_1_1SrcSnkDDA.html#acdffb63fd5ae67306640bfe2fcfc3a79">addToSources</a>(node);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1LeakChecker.html#a155da7c60f3232b43a3996313b0496c7">addSrcToCSID</a>(node, cs);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_acdffb63fd5ae67306640bfe2fcfc3a79"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#acdffb63fd5ae67306640bfe2fcfc3a79">SVF::SrcSnkDDA::addToSources</a></div><div class="ttdeci">void addToSources(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00208">SrcSnkDDA.h:208</a></div></div>
|
|
665
|
+
<div class="ttc" id="classSVF_1_1RetICFGNode_html_afd2a06f0749c359c544048ae40085695"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html#afd2a06f0749c359c544048ae40085695">SVF::RetICFGNode::getCallBlockNode</a></div><div class="ttdeci">const CallICFGNode * getCallBlockNode() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00480">ICFGNode.h:480</a></div></div>
|
|
666
|
+
<div class="ttc" id="classSVF_1_1RetICFGNode_html_a8f0490ea9491afdf81641e9928f5a5f7"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html#a8f0490ea9491afdf81641e9928f5a5f7">SVF::RetICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00475">ICFGNode.h:475</a></div></div>
|
|
667
667
|
<div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
|
|
668
|
+
<div class="ttc" id="classSVF_1_1ICFG_html_a392e5ea7c356763a988407f91343f034"><div class="ttname"><a href="classSVF_1_1ICFG.html#a392e5ea7c356763a988407f91343f034">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetICFGNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00222">ICFG.cpp:222</a></div></div>
|
|
668
669
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
|
|
669
670
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
|
|
670
|
-
<div class="ttc" id="classSVF_1_1RetBlockNode_html_a436cd30be9fba449fee6bc6dcc18bb18"><div class="ttname"><a href="classSVF_1_1RetBlockNode.html#a436cd30be9fba449fee6bc6dcc18bb18">SVF::RetBlockNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00475">ICFGNode.h:475</a></div></div>
|
|
671
671
|
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
|
|
672
|
+
<div class="ttc" id="classSVF_1_1LeakChecker_html_aa0d4c66929f8ae39cf5efc77e873f642"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#aa0d4c66929f8ae39cf5efc77e873f642">SVF::LeakChecker::CSWorkList</a></div><div class="ttdeci">FIFOWorkList< const CallICFGNode * > CSWorkList</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00047">LeakChecker.h:47</a></div></div>
|
|
672
673
|
<div class="ttc" id="classSVF_1_1LeakChecker_html_afeee30f5f0c08d9aed59be3064bcc134"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#afeee30f5f0c08d9aed59be3064bcc134">SVF::LeakChecker::isSourceLikeFun</a></div><div class="ttdeci">virtual bool isSourceLikeFun(const SVFFunction *fun) override</div><div class="ttdoc">Whether the function is a heap allocator/reallocator (allocate memory) </div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00081">LeakChecker.h:81</a></div></div>
|
|
673
|
-
<div class="ttc" id="
|
|
674
|
+
<div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00459">ICFGNode.h:459</a></div></div>
|
|
674
675
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4dcfe3e66a16813350ec8dffd47c5644"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4dcfe3e66a16813350ec8dffd47c5644">SVF::SVFUtil::isPtrInDeadFunction</a></div><div class="ttdeci">bool isPtrInDeadFunction(const Value *value)</div><div class="ttdoc">Return true if this is value in a dead function (function without any caller) </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00158">LLVMUtil.cpp:158</a></div></div>
|
|
675
|
-
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a486f79252c216eb5a9f4c09261a24ae2"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a486f79252c216eb5a9f4c09261a24ae2">SVF::PTACallGraph::getCallees</a></div><div class="ttdeci">void getCallees(const CallBlockNode *cs, FunctionSet &callees)</div><div class="ttdoc">Get all callees for a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00382">PTACallGraph.h:382</a></div></div>
|
|
676
676
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00120">SrcSnkDDA.h:120</a></div></div>
|
|
677
|
-
<div class="ttc" id="
|
|
678
|
-
<div class="ttc" id="
|
|
679
|
-
<div class="ttc" id="classSVF_1_1LeakChecker_html_ae4622afe7eae8f6d8a3616de70c09fe0"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#ae4622afe7eae8f6d8a3616de70c09fe0">SVF::LeakChecker::CSWorkList</a></div><div class="ttdeci">FIFOWorkList< const CallBlockNode * > CSWorkList</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00047">LeakChecker.h:47</a></div></div>
|
|
677
|
+
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a47a4be28c625bf4d079a04ac24132165"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a47a4be28c625bf4d079a04ac24132165">SVF::SrcSnkDDA::CallSiteSet</a></div><div class="ttdeci">Set< const CallICFGNode * > CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00056">SrcSnkDDA.h:56</a></div></div>
|
|
678
|
+
<div class="ttc" id="classSVF_1_1LeakChecker_html_a155da7c60f3232b43a3996313b0496c7"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a155da7c60f3232b43a3996313b0496c7">SVF::LeakChecker::addSrcToCSID</a></div><div class="ttdeci">void addSrcToCSID(const SVFGNode *src, const CallICFGNode *cs)</div><div class="ttdoc">Record a source to its callsite. </div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00107">LeakChecker.h:107</a></div></div>
|
|
680
679
|
<div class="ttc" id="classSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00046">ICFG.h:46</a></div></div>
|
|
681
680
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_afc75e55af839ef535d80555fd422342c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#afc75e55af839ef535d80555fd422342c">SVF::SrcSnkDDA::isInAWrapper</a></div><div class="ttdeci">bool isInAWrapper(const SVFGNode *src, CallSiteSet &csIdSet)</div><div class="ttdoc">Identify allocation wrappers. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00119">SrcSnkDDA.cpp:119</a></div></div>
|
|
682
681
|
<div class="ttc" id="classSVF_1_1CFLSolver_html_a9d3cbcb9db049e3069b6553ab17ccf5b"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00180">CFLSolver.h:180</a></div></div>
|
|
682
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
683
683
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a650b3931af337a92ffcb5dad5ab47b22"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22">SVF::SVFIR::getCallSiteRets</a></div><div class="ttdeci">CSToRetMap & getCallSiteRets()</div><div class="ttdoc">Get callsite return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00249">SVFIR.h:249</a></div></div>
|
|
684
684
|
<div class="ttc" id="classSVF_1_1LeakChecker_html_a65b05e30410e40fe64d41f71516cd367"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a65b05e30410e40fe64d41f71516cd367">SVF::LeakChecker::SVFGNodeBS</a></div><div class="ttdeci">NodeBS SVFGNodeBS</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00049">LeakChecker.h:49</a></div></div>
|
|
685
|
-
<div class="ttc" id="
|
|
686
|
-
<div class="ttc" id="classSVF_1_1ICFG_html_a6d66c83cb1656d0f8ec8b8b65a9e9c41"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetBlockNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00210">ICFG.cpp:210</a></div></div>
|
|
685
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
687
686
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a4f37c66db2588cd691353a9ad1a4d5b1"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">SVF::SrcSnkDDA::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Get SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00114">SrcSnkDDA.h:114</a></div></div>
|
|
688
687
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
689
|
-
<div class="ttc" id="
|
|
688
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a3145677c7a3763fc0d6aa7e21b264ab6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">SVF::SVFIR::getCallSiteRet</a></div><div class="ttdeci">const SVFVar * getCallSiteRet(const RetICFGNode *cs) const</div><div class="ttdoc">Get callsite return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00254">SVFIR.h:254</a></div></div>
|
|
690
689
|
<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>
|
|
691
690
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
|
|
692
691
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_ad445032e9b2027b3c990ce2a250257f8"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad445032e9b2027b3c990ce2a250257f8">SVF::SrcSnkDDA::getCallgraph</a></div><div class="ttdeci">PTACallGraph * getCallgraph() const</div><div class="ttdoc">Get Callgraph. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00126">SrcSnkDDA.h:126</a></div></div>
|
|
692
|
+
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a317e09edb29b110cf4273009551d31ec"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">SVF::PTACallGraph::getCallees</a></div><div class="ttdeci">void getCallees(const CallICFGNode *cs, FunctionSet &callees)</div><div class="ttdoc">Get all callees for a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00382">PTACallGraph.h:382</a></div></div>
|
|
693
693
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
694
694
|
</div><!-- fragment -->
|
|
695
695
|
</div>
|
|
@@ -835,11 +835,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
835
835
|
</div><div class="memdoc">
|
|
836
836
|
|
|
837
837
|
<p class="definition">Definition at line <a class="el" href="LeakChecker_8cpp_source.html#l00139">139</a> of file <a class="el" href="LeakChecker_8cpp_source.html">LeakChecker.cpp</a>.</p>
|
|
838
|
-
<div class="fragment"><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">const</span> <a class="code" href="
|
|
839
|
-
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af0f447732c67402037a86ea29006efc2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVF::SVFUtil::errs</a></div><div class="ttdeci">raw_ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
838
|
+
<div class="fragment"><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(src);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6c66553e2559eebfe4f98c0c7ec4b08">bugMsg1</a>(<span class="stringliteral">"\t NeverFree :"</span>) << <span class="stringliteral">" memory allocation at : ("</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af0f447732c67402037a86ea29006efc2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVF::SVFUtil::errs</a></div><div class="ttdeci">raw_ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
840
839
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
|
|
841
|
-
<div class="ttc" id="
|
|
842
|
-
<div class="ttc" id="
|
|
840
|
+
<div class="ttc" id="classSVF_1_1LeakChecker_html_a8cc561fddf3435b3b40ff4aace23b846"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">SVF::LeakChecker::getSrcCSID</a></div><div class="ttdeci">const CallICFGNode * getSrcCSID(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00111">LeakChecker.h:111</a></div></div>
|
|
841
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
842
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
843
843
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6c66553e2559eebfe4f98c0c7ec4b08"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6c66553e2559eebfe4f98c0c7ec4b08">SVF::SVFUtil::bugMsg1</a></div><div class="ttdeci">std::string bugMsg1(std::string msg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00083">SVFUtil.cpp:83</a></div></div>
|
|
844
844
|
</div><!-- fragment -->
|
|
845
845
|
</div>
|
|
@@ -869,12 +869,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
869
869
|
</div><div class="memdoc">
|
|
870
870
|
|
|
871
871
|
<p class="definition">Definition at line <a class="el" href="LeakChecker_8cpp_source.html#l00146">146</a> of file <a class="el" href="LeakChecker_8cpp_source.html">LeakChecker.cpp</a>.</p>
|
|
872
|
-
<div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">const</span> <a class="code" href="
|
|
873
|
-
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af0f447732c67402037a86ea29006efc2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVF::SVFUtil::errs</a></div><div class="ttdeci">raw_ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
872
|
+
<div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(src);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">bugMsg2</a>(<span class="stringliteral">"\t PartialLeak :"</span>) << <span class="stringliteral">" memory allocation at : ("</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af0f447732c67402037a86ea29006efc2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVF::SVFUtil::errs</a></div><div class="ttdeci">raw_ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
874
873
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
|
|
875
874
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a054c3e668ce8b265bbc5d923f6243ce7"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">SVF::SVFUtil::bugMsg2</a></div><div class="ttdeci">std::string bugMsg2(std::string msg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00088">SVFUtil.cpp:88</a></div></div>
|
|
876
|
-
<div class="ttc" id="
|
|
877
|
-
<div class="ttc" id="
|
|
875
|
+
<div class="ttc" id="classSVF_1_1LeakChecker_html_a8cc561fddf3435b3b40ff4aace23b846"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">SVF::LeakChecker::getSrcCSID</a></div><div class="ttdeci">const CallICFGNode * getSrcCSID(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00111">LeakChecker.h:111</a></div></div>
|
|
876
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
877
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
878
878
|
</div><!-- fragment -->
|
|
879
879
|
</div>
|
|
880
880
|
</div>
|
|
@@ -940,14 +940,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
940
940
|
<p>Validate test cases for regression test purpose </p>
|
|
941
941
|
|
|
942
942
|
<p class="definition">Definition at line <a class="el" href="LeakChecker_8cpp_source.html#l00175">175</a> of file <a class="el" href="LeakChecker_8cpp_source.html">LeakChecker.cpp</a>.</p>
|
|
943
|
-
<div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* source = slice-><a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">const</span> <a class="code" href="
|
|
944
|
-
<div class="ttc" id="classSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00112">ProgSlice.h:112</a></div></div>
|
|
943
|
+
<div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* source = slice-><a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(source);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>());</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">if</span>(fun==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1LeakChecker.html#a0aa051a956b61cad9ec5419f33829e6a">validateSuccessTests</a>(source,fun);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1LeakChecker.html#af098d01a353a217bd54a90f92f62a45f">validateExpectedFailureTests</a>(source,fun);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> }</div><div class="ttc" id="classSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00112">ProgSlice.h:112</a></div></div>
|
|
945
944
|
<div class="ttc" id="classSVF_1_1LeakChecker_html_af098d01a353a217bd54a90f92f62a45f"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#af098d01a353a217bd54a90f92f62a45f">SVF::LeakChecker::validateExpectedFailureTests</a></div><div class="ttdeci">void validateExpectedFailureTests(const SVFGNode *source, const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8cpp_source.html#l00241">LeakChecker.cpp:241</a></div></div>
|
|
946
945
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
|
|
947
946
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00268">SVFUtil.h:268</a></div></div>
|
|
948
947
|
<div class="ttc" id="classSVF_1_1LeakChecker_html_a0aa051a956b61cad9ec5419f33829e6a"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a0aa051a956b61cad9ec5419f33829e6a">SVF::LeakChecker::validateSuccessTests</a></div><div class="ttdeci">void validateSuccessTests(const SVFGNode *source, const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8cpp_source.html#l00188">LeakChecker.cpp:188</a></div></div>
|
|
949
|
-
<div class="ttc" id="
|
|
950
|
-
<div class="ttc" id="
|
|
948
|
+
<div class="ttc" id="classSVF_1_1LeakChecker_html_a8cc561fddf3435b3b40ff4aace23b846"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">SVF::LeakChecker::getSrcCSID</a></div><div class="ttdeci">const CallICFGNode * getSrcCSID(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00111">LeakChecker.h:111</a></div></div>
|
|
949
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
950
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
951
951
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
952
952
|
</div><!-- fragment -->
|
|
953
953
|
</div>
|
|
@@ -987,8 +987,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
987
987
|
</div><div class="memdoc">
|
|
988
988
|
|
|
989
989
|
<p class="definition">Definition at line <a class="el" href="LeakChecker_8cpp_source.html#l00241">241</a> of file <a class="el" href="LeakChecker_8cpp_source.html">LeakChecker.cpp</a>.</p>
|
|
990
|
-
<div class="fragment"><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a4918e3e3e289cc39f3442cb26f28bcc4">getSrcCSID</a>(source);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordtype">bool</span> expectedFailure = <span class="keyword">false</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"NFRLEAKFP"</span>)</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  expectedFailure = <span class="keyword">true</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"PLKLEAKFP"</span>)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  expectedFailure = <span class="keyword">true</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"LEAKFN"</span>)</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">true</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  expectedFailure = <span class="keyword">true</span>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"SAFEMALLOC"</span> || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"NFRMALLOC"</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"PLKMALLOC"</span> || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"CLKLEAKFN"</span>)</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(<span class="stringliteral">"\t can not validate, check function not found, please put it at the right place!!"</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  std::string funName = source-><a class="code" href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>().str();</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span> (expectedFailure)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">sucMsg</a>(<span class="stringliteral">"\t EXPECTED-FAILURE :"</span>) << funName << <span class="stringliteral">" check <src id:"</span> << source-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  << <span class="stringliteral">", cs id:"</span> << *<a class="code" href="classSVF_1_1LeakChecker.html#a4918e3e3e289cc39f3442cb26f28bcc4">getSrcCSID</a>(source)-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>() << <span class="stringliteral">"> at ("</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\t UNEXPECTED FAILURE :"</span>) << funName</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  << <span class="stringliteral">" check <src id:"</span> << source-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  << <span class="stringliteral">", cs id:"</span> << *<a class="code" href="classSVF_1_1LeakChecker.html#a4918e3e3e289cc39f3442cb26f28bcc4">getSrcCSID</a>(source)-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>() << <span class="stringliteral">"> at ("</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> }</div><div class="ttc" id="classSVF_1_1LeakChecker_html_a4918e3e3e289cc39f3442cb26f28bcc4"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a4918e3e3e289cc39f3442cb26f28bcc4">SVF::LeakChecker::getSrcCSID</a></div><div class="ttdeci">const CallBlockNode * getSrcCSID(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00111">LeakChecker.h:111</a></div></div>
|
|
991
|
-
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
990
|
+
<div class="fragment"><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(source);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordtype">bool</span> expectedFailure = <span class="keyword">false</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"NFRLEAKFP"</span>)</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  expectedFailure = <span class="keyword">true</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"PLKLEAKFP"</span>)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  expectedFailure = <span class="keyword">true</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"LEAKFN"</span>)</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">true</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  expectedFailure = <span class="keyword">true</span>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"SAFEMALLOC"</span> || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"NFRMALLOC"</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"PLKMALLOC"</span> || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"CLKLEAKFN"</span>)</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(<span class="stringliteral">"\t can not validate, check function not found, please put it at the right place!!"</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  std::string funName = source-><a class="code" href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>().str();</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span> (expectedFailure)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">sucMsg</a>(<span class="stringliteral">"\t EXPECTED-FAILURE :"</span>) << funName << <span class="stringliteral">" check <src id:"</span> << source-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  << <span class="stringliteral">", cs id:"</span> << *<a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(source)-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>() << <span class="stringliteral">"> at ("</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\t UNEXPECTED FAILURE :"</span>) << funName</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  << <span class="stringliteral">" check <src id:"</span> << source-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  << <span class="stringliteral">", cs id:"</span> << *<a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(source)-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>() << <span class="stringliteral">"> at ("</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
992
991
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af0f447732c67402037a86ea29006efc2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVF::SVFUtil::errs</a></div><div class="ttdeci">raw_ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
993
992
|
<div class="ttc" id="classSVF_1_1VFGNode_html_ab98e74dfd4756e70e3e3c5b7d5e5ae27"><div class="ttname"><a href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">SVF::VFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Get the function of this SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00084">VFGNode.h:84</a></div></div>
|
|
994
993
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
|
|
@@ -996,10 +995,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
996
995
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00056">SVFUtil.cpp:56</a></div></div>
|
|
997
996
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
|
|
998
997
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a19ab6f6df2a67b294268cfe7f4287fd7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">SVF::SrcSnkDDA::isSomePathReachable</a></div><div class="ttdeci">virtual bool isSomePathReachable()</div><div class="ttdoc">Whether it is some path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00297">SrcSnkDDA.h:297</a></div></div>
|
|
998
|
+
<div class="ttc" id="classSVF_1_1LeakChecker_html_a8cc561fddf3435b3b40ff4aace23b846"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">SVF::LeakChecker::getSrcCSID</a></div><div class="ttdeci">const CallICFGNode * getSrcCSID(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00111">LeakChecker.h:111</a></div></div>
|
|
999
999
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1000
|
-
<div class="ttc" id="
|
|
1000
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
1001
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
1001
1002
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
1002
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
1003
1003
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00078">SVFUtil.cpp:78</a></div></div>
|
|
1004
1004
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a6ae0d47bac09163e90b8b2e773ad69f0"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">SVF::SrcSnkDDA::isAllPathReachable</a></div><div class="ttdeci">virtual bool isAllPathReachable()</div><div class="ttdoc">Whether it is all path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00292">SrcSnkDDA.h:292</a></div></div>
|
|
1005
1005
|
</div><!-- fragment -->
|
|
@@ -1040,8 +1040,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1040
1040
|
</div><div class="memdoc">
|
|
1041
1041
|
|
|
1042
1042
|
<p class="definition">Definition at line <a class="el" href="LeakChecker_8cpp_source.html#l00188">188</a> of file <a class="el" href="LeakChecker_8cpp_source.html">LeakChecker.cpp</a>.</p>
|
|
1043
|
-
<div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a4918e3e3e289cc39f3442cb26f28bcc4">getSrcCSID</a>(source);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"SAFEMALLOC"</span>)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">true</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  success = <span class="keyword">true</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"NFRMALLOC"</span>)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  success = <span class="keyword">true</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"PLKMALLOC"</span>)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  success = <span class="keyword">true</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"CLKMALLOC"</span>)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  success = <span class="keyword">true</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"NFRLEAKFP"</span> || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"PLKLEAKFP"</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"LEAKFN"</span>)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(<span class="stringliteral">"\t can not validate, check function not found, please put it at the right place!!"</span>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  std::string funName = source-><a class="code" href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>().str();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (success)</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">sucMsg</a>(<span class="stringliteral">"\t SUCCESS :"</span>) << funName << <span class="stringliteral">" check <src id:"</span> << source-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  << <span class="stringliteral">", cs id:"</span> << *<a class="code" href="classSVF_1_1LeakChecker.html#a4918e3e3e289cc39f3442cb26f28bcc4">getSrcCSID</a>(source)-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>() << <span class="stringliteral">"> at ("</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\t FAILURE :"</span>) << funName << <span class="stringliteral">" check <src id:"</span> << source-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  << <span class="stringliteral">", cs id:"</span> << *<a class="code" href="classSVF_1_1LeakChecker.html#a4918e3e3e289cc39f3442cb26f28bcc4">getSrcCSID</a>(source)-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>() << <span class="stringliteral">"> at ("</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> }</div><div class="ttc" id="classSVF_1_1LeakChecker_html_a4918e3e3e289cc39f3442cb26f28bcc4"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a4918e3e3e289cc39f3442cb26f28bcc4">SVF::LeakChecker::getSrcCSID</a></div><div class="ttdeci">const CallBlockNode * getSrcCSID(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00111">LeakChecker.h:111</a></div></div>
|
|
1044
|
-
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1043
|
+
<div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(source);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"SAFEMALLOC"</span>)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">true</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  success = <span class="keyword">true</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"NFRMALLOC"</span>)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  success = <span class="keyword">true</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"PLKMALLOC"</span>)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  success = <span class="keyword">true</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"CLKMALLOC"</span>)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  success = <span class="keyword">true</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"NFRLEAKFP"</span> || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"PLKLEAKFP"</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  || fun-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() == <span class="stringliteral">"LEAKFN"</span>)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(<span class="stringliteral">"\t can not validate, check function not found, please put it at the right place!!"</span>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  std::string funName = source-><a class="code" href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">getFun</a>()-><a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>().str();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (success)</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">sucMsg</a>(<span class="stringliteral">"\t SUCCESS :"</span>) << funName << <span class="stringliteral">" check <src id:"</span> << source-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  << <span class="stringliteral">", cs id:"</span> << *<a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(source)-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>() << <span class="stringliteral">"> at ("</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\t FAILURE :"</span>) << funName << <span class="stringliteral">" check <src id:"</span> << source-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  << <span class="stringliteral">", cs id:"</span> << *<a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(source)-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>() << <span class="stringliteral">"> at ("</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1045
1044
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af0f447732c67402037a86ea29006efc2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVF::SVFUtil::errs</a></div><div class="ttdeci">raw_ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
1046
1045
|
<div class="ttc" id="classSVF_1_1VFGNode_html_ab98e74dfd4756e70e3e3c5b7d5e5ae27"><div class="ttname"><a href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">SVF::VFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Get the function of this SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00084">VFGNode.h:84</a></div></div>
|
|
1047
1046
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
|
|
@@ -1049,10 +1048,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1049
1048
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00056">SVFUtil.cpp:56</a></div></div>
|
|
1050
1049
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
|
|
1051
1050
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a19ab6f6df2a67b294268cfe7f4287fd7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">SVF::SrcSnkDDA::isSomePathReachable</a></div><div class="ttdeci">virtual bool isSomePathReachable()</div><div class="ttdoc">Whether it is some path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00297">SrcSnkDDA.h:297</a></div></div>
|
|
1051
|
+
<div class="ttc" id="classSVF_1_1LeakChecker_html_a8cc561fddf3435b3b40ff4aace23b846"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">SVF::LeakChecker::getSrcCSID</a></div><div class="ttdeci">const CallICFGNode * getSrcCSID(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00111">LeakChecker.h:111</a></div></div>
|
|
1052
1052
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1053
|
-
<div class="ttc" id="
|
|
1053
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
1054
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
1054
1055
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
1055
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
1056
1056
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00078">SVFUtil.cpp:78</a></div></div>
|
|
1057
1057
|
<div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a6ae0d47bac09163e90b8b2e773ad69f0"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">SVF::SrcSnkDDA::isAllPathReachable</a></div><div class="ttdeci">virtual bool isAllPathReachable()</div><div class="ttdoc">Whether it is all path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00292">SrcSnkDDA.h:292</a></div></div>
|
|
1058
1058
|
</div><!-- fragment -->
|
|
@@ -1069,7 +1069,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1069
1069
|
<td class="mlabels-left">
|
|
1070
1070
|
<table class="memname">
|
|
1071
1071
|
<tr>
|
|
1072
|
-
<td class="memname"><a class="el" href="classSVF_1_1LeakChecker.html#
|
|
1072
|
+
<td class="memname"><a class="el" href="classSVF_1_1LeakChecker.html#a90c7275babe222f006233d2f2d2b6700">SVFGNodeToCSIDMap</a> SVF::LeakChecker::srcToCSIDMap</td>
|
|
1073
1073
|
</tr>
|
|
1074
1074
|
</table>
|
|
1075
1075
|
</td>
|