svf-tools 1.0.289 → 1.0.293
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/README.md +1 -0
- package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenWaveDiffWithType_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +45 -29
- package/SVF-doxygen/html/html/Andersen_8h_source.html +50 -50
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +9 -9
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +52 -32
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +58 -55
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +64 -11
- package/SVF-doxygen/html/html/NodeIDAllocator_8h.html +5 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +52 -15
- package/SVF-doxygen/html/html/PAG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +34 -33
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +32 -32
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -12
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +33 -35
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +31 -36
- package/SVF-doxygen/html/html/SVFG_8h_source.html +19 -19
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +15 -7
- package/SVF-doxygen/html/html/SVFUtil_8h.html +3 -0
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +10 -8
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -11
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +51 -43
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +34 -33
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/annotated.html +2 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +213 -212
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +124 -72
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +223 -222
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +36 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +232 -231
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +21 -19
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +220 -219
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +38 -36
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +221 -220
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +11 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +232 -231
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +220 -219
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +21 -19
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType-members.html +227 -226
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +26 -24
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +110 -107
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +12 -4
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +109 -106
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +286 -157
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +121 -118
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +36 -28
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator-members.html +11 -10
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +74 -34
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer-members.html +109 -0
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +1188 -0
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +77 -66
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +32 -26
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +36 -37
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +121 -153
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +49 -49
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +8 -9
- package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +132 -129
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +171 -116
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +5 -5
- package/SVF-doxygen/html/html/classes.html +62 -62
- package/SVF-doxygen/html/html/functions_b.html +10 -5
- package/SVF-doxygen/html/html/functions_c.html +36 -22
- package/SVF-doxygen/html/html/functions_d.html +12 -0
- package/SVF-doxygen/html/html/functions_e.html +9 -3
- package/SVF-doxygen/html/html/functions_f.html +21 -18
- package/SVF-doxygen/html/html/functions_func_c.html +19 -10
- package/SVF-doxygen/html/html/functions_func_d.html +3 -0
- package/SVF-doxygen/html/html/functions_func_e.html +3 -0
- package/SVF-doxygen/html/html/functions_func_g.html +16 -10
- package/SVF-doxygen/html/html/functions_func_p.html +6 -2
- package/SVF-doxygen/html/html/functions_func_r.html +7 -1
- package/SVF-doxygen/html/html/functions_func_t.html +3 -0
- package/SVF-doxygen/html/html/functions_g.html +15 -9
- package/SVF-doxygen/html/html/functions_l.html +10 -7
- package/SVF-doxygen/html/html/functions_n.html +21 -3
- package/SVF-doxygen/html/html/functions_o.html +16 -8
- package/SVF-doxygen/html/html/functions_p.html +23 -17
- package/SVF-doxygen/html/html/functions_r.html +13 -6
- package/SVF-doxygen/html/html/functions_s.html +9 -9
- package/SVF-doxygen/html/html/functions_t.html +18 -9
- package/SVF-doxygen/html/html/functions_type_d.html +3 -0
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_b.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_c.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_d.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_f.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_n.html +18 -0
- package/SVF-doxygen/html/html/functions_vars_o.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_r.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_t.html +6 -0
- package/SVF-doxygen/html/html/functions_w.html +8 -6
- package/SVF-doxygen/html/html/globals_f.html +3 -3
- package/SVF-doxygen/html/html/hierarchy.html +413 -412
- package/SVF-doxygen/html/html/menudata.js +2 -0
- package/SVF-doxygen/html/html/namespaceSVF.html +8 -8
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +47 -16
- package/SVF-doxygen/html/html/namespacemembers_func.html +17 -10
- package/SVF-doxygen/html/html/namespacemembers_h.html +76 -0
- package/SVF-doxygen/html/html/search/all_10.js +9 -8
- package/SVF-doxygen/html/html/search/all_12.js +5 -2
- package/SVF-doxygen/html/html/search/all_13.js +7 -7
- package/SVF-doxygen/html/html/search/all_14.js +8 -5
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +1 -0
- package/SVF-doxygen/html/html/search/all_3.js +4 -0
- package/SVF-doxygen/html/html/search/all_4.js +4 -0
- package/SVF-doxygen/html/html/search/all_5.js +2 -0
- package/SVF-doxygen/html/html/search/all_6.js +4 -3
- package/SVF-doxygen/html/html/search/all_7.js +4 -2
- package/SVF-doxygen/html/html/search/all_8.js +1 -0
- package/SVF-doxygen/html/html/search/all_c.js +4 -3
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +9 -4
- package/SVF-doxygen/html/html/search/all_f.js +4 -2
- package/SVF-doxygen/html/html/search/classes_2.js +1 -0
- package/SVF-doxygen/html/html/search/functions_10.js +1 -1
- package/SVF-doxygen/html/html/search/functions_11.js +1 -0
- package/SVF-doxygen/html/html/search/functions_2.js +2 -0
- package/SVF-doxygen/html/html/search/functions_3.js +1 -0
- package/SVF-doxygen/html/html/search/functions_4.js +1 -0
- package/SVF-doxygen/html/html/search/functions_6.js +4 -2
- package/SVF-doxygen/html/html/search/functions_7.js +1 -0
- package/SVF-doxygen/html/html/search/functions_e.js +3 -2
- package/SVF-doxygen/html/html/search/functions_f.js +2 -0
- package/SVF-doxygen/html/html/search/typedefs_3.js +1 -0
- package/SVF-doxygen/html/html/search/variables_12.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +3 -1
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_2.js +1 -0
- package/SVF-doxygen/html/html/search/variables_3.js +1 -0
- package/SVF-doxygen/html/html/search/variables_4.js +2 -0
- package/SVF-doxygen/html/html/search/variables_5.js +1 -0
- package/SVF-doxygen/html/html/search/variables_6.js +1 -0
- package/SVF-doxygen/html/html/search/variables_c.js +1 -0
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +7 -2
- package/SVF-doxygen/html/html/search/variables_f.js +2 -0
- 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 +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
- package/include/SABER/ProgSlice.h +0 -3
- package/include/Util/NodeIDAllocator.h +94 -0
- package/include/Util/SVFUtil.h +3 -0
- package/include/WPA/Andersen.h +4 -0
- package/include/WPA/FlowSensitive.h +9 -0
- package/include/WPA/VersionedFlowSensitive.h +3 -0
- package/lib/Graphs/SVFG.cpp +0 -20
- package/lib/Graphs/VFG.cpp +18 -0
- package/lib/MemoryModel/PointsTo.cpp +76 -19
- package/lib/SABER/ProgSlice.cpp +0 -37
- package/lib/SABER/SaberAnnotator.cpp +1 -1
- package/lib/Util/NodeIDAllocator.cpp +548 -1
- package/lib/Util/SVFUtil.cpp +19 -0
- package/lib/WPA/Andersen.cpp +34 -0
- package/lib/WPA/FlowSensitive.cpp +70 -0
- package/lib/WPA/VersionedFlowSensitive.cpp +20 -0
- package/package.json +1 -1
package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html
CHANGED
|
@@ -359,7 +359,7 @@ template<class EdgeIter > </div>
|
|
|
359
359
|
<div class="fragment"><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = PAG::getPAG()->getPAGNode(n->getId());</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keywordtype">bool</span> briefDisplay = Options::BriefConsCGDotGraph;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordtype">bool</span> nameDisplay = <span class="keyword">true</span>;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  std::string str;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span> </div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordflow">if</span> (briefDisplay)</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ValPN>(node))</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  {</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">if</span> (nameDisplay)</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  rawstr << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">":"</span> << node-><a class="code" href="classSVF_1_1PAGNode.html#a32174f36da4ceeecd0f094b2f8321598">getValueName</a>();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  rawstr << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  }</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  rawstr << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  }</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  {</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="comment">// print the whole value</span></div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<DummyValPN>(node) && !SVFUtil::isa<DummyObjPN>(node))</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  rawstr << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">":"</span> << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(node-><a class="code" href="classSVF_1_1PAGNode.html#a45be6b7b2f1f9754ea47e511e65d46ae">getValue</a>());</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  rawstr << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">":"</span>;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  }</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  }</div><div class="ttc" id="classSVF_1_1PAGNode_html_a45be6b7b2f1f9754ea47e511e65d46ae"><div class="ttname"><a href="classSVF_1_1PAGNode.html#a45be6b7b2f1f9754ea47e511e65d46ae">SVF::PAGNode::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00094">PAGNode.h:94</a></div></div>
|
|
360
360
|
<div class="ttc" id="classSVF_1_1PAGNode_html_a32174f36da4ceeecd0f094b2f8321598"><div class="ttname"><a href="classSVF_1_1PAGNode.html#a32174f36da4ceeecd0f094b2f8321598">SVF::PAGNode::getValueName</a></div><div class="ttdeci">virtual const std::string getValueName() const =0</div><div class="ttdoc">Get name of the LLVM value. </div></div>
|
|
361
361
|
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
|
|
362
|
-
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#
|
|
362
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00387">SVFUtil.cpp:387</a></div></div>
|
|
363
363
|
<div class="ttc" id="classSVF_1_1PAGNode_html"><div class="ttname"><a href="classSVF_1_1PAGNode.html">SVF::PAGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00046">PAGNode.h:46</a></div></div>
|
|
364
364
|
<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#l00164">GenericGraph.h:164</a></div></div>
|
|
365
365
|
</div><!-- fragment -->
|
|
@@ -409,7 +409,7 @@ template<class EdgeIter > </div>
|
|
|
409
409
|
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
|
|
410
410
|
<div class="ttc" id="classSVF_1_1RetBlockNode_html"><div class="ttname"><a href="classSVF_1_1RetBlockNode.html">SVF::RetBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00459">ICFGNode.h:459</a></div></div>
|
|
411
411
|
<div class="ttc" id="classSVF_1_1FunExitBlockNode_html"><div class="ttname"><a href="classSVF_1_1FunExitBlockNode.html">SVF::FunExitBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00308">ICFGNode.h:308</a></div></div>
|
|
412
|
-
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#
|
|
412
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00387">SVFUtil.cpp:387</a></div></div>
|
|
413
413
|
<div class="ttc" id="classSVF_1_1IntraBlockNode_html"><div class="ttname"><a href="classSVF_1_1IntraBlockNode.html">SVF::IntraBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00175">ICFGNode.h:175</a></div></div>
|
|
414
414
|
<div class="ttc" id="classSVF_1_1PAGEdge_html_a85c0939ab55d744d32f5fda2b54f07e3"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a85c0939ab55d744d32f5fda2b54f07e3">SVF::PAGEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00200">PAG.cpp:200</a></div></div>
|
|
415
415
|
<div class="ttc" id="cuddInt_8c_html_a936a27e51e66afb57c2b3a12d78a238e"><div class="ttname"><a href="cuddInt_8c.html#a936a27e51e66afb57c2b3a12d78a238e">entry</a></div><div class="ttdeci">static int * entry</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l08422">cuddInt.c:8422</a></div></div>
|
|
@@ -119,7 +119,7 @@ Static Public Member Functions</h2></td></tr>
|
|
|
119
119
|
struct llvm::DOTGraphTraits< SVFG * ></h3>
|
|
120
120
|
|
|
121
121
|
|
|
122
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
122
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00751">751</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
123
123
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
124
124
|
<a id="a07ad41a658bfc0a404a5f6abc823040b"></a>
|
|
125
125
|
<h2 class="memtitle"><span class="permalink"><a href="#a07ad41a658bfc0a404a5f6abc823040b">◆ </a></span>NodeType</h2>
|
|
@@ -133,7 +133,7 @@ struct llvm::DOTGraphTraits< SVFG * ></h3>
|
|
|
133
133
|
</table>
|
|
134
134
|
</div><div class="memdoc">
|
|
135
135
|
|
|
136
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
136
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00754">754</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
137
137
|
|
|
138
138
|
</div>
|
|
139
139
|
</div>
|
|
@@ -162,8 +162,8 @@ struct llvm::DOTGraphTraits< SVFG * ></h3>
|
|
|
162
162
|
</table>
|
|
163
163
|
</div><div class="memdoc">
|
|
164
164
|
|
|
165
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
166
|
-
<div class="fragment"><div class="line"><a name="
|
|
165
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00755">755</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
166
|
+
<div class="fragment"><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  :</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  DOTGraphTraits<PAG*>(isSimple)</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  }</div></div><!-- fragment -->
|
|
167
167
|
</div>
|
|
168
168
|
</div>
|
|
169
169
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
@@ -203,8 +203,8 @@ struct llvm::DOTGraphTraits< SVFG * ></h3>
|
|
|
203
203
|
|
|
204
204
|
<p>Return label of a VFG node with MemSSA information. </p>
|
|
205
205
|
|
|
206
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
207
|
-
<div class="fragment"><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  {</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span> </div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  std::string str;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtSVFGNode>(node))</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  rawstr << stmtNode->toString();</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  }</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast<BinaryOPVFGNode>(node))</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  {</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  rawstr << bop->toString();</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  }</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast<UnaryOPVFGNode>(node))</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  {</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  rawstr << uop->toString();</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  }</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast<CmpVFGNode>(node))</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  {</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  rawstr << cmp->toString();</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  }</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* mphi = SVFUtil::dyn_cast<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  {</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  rawstr << mphi->toString();</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  }</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* tphi = SVFUtil::dyn_cast<PHISVFGNode>(node))</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  {</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  rawstr << tphi->toString();</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  }</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* fi = SVFUtil::dyn_cast<FormalINSVFGNode>(node))</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  {</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  rawstr << fi->toString();</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  }</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* fo = SVFUtil::dyn_cast<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  rawstr << fo->toString();</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  }</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>* fp = SVFUtil::dyn_cast<FormalParmSVFGNode>(node))</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  {</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  rawstr << fp->toString();</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  }</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* ai = SVFUtil::dyn_cast<ActualINSVFGNode>(node))</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  {</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  rawstr << ai->toString();</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  }</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* ao = SVFUtil::dyn_cast<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  {</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  rawstr << ao->toString();</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  }</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>* ap = SVFUtil::dyn_cast<ActualParmSVFGNode>(node))</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  {</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  rawstr << ap->toString();</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  }</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NullPtrVFGNode.html">NullPtrSVFGNode</a>* nptr = SVFUtil::dyn_cast<NullPtrSVFGNode>(node))</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  {</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  rawstr << nptr->toString();</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  }</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>* ar = SVFUtil::dyn_cast<ActualRetSVFGNode>(node))</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  rawstr << ar->toString();</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  }</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>* fr = SVFUtil::dyn_cast<FormalRetSVFGNode>(node))</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  {</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  rawstr << fr->toString();</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  }</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"what else kinds of nodes do we have??"</span>);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span> </div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00388">VFGNode.h:388</a></div></div>
|
|
206
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00856">856</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
207
|
+
<div class="fragment"><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  {</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span> </div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  std::string str;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtSVFGNode>(node))</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  rawstr << stmtNode->toString();</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast<BinaryOPVFGNode>(node))</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  {</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  rawstr << bop->toString();</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  }</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast<UnaryOPVFGNode>(node))</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  {</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  rawstr << uop->toString();</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  }</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast<CmpVFGNode>(node))</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  {</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  rawstr << cmp->toString();</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  }</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* mphi = SVFUtil::dyn_cast<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  {</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  rawstr << mphi->toString();</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  }</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* tphi = SVFUtil::dyn_cast<PHISVFGNode>(node))</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  rawstr << tphi->toString();</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  }</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* fi = SVFUtil::dyn_cast<FormalINSVFGNode>(node))</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  {</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  rawstr << fi->toString();</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  }</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* fo = SVFUtil::dyn_cast<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  {</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  rawstr << fo->toString();</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  }</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>* fp = SVFUtil::dyn_cast<FormalParmSVFGNode>(node))</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  {</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  rawstr << fp->toString();</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  }</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* ai = SVFUtil::dyn_cast<ActualINSVFGNode>(node))</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  {</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  rawstr << ai->toString();</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  }</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* ao = SVFUtil::dyn_cast<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  {</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  rawstr << ao->toString();</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  }</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>* ap = SVFUtil::dyn_cast<ActualParmSVFGNode>(node))</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  {</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  rawstr << ap->toString();</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  }</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NullPtrVFGNode.html">NullPtrSVFGNode</a>* nptr = SVFUtil::dyn_cast<NullPtrSVFGNode>(node))</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  rawstr << nptr->toString();</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  }</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>* ar = SVFUtil::dyn_cast<ActualRetSVFGNode>(node))</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  {</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  rawstr << ar->toString();</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  }</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>* fr = SVFUtil::dyn_cast<FormalRetSVFGNode>(node))</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  {</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  rawstr << fr->toString();</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  }</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"what else kinds of nodes do we have??"</span>);</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span> </div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00388">VFGNode.h:388</a></div></div>
|
|
208
208
|
<div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00779">VFGNode.h:779</a></div></div>
|
|
209
209
|
<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>
|
|
210
210
|
<div class="ttc" id="classSVF_1_1FormalOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalOUTSVFGNode.html">SVF::FormalOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00135">SVFGNode.h:135</a></div></div>
|
|
@@ -266,8 +266,8 @@ template<class EdgeIter > </div>
|
|
|
266
266
|
</table>
|
|
267
267
|
</div><div class="memdoc">
|
|
268
268
|
|
|
269
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
270
|
-
<div class="fragment"><div class="line"><a name="
|
|
269
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l01046">1046</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
270
|
+
<div class="fragment"><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  {</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge && <span class="stringliteral">"No edge found!!"</span>);</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DirectSVFGEdge>(edge))</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  {</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CallDirSVFGEdge>(edge))</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=solid,color=red"</span>;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetDirSVFGEdge>(edge))</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=solid,color=blue"</span>;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=solid"</span>;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  }</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<IndirectSVFGEdge>(edge))</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  {</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CallIndSVFGEdge>(edge))</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=dashed,color=red"</span>;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetIndSVFGEdge>(edge))</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=dashed,color=blue"</span>;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  <span class="keywordflow">return</span> <span class="stringliteral">"style=dashed"</span>;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  }</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</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>
|
|
271
271
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
272
272
|
</div><!-- fragment -->
|
|
273
273
|
</div>
|
|
@@ -308,8 +308,8 @@ template<class EdgeIter > </div>
|
|
|
308
308
|
</table>
|
|
309
309
|
</div><div class="memdoc">
|
|
310
310
|
|
|
311
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
312
|
-
<div class="fragment"><div class="line"><a name="
|
|
311
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l01072">1072</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
312
|
+
<div class="fragment"><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  {</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge && <span class="stringliteral">"No edge found!!"</span>);</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> </div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  std::string str;</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* dirCall = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge))</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  rawstr << dirCall->getCallSiteId();</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* dirRet = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge))</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  rawstr << dirRet->getCallSiteId();</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CallIndSVFGEdge.html">CallIndSVFGEdge</a>* indCall = SVFUtil::dyn_cast<CallIndSVFGEdge>(edge))</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  rawstr << indCall->getCallSiteId();</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1RetIndSVFGEdge.html">RetIndSVFGEdge</a>* indRet = SVFUtil::dyn_cast<RetIndSVFGEdge>(edge))</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  rawstr << indRet->getCallSiteId();</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> </div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  }</div><div class="ttc" id="classSVF_1_1RetIndSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetIndSVFGEdge.html">SVF::RetIndSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00177">SVFGEdge.h:177</a></div></div>
|
|
313
313
|
<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>
|
|
314
314
|
<div class="ttc" id="classSVF_1_1CallIndSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallIndSVFGEdge.html">SVF::CallIndSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00138">SVFGEdge.h:138</a></div></div>
|
|
315
315
|
<div class="ttc" id="classSVF_1_1CallDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html">SVF::CallDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00211">VFGEdge.h:211</a></div></div>
|
|
@@ -345,8 +345,8 @@ template<class EdgeIter > </div>
|
|
|
345
345
|
|
|
346
346
|
<p>Return name of the graph. </p>
|
|
347
347
|
|
|
348
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
349
|
-
<div class="fragment"><div class="line"><a name="
|
|
348
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00761">761</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
349
|
+
<div class="fragment"><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  {</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">return</span> <span class="stringliteral">"SVFG"</span>;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  }</div></div><!-- fragment -->
|
|
350
350
|
</div>
|
|
351
351
|
</div>
|
|
352
352
|
<a id="a2efe884d285b1e4a0541e022f9ed40df"></a>
|
|
@@ -384,8 +384,8 @@ template<class EdgeIter > </div>
|
|
|
384
384
|
</div><div class="memdoc">
|
|
385
385
|
<p>dump slice information </p>
|
|
386
386
|
|
|
387
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
388
|
-
<div class="fragment"><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  {</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  std::string str;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span> </div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtSVFGNode>(node))</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  {</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* edge = stmtNode->getPAGEdge();</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <span class="keywordflow">if</span> (SVFUtil::isa<AddrPE>(edge))</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  {</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  rawstr << <span class="stringliteral">"color=green"</span>;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  }</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CopyPE>(edge))</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  {</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  }</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetPE>(edge))</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  {</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  rawstr << <span class="stringliteral">"color=black,style=dotted"</span>;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  }</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<GepPE>(edge))</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  {</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  rawstr << <span class="stringliteral">"color=purple"</span>;</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  }</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StorePE>(edge))</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  {</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  rawstr << <span class="stringliteral">"color=blue"</span>;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  }</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadPE>(edge))</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  {</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  rawstr << <span class="stringliteral">"color=red"</span>;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  }</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  {</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 && <span class="stringliteral">"No such kind edge!!"</span>);</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  }</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  rawstr << <span class="stringliteral">""</span>;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  }</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  {</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  }</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<PHISVFGNode>(node))</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  {</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  }</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<NullPtrSVFGNode>(node))</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  {</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  }</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FormalINSVFGNode>(node))</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  {</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  }</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  {</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  }</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FormalParmSVFGNode>(node))</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  }</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualINSVFGNode>(node))</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  {</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  }</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  {</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  }</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualParmSVFGNode>(node))</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  {</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualRetSVFGNode>(node))</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  {</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  }</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalRetSVFGNode>(node))</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  {</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  }</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<BinaryOPVFGNode>(node))</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  {</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  rawstr << <span class="stringliteral">"color=black,penwidth=2"</span>;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  }</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CmpVFGNode>(node))</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  rawstr << <span class="stringliteral">"color=black,penwidth=2"</span>;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  }</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<UnaryOPVFGNode>(node))</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  {</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  rawstr << <span class="stringliteral">"color=black,penwidth=2"</span>;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  }</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"no such kind of node!!"</span>);</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> </div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  <span class="keywordflow">if</span>(graph-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#a72c93b86e95bdbe32ade33f7264f4c0a">isSource</a>(node))</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  {</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  rawstr << <span class="stringliteral">",style=filled, fillcolor=red"</span>;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  }</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(graph-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#ae905f0d64db3039f8fd3c117c4624e31">isSink</a>(node))</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  {</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  rawstr << <span class="stringliteral">",style=filled, fillcolor=blue"</span>;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  }</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(graph-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#a6e68486e02db81cbbedc942ace3e9590">inBackwardSlice</a>(node))</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  {</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  rawstr << <span class="stringliteral">",style=filled, fillcolor=yellow"</span>;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  }</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(graph-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#adc6a5c3e430bdf942f1462e101ac6917">inForwardSlice</a>(node))</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  rawstr << <span class="stringliteral">",style=filled, fillcolor=gray"</span>;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> </div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  rawstr << <span class="stringliteral">""</span>;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> </div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  }</div><div class="ttc" id="classSVF_1_1PAGEdge_html"><div class="ttname"><a href="classSVF_1_1PAGEdge.html">SVF::PAGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00047">PAGEdge.h:47</a></div></div>
|
|
387
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00927">927</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
388
|
+
<div class="fragment"><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  {</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  std::string str;</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span> </div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtSVFGNode>(node))</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  {</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* edge = stmtNode->getPAGEdge();</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordflow">if</span> (SVFUtil::isa<AddrPE>(edge))</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  {</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  rawstr << <span class="stringliteral">"color=green"</span>;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  }</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CopyPE>(edge))</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  {</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  }</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetPE>(edge))</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  {</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  rawstr << <span class="stringliteral">"color=black,style=dotted"</span>;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  }</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<GepPE>(edge))</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  {</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  rawstr << <span class="stringliteral">"color=purple"</span>;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  }</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StorePE>(edge))</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  {</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  rawstr << <span class="stringliteral">"color=blue"</span>;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  }</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadPE>(edge))</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  {</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  rawstr << <span class="stringliteral">"color=red"</span>;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  }</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  {</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 && <span class="stringliteral">"No such kind edge!!"</span>);</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  }</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  rawstr << <span class="stringliteral">""</span>;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  }</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  {</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  }</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<PHISVFGNode>(node))</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  {</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  rawstr << <span class="stringliteral">"color=black"</span>;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  }</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<NullPtrSVFGNode>(node))</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  {</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  rawstr << <span class="stringliteral">"color=grey"</span>;</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  }</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FormalINSVFGNode>(node))</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  {</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  }</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  {</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  }</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<FormalParmSVFGNode>(node))</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  {</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  }</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualINSVFGNode>(node))</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  {</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  }</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  {</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  }</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ActualParmSVFGNode>(node))</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  {</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  }</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualRetSVFGNode>(node))</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  {</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  }</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalRetSVFGNode>(node))</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  rawstr << <span class="stringliteral">"color=yellow,penwidth=2"</span>;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  }</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<BinaryOPVFGNode>(node))</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  {</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  rawstr << <span class="stringliteral">"color=black,penwidth=2"</span>;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  }</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CmpVFGNode>(node))</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  {</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  rawstr << <span class="stringliteral">"color=black,penwidth=2"</span>;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  }</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<UnaryOPVFGNode>(node))</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  {</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  rawstr << <span class="stringliteral">"color=black,penwidth=2"</span>;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"no such kind of node!!"</span>);</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <span class="keywordflow">if</span>(graph-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#a72c93b86e95bdbe32ade33f7264f4c0a">isSource</a>(node))</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  {</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  rawstr << <span class="stringliteral">",style=filled, fillcolor=red"</span>;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  }</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(graph-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#ae905f0d64db3039f8fd3c117c4624e31">isSink</a>(node))</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  {</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  rawstr << <span class="stringliteral">",style=filled, fillcolor=blue"</span>;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  }</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(graph-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#a6e68486e02db81cbbedc942ace3e9590">inBackwardSlice</a>(node))</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  rawstr << <span class="stringliteral">",style=filled, fillcolor=yellow"</span>;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  }</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(graph-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#adc6a5c3e430bdf942f1462e101ac6917">inForwardSlice</a>(node))</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  rawstr << <span class="stringliteral">",style=filled, fillcolor=gray"</span>;</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> </div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  rawstr << <span class="stringliteral">""</span>;</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> </div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  }</div><div class="ttc" id="classSVF_1_1PAGEdge_html"><div class="ttname"><a href="classSVF_1_1PAGEdge.html">SVF::PAGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00047">PAGEdge.h:47</a></div></div>
|
|
389
389
|
<div class="ttc" id="classSVF_1_1SVFG_html_a8ba934714a7f2caf2e041002fdb66137"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">SVF::SVFG::getStat</a></div><div class="ttdeci">SVFGStat * getStat() const</div><div class="ttdoc">Return statistics. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00125">SVFG.h:125</a></div></div>
|
|
390
390
|
<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>
|
|
391
391
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a72c93b86e95bdbe32ade33f7264f4c0a"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a72c93b86e95bdbe32ade33f7264f4c0a">SVF::SVFGStat::isSource</a></div><div class="ttdeci">bool isSource(const SVFGNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00261">SVFGStat.h:261</a></div></div>
|
|
@@ -431,8 +431,8 @@ template<class EdgeIter > </div>
|
|
|
431
431
|
</table>
|
|
432
432
|
</div><div class="memdoc">
|
|
433
433
|
|
|
434
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
435
|
-
<div class="fragment"><div class="line"><a name="
|
|
434
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00776">776</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
435
|
+
<div class="fragment"><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  {</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">if</span> (isSimple())</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">return</span> getSimpleNodeLabel(node, graph);</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keywordflow">return</span> getCompleteNodeLabel(node, graph);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  }</div></div><!-- fragment -->
|
|
436
436
|
</div>
|
|
437
437
|
</div>
|
|
438
438
|
<a id="a63cc361875e61f4729381b23dcee2787"></a>
|
|
@@ -471,8 +471,8 @@ template<class EdgeIter > </div>
|
|
|
471
471
|
|
|
472
472
|
<p>Return label of a VFG node without MemSSA information. </p>
|
|
473
473
|
|
|
474
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
475
|
-
<div class="fragment"><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  std::string str;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtSVFGNode>(node))</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  rawstr << stmtNode->toString();</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* tphi = SVFUtil::dyn_cast<PHISVFGNode>(node))</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  rawstr << tphi->toString();</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  }</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>* fp = SVFUtil::dyn_cast<FormalParmSVFGNode>(node))</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  rawstr << fp->toString();</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  }</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>* ap = SVFUtil::dyn_cast<ActualParmSVFGNode>(node))</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  rawstr << ap->toString();</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  }</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>* ar = SVFUtil::dyn_cast<ActualRetSVFGNode>(node))</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  rawstr << ar->toString();</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  }</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>* fr = SVFUtil::dyn_cast<FormalRetSVFGNode>(node))</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  {</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  rawstr << fr->toString();</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  }</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* fi = SVFUtil::dyn_cast<FormalINSVFGNode>(node))</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  rawstr << fi->toString();</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* fo = SVFUtil::dyn_cast<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  {</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  rawstr << fo->toString();</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* ai = SVFUtil::dyn_cast<ActualINSVFGNode>(node))</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  {</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  rawstr << ai->toString();</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  }</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* ao = SVFUtil::dyn_cast<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  {</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  rawstr << ao->toString();</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  }</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* mphi = SVFUtil::dyn_cast<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  {</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  rawstr << mphi->toString();</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<NullPtrSVFGNode>(node))</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  {</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  rawstr << <span class="stringliteral">"NullPtr"</span>;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  }</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast<BinaryOPVFGNode>(node))</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  {</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  rawstr << bop->toString();</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  }</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast<UnaryOPVFGNode>(node))</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  rawstr << uop->toString();</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast<CmpVFGNode>(node))</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  {</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  rawstr << cmp->toString();</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  }</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"what else kinds of nodes do we have??"</span>);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span> </div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00388">VFGNode.h:388</a></div></div>
|
|
474
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00785">785</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
475
|
+
<div class="fragment"><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  {</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  std::string str;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* stmtNode = SVFUtil::dyn_cast<StmtSVFGNode>(node))</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  {</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  rawstr << stmtNode->toString();</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  }</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* tphi = SVFUtil::dyn_cast<PHISVFGNode>(node))</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  rawstr << tphi->toString();</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  }</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>* fp = SVFUtil::dyn_cast<FormalParmSVFGNode>(node))</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  rawstr << fp->toString();</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>* ap = SVFUtil::dyn_cast<ActualParmSVFGNode>(node))</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  {</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  rawstr << ap->toString();</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  }</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>* ar = SVFUtil::dyn_cast<ActualRetSVFGNode>(node))</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  rawstr << ar->toString();</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>* fr = SVFUtil::dyn_cast<FormalRetSVFGNode>(node))</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  rawstr << fr->toString();</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* fi = SVFUtil::dyn_cast<FormalINSVFGNode>(node))</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  rawstr << fi->toString();</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  }</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* fo = SVFUtil::dyn_cast<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  rawstr << fo->toString();</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  }</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* ai = SVFUtil::dyn_cast<ActualINSVFGNode>(node))</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  rawstr << ai->toString();</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  }</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* ao = SVFUtil::dyn_cast<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  rawstr << ao->toString();</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  }</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* mphi = SVFUtil::dyn_cast<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  {</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  rawstr << mphi->toString();</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  }</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<NullPtrSVFGNode>(node))</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  rawstr << <span class="stringliteral">"NullPtr"</span>;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast<BinaryOPVFGNode>(node))</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  {</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  rawstr << bop->toString();</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast<UnaryOPVFGNode>(node))</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  {</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  rawstr << uop->toString();</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  }</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast<CmpVFGNode>(node))</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  {</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  rawstr << cmp->toString();</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  }</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"what else kinds of nodes do we have??"</span>);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span> </div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00388">VFGNode.h:388</a></div></div>
|
|
476
476
|
<div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00779">VFGNode.h:779</a></div></div>
|
|
477
477
|
<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>
|
|
478
478
|
<div class="ttc" id="classSVF_1_1FormalOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalOUTSVFGNode.html">SVF::FormalOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00135">SVFGNode.h:135</a></div></div>
|
|
@@ -516,8 +516,8 @@ template<class EdgeIter > </div>
|
|
|
516
516
|
</div><div class="memdoc">
|
|
517
517
|
<p>isNodeHidden - If the function returns true, the given node is not displayed in the graph </p>
|
|
518
518
|
|
|
519
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
520
|
-
<div class="fragment"><div class="line"><a name="
|
|
519
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00771">771</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
520
|
+
<div class="fragment"><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().empty() && node-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>().empty();</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  }</div><div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy & getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00181">GenericGraph.h:181</a></div></div>
|
|
521
521
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a2d9cd758d6f8c5189d9b90b74f43e009"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">SVF::GenericNode::getOutEdges</a></div><div class="ttdeci">const GEdgeSetTy & getOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00177">GenericGraph.h:177</a></div></div>
|
|
522
522
|
</div><!-- fragment -->
|
|
523
523
|
</div>
|