svf-tools 1.0.595 → 1.0.597
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/Andersen_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CFLGraph_8cpp.html +3 -2
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +15 -13
- package/SVF-doxygen/html/html/CFLGraph_8h.html +4 -6
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +19 -18
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CHG_8cpp.html +6 -5
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +26 -24
- package/SVF-doxygen/html/html/CHG_8h.html +4 -6
- package/SVF-doxygen/html/html/CHG_8h_source.html +13 -12
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ConsG_8cpp.html +3 -2
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +27 -26
- package/SVF-doxygen/html/html/ConsG_8h.html +4 -6
- package/SVF-doxygen/html/html/ConsG_8h_source.html +10 -9
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +21 -19
- package/SVF-doxygen/html/html/DCHG_8h.html +4 -6
- package/SVF-doxygen/html/html/DCHG_8h_source.html +15 -14
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
- package/SVF-doxygen/html/html/DOTGraphTraits_8h.html +97 -0
- package/SVF-doxygen/html/html/DOTGraphTraits_8h_source.html +102 -0
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/GenericGraph_8h.html +15 -6
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +128 -115
- package/SVF-doxygen/html/html/GraphPrinter_8h.html +5 -6
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +8 -5
- package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +4 -3
- package/SVF-doxygen/html/html/GraphTraits_8h.html +118 -0
- package/SVF-doxygen/html/html/GraphTraits_8h_source.html +91 -0
- package/SVF-doxygen/html/html/GraphWriter_8cpp.html +81 -0
- package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +80 -0
- package/SVF-doxygen/html/html/GraphWriter_8h.html +138 -0
- package/SVF-doxygen/html/html/GraphWriter_8h_source.html +129 -0
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFG_8cpp.html +3 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +27 -26
- package/SVF-doxygen/html/html/ICFG_8h.html +4 -6
- package/SVF-doxygen/html/html/ICFG_8h_source.html +14 -13
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp.html +3 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -18
- package/SVF-doxygen/html/html/IRGraph_8h.html +4 -6
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +9 -8
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +7 -6
- package/SVF-doxygen/html/html/LLVMModule_8cpp.html +4 -3
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +57 -58
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +36 -36
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +16 -9
- package/SVF-doxygen/html/html/LLVMUtil_8h.html +6 -0
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +6 -4
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/MHP_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8cpp.html +3 -2
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +27 -25
- package/SVF-doxygen/html/html/PTACallGraph_8h.html +4 -6
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -16
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SCC_8h_source.html +4 -2
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFG_8cpp.html +3 -2
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/SVFG_8h.html +1 -3
- package/SVF-doxygen/html/html/SVFG_8h_source.html +13 -13
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +15 -14
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +12 -12
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +16 -19
- package/SVF-doxygen/html/html/SVFValue_8h.html +3 -3
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +210 -213
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +13 -14
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -10
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -4
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8cpp.html +3 -2
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +38 -37
- package/SVF-doxygen/html/html/TCT_8h.html +4 -6
- package/SVF-doxygen/html/html/TCT_8h_source.html +27 -26
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +7 -7
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +6 -6
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +8 -8
- package/SVF-doxygen/html/html/VFG_8cpp.html +3 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -19
- package/SVF-doxygen/html/html/VFG_8h.html +4 -6
- package/SVF-doxygen/html/html/VFG_8h_source.html +14 -13
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +3 -2
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +4 -2
- package/SVF-doxygen/html/html/annotated.html +291 -278
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode-members.html +45 -44
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +18 -17
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +31 -30
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +35 -32
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +44 -44
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +78 -78
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GraphPrinter-members.html +83 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphPrinter.html +236 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GraphWriter-members.html +100 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +882 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +12 -11
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +7 -6
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +129 -129
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +26 -25
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +7 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +16 -20
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +8 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +56 -63
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +7 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +12 -14
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +34 -38
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +5 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +7 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +10 -14
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +14 -18
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +7 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +23 -25
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +115 -119
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +9 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +14 -18
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +48 -47
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +11 -13
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +31 -35
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +7 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +5 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +25 -28
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +38 -128
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +14 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +29 -33
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +46 -46
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder-members.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +21 -54
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +72 -72
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode.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_1ThreadAPI.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +22 -21
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +7 -6
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base-members.html +112 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +633 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base-members.html +102 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base.html +787 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy-members.html +84 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +229 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__range-members.html +87 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +342 -0
- package/SVF-doxygen/html/html/classSVF_1_1mapped__iter-members.html +112 -0
- package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +322 -0
- package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator-members.html +113 -0
- package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +343 -0
- package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.png +0 -0
- package/SVF-doxygen/html/html/classes.html +105 -102
- package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +9 -7
- package/SVF-doxygen/html/html/classllvm_1_1GraphWriter-members.html +100 -0
- package/SVF-doxygen/html/html/classllvm_1_1GraphWriter.html +882 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__adaptor__base-members.html +112 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__adaptor__base.html +633 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__adaptor__base.png +0 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base-members.html +102 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base.html +787 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base.png +0 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base_1_1ReferenceProxy-members.html +84 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base_1_1ReferenceProxy.html +229 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__range-members.html +87 -0
- package/SVF-doxygen/html/html/classllvm_1_1iterator__range.html +342 -0
- package/SVF-doxygen/html/html/classllvm_1_1mapped__iter-members.html +112 -0
- package/SVF-doxygen/html/html/classllvm_1_1mapped__iter.html +322 -0
- package/SVF-doxygen/html/html/classllvm_1_1mapped__iter.png +0 -0
- package/SVF-doxygen/html/html/classllvm_1_1pointer__iterator-members.html +113 -0
- package/SVF-doxygen/html/html/classllvm_1_1pointer__iterator.html +343 -0
- package/SVF-doxygen/html/html/classllvm_1_1pointer__iterator.png +0 -0
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -0
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +4 -0
- package/SVF-doxygen/html/html/dir_fa02919a30fec2d2c2d591b4d920d648.html +6 -0
- package/SVF-doxygen/html/html/fastcluster__R__dm_8cpp_8inc_source.html +2 -1
- package/SVF-doxygen/html/html/files.html +42 -36
- package/SVF-doxygen/html/html/functions_a.html +11 -8
- package/SVF-doxygen/html/html/functions_b.html +19 -12
- package/SVF-doxygen/html/html/functions_c.html +43 -42
- package/SVF-doxygen/html/html/functions_d.html +27 -15
- package/SVF-doxygen/html/html/functions_e.html +19 -7
- package/SVF-doxygen/html/html/functions_eval_b.html +4 -4
- package/SVF-doxygen/html/html/functions_eval_i.html +6 -0
- package/SVF-doxygen/html/html/functions_f.html +21 -18
- package/SVF-doxygen/html/html/functions_func.html +13 -10
- package/SVF-doxygen/html/html/functions_func_b.html +2 -1
- package/SVF-doxygen/html/html/functions_func_c.html +4 -4
- package/SVF-doxygen/html/html/functions_func_d.html +18 -14
- package/SVF-doxygen/html/html/functions_func_e.html +13 -2
- package/SVF-doxygen/html/html/functions_func_g.html +107 -75
- package/SVF-doxygen/html/html/functions_func_h.html +4 -4
- package/SVF-doxygen/html/html/functions_func_i.html +22 -11
- package/SVF-doxygen/html/html/functions_func_m.html +3 -0
- package/SVF-doxygen/html/html/functions_func_n.html +5 -2
- package/SVF-doxygen/html/html/functions_func_o.html +42 -8
- package/SVF-doxygen/html/html/functions_func_p.html +8 -2
- package/SVF-doxygen/html/html/functions_func_r.html +7 -1
- package/SVF-doxygen/html/html/functions_func_s.html +15 -18
- package/SVF-doxygen/html/html/functions_func_w.html +22 -1
- package/SVF-doxygen/html/html/functions_g.html +119 -78
- package/SVF-doxygen/html/html/functions_h.html +3 -6
- package/SVF-doxygen/html/html/functions_i.html +43 -15
- package/SVF-doxygen/html/html/functions_m.html +4 -1
- package/SVF-doxygen/html/html/functions_n.html +31 -25
- package/SVF-doxygen/html/html/functions_o.html +51 -22
- package/SVF-doxygen/html/html/functions_p.html +29 -19
- package/SVF-doxygen/html/html/functions_r.html +10 -5
- package/SVF-doxygen/html/html/functions_rela.html +6 -3
- package/SVF-doxygen/html/html/functions_s.html +22 -27
- package/SVF-doxygen/html/html/functions_t.html +6 -6
- package/SVF-doxygen/html/html/functions_type_b.html +3 -0
- package/SVF-doxygen/html/html/functions_type_c.html +6 -5
- package/SVF-doxygen/html/html/functions_type_d.html +5 -0
- package/SVF-doxygen/html/html/functions_type_e.html +4 -4
- package/SVF-doxygen/html/html/functions_type_g.html +6 -5
- package/SVF-doxygen/html/html/functions_type_i.html +3 -2
- package/SVF-doxygen/html/html/functions_type_n.html +26 -23
- package/SVF-doxygen/html/html/functions_type_p.html +2 -1
- package/SVF-doxygen/html/html/functions_type_r.html +1 -0
- package/SVF-doxygen/html/html/functions_type_v.html +1 -0
- package/SVF-doxygen/html/html/functions_v.html +8 -7
- package/SVF-doxygen/html/html/functions_vars_b.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_d.html +3 -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_g.html +9 -1
- package/SVF-doxygen/html/html/functions_vars_h.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_i.html +10 -0
- package/SVF-doxygen/html/html/functions_vars_o.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_p.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +22 -1
- package/SVF-doxygen/html/html/hierarchy.html +444 -397
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/iterator_8h.html +124 -0
- package/SVF-doxygen/html/html/iterator_8h_source.html +134 -0
- package/SVF-doxygen/html/html/iterator__range_8h.html +110 -0
- package/SVF-doxygen/html/html/iterator__range_8h_source.html +90 -0
- package/SVF-doxygen/html/html/menudata.js +17 -16
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +575 -9
- package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +107 -0
- package/SVF-doxygen/html/html/namespaceSVF_1_1GraphProgram.html +122 -0
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +65 -7
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +3 -3
- package/SVF-doxygen/html/html/namespacellvm.html +1 -95
- package/SVF-doxygen/html/html/namespacellvm_1_1DOT.html +107 -0
- package/SVF-doxygen/html/html/namespacellvm_1_1GraphProgram.html +122 -0
- package/SVF-doxygen/html/html/namespacemembers_c.html +9 -0
- package/SVF-doxygen/html/html/namespacemembers_d.html +5 -2
- package/SVF-doxygen/html/html/namespacemembers_e.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_enum.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_eval.html +15 -0
- package/SVF-doxygen/html/html/namespacemembers_f.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_func.html +0 -495
- package/SVF-doxygen/html/html/namespacemembers_func_b.html +88 -0
- package/SVF-doxygen/html/html/namespacemembers_func_c.html +97 -0
- package/SVF-doxygen/html/html/namespacemembers_func_d.html +97 -0
- package/SVF-doxygen/html/html/namespacemembers_func_e.html +82 -0
- package/SVF-doxygen/html/html/namespacemembers_func_f.html +76 -0
- package/SVF-doxygen/html/html/namespacemembers_func_g.html +186 -0
- package/SVF-doxygen/html/html/namespacemembers_func_h.html +76 -0
- package/SVF-doxygen/html/html/namespacemembers_func_i.html +253 -0
- package/SVF-doxygen/html/html/namespacemembers_func_m.html +91 -0
- package/SVF-doxygen/html/html/namespacemembers_func_n.html +76 -0
- package/SVF-doxygen/html/html/namespacemembers_func_o.html +94 -0
- package/SVF-doxygen/html/html/namespacemembers_func_p.html +82 -0
- package/SVF-doxygen/html/html/namespacemembers_func_r.html +79 -0
- package/SVF-doxygen/html/html/namespacemembers_func_s.html +91 -0
- package/SVF-doxygen/html/html/namespacemembers_func_t.html +76 -0
- package/SVF-doxygen/html/html/namespacemembers_func_v.html +85 -0
- package/SVF-doxygen/html/html/namespacemembers_func_w.html +82 -0
- package/SVF-doxygen/html/html/namespacemembers_g.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_i.html +12 -3
- package/SVF-doxygen/html/html/namespacemembers_m.html +12 -0
- package/SVF-doxygen/html/html/namespacemembers_n.html +9 -0
- package/SVF-doxygen/html/html/namespacemembers_r.html +4 -1
- package/SVF-doxygen/html/html/namespacemembers_t.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_type_g.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_type_r.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_v.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_w.html +3 -0
- package/SVF-doxygen/html/html/namespaces.html +4 -2
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +1 -0
- package/SVF-doxygen/html/html/search/all_10.js +13 -10
- package/SVF-doxygen/html/html/search/all_11.js +6 -3
- package/SVF-doxygen/html/html/search/all_12.js +7 -6
- package/SVF-doxygen/html/html/search/all_13.js +5 -4
- package/SVF-doxygen/html/html/search/all_15.js +6 -5
- package/SVF-doxygen/html/html/search/all_16.js +8 -1
- package/SVF-doxygen/html/html/search/all_2.js +6 -4
- package/SVF-doxygen/html/html/search/all_3.js +10 -7
- package/SVF-doxygen/html/html/search/all_4.js +21 -14
- package/SVF-doxygen/html/html/search/all_5.js +9 -4
- package/SVF-doxygen/html/html/search/all_6.js +3 -1
- package/SVF-doxygen/html/html/search/all_7.js +90 -46
- package/SVF-doxygen/html/html/search/all_8.js +1 -2
- package/SVF-doxygen/html/html/search/all_9.js +23 -5
- package/SVF-doxygen/html/html/search/all_d.js +6 -1
- package/SVF-doxygen/html/html/search/all_e.js +11 -8
- package/SVF-doxygen/html/html/search/all_f.js +19 -15
- package/SVF-doxygen/html/html/search/classes_3.js +13 -9
- package/SVF-doxygen/html/html/search/classes_6.js +64 -32
- package/SVF-doxygen/html/html/search/classes_8.js +11 -1
- package/SVF-doxygen/html/html/search/classes_a.js +1 -0
- package/SVF-doxygen/html/html/search/classes_d.js +2 -0
- package/SVF-doxygen/html/html/search/classes_e.js +1 -0
- package/SVF-doxygen/html/html/search/enums_8.js +1 -6
- package/SVF-doxygen/html/html/search/enums_9.js +6 -1
- package/SVF-doxygen/html/html/search/enums_a.js +1 -4
- package/SVF-doxygen/html/html/search/enums_b.js +4 -2
- package/SVF-doxygen/html/html/search/enums_c.js +2 -4
- package/SVF-doxygen/html/html/search/enums_d.js +4 -1
- package/SVF-doxygen/html/html/search/enums_e.html +26 -0
- package/SVF-doxygen/html/html/search/enums_e.js +4 -0
- package/SVF-doxygen/html/html/search/enumvalues_1.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_10.js +1 -0
- package/SVF-doxygen/html/html/search/enumvalues_2.js +1 -0
- package/SVF-doxygen/html/html/search/enumvalues_3.js +1 -0
- package/SVF-doxygen/html/html/search/enumvalues_5.js +1 -0
- package/SVF-doxygen/html/html/search/enumvalues_8.js +3 -1
- package/SVF-doxygen/html/html/search/enumvalues_b.js +1 -0
- package/SVF-doxygen/html/html/search/files_3.js +1 -0
- package/SVF-doxygen/html/html/search/files_6.js +4 -1
- package/SVF-doxygen/html/html/search/files_7.js +3 -1
- package/SVF-doxygen/html/html/search/functions_0.js +1 -0
- package/SVF-doxygen/html/html/search/functions_1.js +1 -1
- package/SVF-doxygen/html/html/search/functions_10.js +2 -0
- package/SVF-doxygen/html/html/search/functions_11.js +1 -2
- package/SVF-doxygen/html/html/search/functions_14.js +1 -0
- package/SVF-doxygen/html/html/search/functions_15.js +8 -1
- package/SVF-doxygen/html/html/search/functions_2.js +4 -2
- package/SVF-doxygen/html/html/search/functions_3.js +5 -4
- package/SVF-doxygen/html/html/search/functions_4.js +7 -3
- package/SVF-doxygen/html/html/search/functions_6.js +21 -12
- package/SVF-doxygen/html/html/search/functions_7.js +1 -1
- package/SVF-doxygen/html/html/search/functions_8.js +10 -4
- package/SVF-doxygen/html/html/search/functions_c.js +5 -0
- package/SVF-doxygen/html/html/search/functions_d.js +4 -2
- package/SVF-doxygen/html/html/search/functions_e.js +14 -8
- package/SVF-doxygen/html/html/search/functions_f.js +3 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +2 -0
- package/SVF-doxygen/html/html/search/related_9.js +3 -3
- package/SVF-doxygen/html/html/search/searchdata.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_1.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_13.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_3.js +2 -1
- package/SVF-doxygen/html/html/search/typedefs_4.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_6.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_7.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_c.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_e.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_f.js +2 -1
- package/SVF-doxygen/html/html/search/variables_10.js +1 -0
- package/SVF-doxygen/html/html/search/variables_13.js +3 -3
- package/SVF-doxygen/html/html/search/variables_2.js +1 -0
- package/SVF-doxygen/html/html/search/variables_3.js +1 -1
- package/SVF-doxygen/html/html/search/variables_4.js +1 -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_7.js +2 -1
- package/SVF-doxygen/html/html/search/variables_8.js +0 -1
- package/SVF-doxygen/html/html/search/variables_9.js +3 -0
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/search/variables_f.js +1 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits-members.html +99 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits.html +193 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4-members.html +105 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +443 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4-members.html +104 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +388 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4-members.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +481 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4-members.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +475 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4-members.html +107 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +486 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4-members.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +457 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4-members.html +108 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +595 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01TCT_01_5_01_4-members.html +105 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +409 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01TCT_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4-members.html +107 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +543 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DefaultDOTGraphTraits-members.html +99 -0
- package/SVF-doxygen/html/html/structSVF_1_1DefaultDOTGraphTraits.html +855 -0
- package/SVF-doxygen/html/html/structSVF_1_1DefaultDOTGraphTraits.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericEdge_1_1equalGEdge.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits.html +116 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4-members.html +88 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html +324 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4-members.html +99 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html +467 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4-members.html +89 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html +367 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFG_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1IRGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFVar_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCTNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCT_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCT_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFGNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFG_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1Inverse-members.html +82 -0
- package/SVF-doxygen/html/html/structSVF_1_1Inverse.html +154 -0
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +46 -46
- package/SVF-doxygen/html/html/structSVF_1_1pointee__iter-members.html +111 -0
- package/SVF-doxygen/html/html/structSVF_1_1pointee__iter.html +279 -0
- package/SVF-doxygen/html/html/structSVF_1_1pointee__iter.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits-members.html +99 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits.html +193 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4-members.html +22 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +67 -10
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4-members.html +21 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +65 -8
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4-members.html +22 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +72 -12
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4-members.html +23 -5
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +70 -10
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4-members.html +23 -5
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +68 -11
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4-members.html +23 -5
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +68 -11
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4-members.html +24 -6
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +76 -15
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4-members.html +22 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +67 -10
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4-members.html +24 -6
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +73 -12
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1DefaultDOTGraphTraits-members.html +99 -0
- package/SVF-doxygen/html/html/structllvm_1_1DefaultDOTGraphTraits.html +855 -0
- package/SVF-doxygen/html/html/structllvm_1_1DefaultDOTGraphTraits.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits.html +116 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html +106 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +12 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.html +12 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.html +12 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +12 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4-members.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html +33 -31
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +12 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.html +12 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html +12 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +12 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +12 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +10 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHNode_01_5_01_4.html +10 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.html +10 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +10 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4-members.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html +46 -44
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4-members.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html +38 -34
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +10 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.html +10 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html +10 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +10 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +10 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +5 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1Inverse-members.html +82 -0
- package/SVF-doxygen/html/html/structllvm_1_1Inverse.html +154 -0
- package/SVF-doxygen/html/html/structllvm_1_1pointee__iterator-members.html +111 -0
- package/SVF-doxygen/html/html/structllvm_1_1pointee__iterator.html +279 -0
- package/SVF-doxygen/html/html/structllvm_1_1pointee__iterator.png +0 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +9 -9
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/Graphs/CFLGraph.h +6 -6
- package/include/Graphs/CHG.h +6 -6
- package/include/Graphs/ConsG.h +6 -6
- package/include/Graphs/DOTGraphTraits.h +188 -0
- package/include/Graphs/GenericGraph.h +58 -18
- package/include/Graphs/GraphPrinter.h +14 -22
- package/include/Graphs/GraphTraits.h +150 -0
- package/include/Graphs/GraphWriter.h +380 -0
- package/include/Graphs/ICFG.h +6 -6
- package/include/Graphs/IRGraph.h +6 -7
- package/include/Graphs/PTACallGraph.h +6 -6
- package/include/Graphs/SVFG.h +6 -6
- package/include/Graphs/VFG.h +6 -6
- package/include/MTA/TCT.h +6 -6
- package/include/SABER/SrcSnkSolver.h +2 -2
- package/include/SVF-LLVM/DCHG.h +6 -6
- package/include/SVF-LLVM/LLVMUtil.h +5 -0
- package/include/SVF-LLVM/SymbolTableBuilder.h +0 -3
- package/include/SVFIR/SVFValue.h +2 -11
- package/include/SVFIR/SVFVariables.h +5 -5
- package/include/Util/GraphReachSolver.h +2 -2
- package/include/Util/SCC.h +1 -1
- package/include/Util/iterator.h +407 -0
- package/include/Util/iterator_range.h +76 -0
- package/include/WPA/WPASolver.h +1 -1
- package/lib/Graphs/CFLGraph.cpp +2 -2
- package/lib/Graphs/CHG.cpp +2 -2
- package/lib/Graphs/ConsG.cpp +2 -2
- package/lib/Graphs/GraphWriter.cpp +53 -0
- package/lib/Graphs/ICFG.cpp +2 -2
- package/lib/Graphs/IRGraph.cpp +2 -2
- package/lib/Graphs/PTACallGraph.cpp +2 -2
- package/lib/Graphs/SVFG.cpp +1 -1
- package/lib/Graphs/VFG.cpp +2 -2
- package/lib/MTA/TCT.cpp +1 -1
- package/lib/SVF-LLVM/LLVMModule.cpp +1 -2
- package/lib/SVF-LLVM/LLVMUtil.cpp +40 -0
- package/lib/SVF-LLVM/SVFIRBuilder.cpp +1 -1
- package/lib/SVF-LLVM/SymbolTableBuilder.cpp +0 -34
- package/lib/SVFIR/SVFValue.cpp +0 -1
- package/package.json +1 -1
|
@@ -66,7 +66,7 @@ $(function() {
|
|
|
66
66
|
<div class="title">DCHG.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="DCHG_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===----- DCHG.h -- CHG using DWARF debug info ---------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// This is based upon the original CHA.h (now CHG.h).</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">/*</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * DCHG.h</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * Created on: Aug 23, 2019</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> */</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// TODO: add a flag such that getCanonicalType returns its arg so</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// that the impl. does not "node collapsing" based on teq.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef DCHG_H_</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#define DCHG_H_</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="CHG_8h.html">Graphs/CHG.h</a>"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="CPPUtil_8h.html">SVF-LLVM/CPPUtil.h</a>"</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="SVFModule_8h.html">SVFIR/SVFModule.h</a>"</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="WorkList_8h.html">Util/WorkList.h</a>"</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">class </span>SVFModule;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">class </span>DCHNode;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html"> 30</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DCHEdge.html">DCHEdge</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge</a><DCHNode></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">enum</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  {</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba9c05805c60fe04033bd9815968059e90"> 35</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba9c05805c60fe04033bd9815968059e90">INHERITANCE</a>, <span class="comment">// inheritance relation</span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba3e807b4caeb170c5cd1e855ac1a92d77"> 36</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba3e807b4caeb170c5cd1e855ac1a92d77">INSTANCE</a>, <span class="comment">// template-instance relation</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba3b49b95b713f585b717810dce5ac6564"> 37</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba3b49b95b713f585b717810dce5ac6564">FIRST_FIELD</a>, <span class="comment">// src -ff-> dst => dst is first field of src</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba8b07351616a1798fa34ec3828f485ebb"> 38</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba8b07351616a1798fa34ec3828f485ebb">STD_DEF</a> <span class="comment">// Edges defined by the standard like (int -std-> char)</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="comment">// We also make the char --> void edge a STD_DEF edge.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  };</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a2580878ab964494ee5c7840e16ef84b3"> 42</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html">GenericNode<DCHNode, DCHEdge>::GEdgeSetTy</a> <a class="code" href="classSVF_1_1DCHEdge.html#a2580878ab964494ee5c7840e16ef84b3">DCHEdgeSetTy</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a17e3db6d11e0752064194ffc46cd9afe"> 44</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a17e3db6d11e0752064194ffc46cd9afe">DCHEdge</a>(<a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> *<a class="code" href="classSVF_1_1GenericEdge.html#a0e8736f88ee75da025d874f92328ca71">src</a>, <a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> *<a class="code" href="classSVF_1_1GenericEdge.html#aa41cb7482bdab1ba328f4b94f30f3ee4">dst</a>, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k = 0)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  : <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge</a><<a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a>>(src, dst, k), <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>(0)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a500ccfa8f8327ab792844698423d8578"> 49</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1DCHEdge.html#a500ccfa8f8327ab792844698423d8578">getConstantFieldIdx</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a70f757826082c95766c8324c1264e977"> 54</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHEdge.html#a70f757826082c95766c8324c1264e977">setOffset</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  this->offset = <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493"> 60</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html"> 63</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericNode.html">GenericNode</a><DCHNode, DCHEdge></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3"> 66</a></span>  <span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3a06075ea779ab7777fd25e0e45c462a73"> 68</a></span>  PURE_ABSTRACT = 0x1, <span class="comment">// pure virtual abstract class</span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3a1d2b2d38bfc09259f63933e9ab23aecc"> 69</a></span>  MULTI_INHERITANCE = 0x2, <span class="comment">// multi inheritance class</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3a38e9932af7d38e26c84fb0edbd083afc"> 70</a></span>  TEMPLATE = 0x04, <span class="comment">// template class</span></div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3ad5c99cf0681af30e8ed4cc59cc2371cb"> 71</a></span>  SCALAR = 0x08 <span class="comment">// non-class scalar type</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  } <a class="code" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3">CLASSATTR</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#aebd4fb544e8a97164901ab602e0fe7fc"> 74</a></span>  <span class="keyword">typedef</span> std::vector<const Function*> <a class="code" href="classSVF_1_1DCHNode.html#aebd4fb544e8a97164901ab602e0fe7fc">FuncVector</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a3e81cc40aa1c37999cead00f1af85a6e"> 76</a></span>  <a class="code" href="classSVF_1_1DCHNode.html#a3e81cc40aa1c37999cead00f1af85a6e">DCHNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *diType, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> i = 0, <a class="code" href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">GNodeK</a> k = 0)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  : <a class="code" href="classSVF_1_1GenericNode.html">GenericNode</a><<a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a>, <a class="code" href="classSVF_1_1DCHEdge.html">DCHEdge</a>>(i, k), vtable(nullptr), flags(0)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  this->diType = diType;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (diType == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  typeName = <span class="stringliteral">"null-void"</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (diType->getRawName() != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  typeName = diType->getName().str();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  typeName = <span class="stringliteral">"unnamed!"</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#ab2d407888f4cf9fd5d9ae0b16ef2af49"> 94</a></span>  <a class="code" href="classSVF_1_1DCHNode.html#ab2d407888f4cf9fd5d9ae0b16ef2af49">~DCHNode</a>() { }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#aaf4036d892bdae02a01d31bfe3db2153"> 96</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHNode.html#aaf4036d892bdae02a01d31bfe3db2153">getType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> diType;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a089af6085dec833b58133a9e834dab54"> 101</a></span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1DCHNode.html#a089af6085dec833b58133a9e834dab54">getName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> typeName;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a4e08c543fa2ae557ff835b1a0f3c53a4"> 108</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a4e08c543fa2ae557ff835b1a0f3c53a4">setFlag</a>(<a class="code" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3">CLASSATTR</a> mask)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  flags |= mask;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a743bc5df582114c45d1907d62a42a39c"> 112</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#a743bc5df582114c45d1907d62a42a39c">hasFlag</a>(<a class="code" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3">CLASSATTR</a> mask)<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">return</span> (flags & mask) == mask;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#afa271fdb9c1aa3589f41655813a2de8e"> 120</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#afa271fdb9c1aa3589f41655813a2de8e">setPureAbstract</a>()</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  setFlag(PURE_ABSTRACT);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a798e80f0cc5951789474abc3a0999166"> 124</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a798e80f0cc5951789474abc3a0999166">setMultiInheritance</a>()</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  setFlag(MULTI_INHERITANCE);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a3947007a7b8074f06064e34de9d980fe"> 128</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a3947007a7b8074f06064e34de9d980fe">setTemplate</a>()</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  setFlag(TEMPLATE);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a917265fa44ed08b66a6bd722f318bfa4"> 132</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a917265fa44ed08b66a6bd722f318bfa4">setScalar</a>()</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  setFlag(SCALAR);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#aed5e8397d43b602b79425acdae5e01f5"> 136</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#aed5e8397d43b602b79425acdae5e01f5">isPureAbstract</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> hasFlag(PURE_ABSTRACT);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a42026e30e790bce5be03da3e45353c8d"> 140</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#a42026e30e790bce5be03da3e45353c8d">isMultiInheritance</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> hasFlag(MULTI_INHERITANCE);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#ada436c7cb9108898c520952a87ebd01d"> 144</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#ada436c7cb9108898c520952a87ebd01d">isTemplate</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> hasFlag(TEMPLATE);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a50cf99ff5cc910512c1ce3987c7395ef"> 148</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#a50cf99ff5cc910512c1ce3987c7395ef">isScalar</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> hasFlag(SCALAR);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a9d1016e3da3462664198b1125dfc8f6e"> 154</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a9d1016e3da3462664198b1125dfc8f6e">addTypedef</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a852e75c562139237fcc754c7461533e6">DIDerivedType</a> *diTypedef)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  typedefs.insert(diTypedef);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#ac77edc44c3c5acc185c27c018837d066"> 159</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const DIDerivedType *></a> &<a class="code" href="classSVF_1_1DCHNode.html#ac77edc44c3c5acc185c27c018837d066">getTypedefs</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> typedefs;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#ad3144bcf462769c687bc7b65ef2f1639"> 164</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#ad3144bcf462769c687bc7b65ef2f1639">setVTable</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a> *vtbl)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  vtable = vtbl;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a9184a71cd5dae94843ac89f4235d4fa2"> 169</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a> *<a class="code" href="classSVF_1_1DCHNode.html#a9184a71cd5dae94843ac89f4235d4fa2">getVTable</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> vtable;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a806a65f35c9f4ea118c1ef44ddb46079"> 175</a></span>  <span class="keyword">const</span> std::vector<std::vector<const Function* >> &<a class="code" href="classSVF_1_1DCHNode.html#a806a65f35c9f4ea118c1ef44ddb46079">getVfnVectors</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> vfnVectors;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a41ba902b643e2aec828be1a89f4536af"> 181</a></span>  std::vector<const Function* > &<a class="code" href="classSVF_1_1DCHNode.html#a41ba902b643e2aec828be1a89f4536af">getVfnVector</a>(<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">if</span> (vfnVectors.size() < n + 1)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  vfnVectors.resize(n + 1);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> vfnVectors[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>];</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a05b5b4539273ac5d21d8cbcfa712a439"> 193</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHNode.html#a05b5b4539273ac5d21d8cbcfa712a439">diType</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#abafa483be12690549fbcccaf4c3fa511"> 195</a></span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const DIDerivedType *></a> <a class="code" href="classSVF_1_1DCHNode.html#abafa483be12690549fbcccaf4c3fa511">typedefs</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#aca8d8b3cf86c566698cc8b76e940f46e"> 196</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* <a class="code" href="classSVF_1_1DCHNode.html#aca8d8b3cf86c566698cc8b76e940f46e">vtable</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a8a7b412262af7a90c9ef583b6a8c10fc"> 197</a></span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1DCHNode.html#a8a7b412262af7a90c9ef583b6a8c10fc">typeName</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a0b2c21429fd28c50965737a0baa2e90b"> 198</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classSVF_1_1DCHNode.html#a0b2c21429fd28c50965737a0baa2e90b">flags</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a6b0971c1f8a90945694754eff8bf068b"> 200</a></span>  std::vector<const Function* > <a class="code" href="classSVF_1_1DCHNode.html#a6b0971c1f8a90945694754eff8bf068b">primaryVTable</a>;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#af479bf99a759b5dd68619e24f00bfa10"> 204</a></span>  std::vector<std::vector<const Function*>> <a class="code" href="classSVF_1_1DCHNode.html#af479bf99a759b5dd68619e24f00bfa10">vfnVectors</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> };</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html"> 208</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DCHGraph.html">DCHGraph</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a>, <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericGraph.html">GenericGraph</a><DCHNode, DCHEdge></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *stripQualifiers(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *stripArray(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> teq(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t2);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> diTypeToStr(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">// Returns whether t is an array, a struct, a class, a union, or neither.</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> isAgg(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a7cbea4d5399333497faa3f8d213e365e"> 233</a></span>  <a class="code" href="classSVF_1_1DCHGraph.html#a7cbea4d5399333497faa3f8d213e365e">DCHGraph</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a> *svfMod)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  : svfModule(svfMod), numTypes(0) <span class="comment">// vfID(0), buildingCHGTime(0) {</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  this->kind = DI;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#ae358abf5a377f480ecaea4df7a9fbdfd"> 239</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1DCHGraph.html#ae358abf5a377f480ecaea4df7a9fbdfd">~DCHGraph</a>() { };</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> buildCHG(<span class="keywordtype">bool</span> extend);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a587baf86ecc2fdbecfcf85310673e9f4"> 245</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHGraph.html#a587baf86ecc2fdbecfcf85310673e9f4">dump</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& filename)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>(), filename, <span class="keyword">this</span>);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordtype">void</span> <a class="code" href="cJSON_8cpp.html#ae71e2aec89bf140e6430cb7d5ca417c5">print</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a1494aeef22e15baaa160e8d598dd7de0"> 252</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#a1494aeef22e15baaa160e8d598dd7de0">csHasVFnsBasedonCHA</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)<span class="keyword"> override</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> csHasVtblsBasedonCHA(cs);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> &getCSVFsBasedonCHA(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs) <span class="keyword">override</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#afc7235305640be3d6dbae8199d5c8611"> 259</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#afc7235305640be3d6dbae8199d5c8611">csHasVtblsBasedonCHA</a>(<a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported"</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = getCanonicalType(getCSStaticType(cs));</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span> (!hasNode(type))</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">return</span> getNode(type)->getVTable() != <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a2fef8f7209f100c7a266cf3102b1219b"> 271</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#a2fef8f7209f100c7a266cf3102b1219b">csHasVtblsBasedonCHA</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)<span class="keyword"> override</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported!"</span>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">VTableSet</a> &getCSVtblsBasedonCHA(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs) <span class="keyword">override</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> getVFnsFromVtbls(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">VTableSet</a> &vtbls, <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> &virtualFunctions) <span class="keyword">override</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isBase(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a8a1a0a26c50cc4becfc754bb68d1dc6b">a</a>, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>, <span class="keywordtype">bool</span> firstField);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isFieldOf(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *f, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *b);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#af9970ff0ef4a8f4c638da9f519d14a21"> 286</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#af9970ff0ef4a8f4c638da9f519d14a21">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a> *chg)</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">return</span> chg-><a class="code" href="classSVF_1_1CommonCHGraph.html#adf2a02fff9d7dd9fc9d92121e5e28f8b">getKind</a>() == DI;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *getCanonicalType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#acaff636e6a9cf59363d6ee00435c04ff"> 297</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHGraph.html#acaff636e6a9cf59363d6ee00435c04ff">getFieldType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *base, <span class="keywordtype">unsigned</span> idx)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  base = getCanonicalType(base);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span> (base == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="comment">// Conservative; the base object is untyped, sadly.</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="comment">// For TBHC this is conservative because the union type is lower in the DCHG</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="comment">// than its fields. TODO: make more precise.</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">if</span> (base->getTag() == dwarf::DW_TAG_union_type)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">if</span> (base->getTag() == dwarf::DW_TAG_array_type)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a> *cbase = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a>>(base);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  assert(cbase && <span class="stringliteral">"DCHG: bad DIComposite case"</span>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> cbase->getBaseType();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">if</span> (!(base->getTag() == dwarf::DW_TAG_class_type</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  || base->getTag() == dwarf::DW_TAG_structure_type))</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  assert(fieldTypes.find(base) != fieldTypes.end() && <span class="stringliteral">"DCHG: base not flattened!"</span>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  std::vector<const DIType *> &fields = fieldTypes[base];</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  assert(fields.size() > idx && <span class="stringliteral">"DCHG: idx into struct larger than # fields!"</span>);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">return</span> getCanonicalType(fields[idx]);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#ae9a0007299178912e2568dc7158d6824"> 333</a></span>  <span class="keyword">const</span> std::vector<const DIType *> &<a class="code" href="classSVF_1_1DCHGraph.html#ae9a0007299178912e2568dc7158d6824">getFieldTypes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *base)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  base = getCanonicalType(base);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  assert(fieldTypes.find(base) != fieldTypes.end() && <span class="stringliteral">"DCHG: base not flattened!"</span>);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> fieldTypes[base];</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="comment">// Returns the number of fields in base (length of getFieldTypes).</span></div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a0788694fbff155949fc4f4d6487c223e"> 341</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classSVF_1_1DCHGraph.html#a0788694fbff155949fc4f4d6487c223e">getNumFields</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *base)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  base = getCanonicalType(base);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  assert(fieldTypes.find(base) != fieldTypes.end() && <span class="stringliteral">"DCHG: base not flattened!"</span>);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">return</span> fieldTypes[base].size();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a159e158c794fff115d5642b85963f43b"> 349</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const DIType *></a> &<a class="code" href="classSVF_1_1DCHGraph.html#a159e158c794fff115d5642b85963f43b">getAggs</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *base)</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  base = getCanonicalType(base);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  assert(containingAggs.find(base) != containingAggs.end() && <span class="stringliteral">"DCHG: aggregates not gathered for base!"</span>);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">return</span> containingAggs[base];</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordtype">bool</span> isFirstField(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *f, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *b);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a85a3c9a6a60a4379717773f8722ae42e"> 360</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a> *<a class="code" href="classSVF_1_1DCHGraph.html#a85a3c9a6a60a4379717773f8722ae42e">svfModule</a>;</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#aa6f49dfc9e3580d3f2d8c257395eb11e"> 362</a></span>  <span class="keywordtype">bool</span> extended = <span class="keyword">false</span>;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a581ce71cbc7994f71c9a6b9b145d3b9f"> 364</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, DCHNode *></a> <a class="code" href="classSVF_1_1DCHGraph.html#a581ce71cbc7994f71c9a6b9b145d3b9f">diTypeToNodeMap</a>;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a42f373998403f615a248ce94bc836b63"> 366</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFGlobalValue *, const DIType *></a> <a class="code" href="classSVF_1_1DCHGraph.html#a42f373998403f615a248ce94bc836b63">vtblToTypeMap</a>;</div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#ac0d5f1e10f642aac5b64792bf5fcbd9d"> 368</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, NodeBS></a> <a class="code" href="classSVF_1_1DCHGraph.html#ac0d5f1e10f642aac5b64792bf5fcbd9d">chaMap</a>;</div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#abe8d313b501182ab62f2276a19d670a4"> 370</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, NodeBS></a> <a class="code" href="classSVF_1_1DCHGraph.html#abe8d313b501182ab62f2276a19d670a4">chaFFMap</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a294e7a04aff9cef87c1008e91a620155"> 372</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, VTableSet></a> <a class="code" href="classSVF_1_1DCHGraph.html#a294e7a04aff9cef87c1008e91a620155">vtblCHAMap</a>;</div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#ad79a569e77f94fa8494eed3f18e07e90"> 374</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<CallSite, VFunSet></a> <a class="code" href="classSVF_1_1DCHGraph.html#ad79a569e77f94fa8494eed3f18e07e90">csCHAMap</a>;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a498a18fe8702251b6f2a4e6379e5cbb1"> 376</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, const DIType *></a> <a class="code" href="classSVF_1_1DCHGraph.html#a498a18fe8702251b6f2a4e6379e5cbb1">canonicalTypeMap</a>;</div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a10225f56b21eb7f0870fdc433de3c393"> 378</a></span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const DIType *></a> <a class="code" href="classSVF_1_1DCHGraph.html#a10225f56b21eb7f0870fdc433de3c393">canonicalTypes</a>;</div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a574ec14099f1112b394b00a79f3fdf1a"> 380</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, std::vector<const DIType *></a>> <a class="code" href="classSVF_1_1DCHGraph.html#a574ec14099f1112b394b00a79f3fdf1a">fieldTypes</a>;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#adc7a17f70ac3fa89624ad874dbd16ff9"> 382</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, Set<const DIType *></a>> <a class="code" href="classSVF_1_1DCHGraph.html#adc7a17f70ac3fa89624ad874dbd16ff9">containingAggs</a>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordtype">void</span> handleDIBasicType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ada0513be7e25325325ccc9183aeca278">DIBasicType</a> *basicType);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordtype">void</span> handleDICompositeType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a> *compositeType);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordtype">void</span> handleDIDerivedType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a852e75c562139237fcc754c7461533e6">DIDerivedType</a> *derivedType);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordtype">void</span> handleDISubroutineType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a090e0791e8c200104ed3ab6bab157129">DISubroutineType</a> *subroutineType);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordtype">void</span> buildVTables(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a> &module);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &cha(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, <span class="keywordtype">bool</span> firstField);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordtype">void</span> handleTypedef(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *typedefType);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordtype">void</span> flatten(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordtype">void</span> gatherAggs(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> *getOrCreateNode(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#aefe2e9c130048a55a3aed63d128da7a0"> 413</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHGraph.html#aefe2e9c130048a55a3aed63d128da7a0">getCSStaticType</a>(<a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *md = cs->getMetadata(<a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">cppUtil::ctir::derefMDName</a>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  assert(md != <span class="keyword">nullptr</span> && <span class="stringliteral">"Missing type metadata at virtual callsite"</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *diType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a>>(md);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  assert(diType != <span class="keyword">nullptr</span> && <span class="stringliteral">"Incorrect metadata type at virtual callsite"</span>);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">return</span> diType;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a236d785d728189c2026357ce837fcdc6"> 422</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHGraph.html#a236d785d728189c2026357ce837fcdc6">getCSStaticType</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)<span class="keyword"> const</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported!"</span>);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a58341e23c1dc2b3e7fce190ed16a8a25"> 428</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#a58341e23c1dc2b3e7fce190ed16a8a25">hasNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  type = getCanonicalType(type);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> diTypeToNodeMap.find(type) != diTypeToNodeMap.end();</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a96c68bbb5ee5e939158ce0b67da2c61d"> 435</a></span>  <a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> *<a class="code" href="classSVF_1_1DCHGraph.html#a96c68bbb5ee5e939158ce0b67da2c61d">getNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  type = getCanonicalType(type);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">if</span> (hasNode(type))</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">return</span> diTypeToNodeMap.at(type);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="classSVF_1_1DCHEdge.html">DCHEdge</a> *addEdge(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t2, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">DCHEdge::GEdgeKind</a> et);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="classSVF_1_1DCHEdge.html">DCHEdge</a> *<a class="code" href="CHG_8cpp.html#a4c6cbac96543cd55e4df050a33512ac5">hasEdge</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t2, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">DCHEdge::GEdgeKind</a> et);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a76fd3154a31584bb64683f2d762cc56c"> 453</a></span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="classSVF_1_1DCHGraph.html#a76fd3154a31584bb64683f2d762cc56c">numTypes</a>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> };</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">namespace </span><a class="code" href="namespacellvm.html">llvm</a></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="comment">/* !</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="comment"> * GraphTraits specializations for generic graph algorithms.</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="comment"> * Provide graph traits for traversing from a constraint node using standard graph traversals.</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="comment"> */</span></div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html"> 464</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<<a class="code" href="namespaceSVF.html">SVF</a>::DCHNode*> : <span class="keyword">public</span> GraphTraits<SVF::GenericNode<SVF::DCHNode,SVF::DCHEdge>* ></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> };</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="keyword">template</span><></div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html"> 470</a></span> <span class="keyword">struct </span>GraphTraits<Inverse<SVF::DCHNode*> > : <span class="keyword">public</span> GraphTraits<Inverse<SVF::GenericNode<SVF::DCHNode,SVF::DCHEdge>* > ></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> };</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html"> 474</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<SVF::DCHGraph*> : <span class="keyword">public</span> GraphTraits<SVF::GenericGraph<SVF::DCHNode,SVF::DCHEdge>* ></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> {</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html#a7f54c1b4b286ea5b46471741e4c34b54"> 476</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1DCHNode.html">SVF::DCHNode</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html#a7f54c1b4b286ea5b46471741e4c34b54">NodeRef</a>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> };</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> } <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor">#endif </span><span class="comment">/* DCHG_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1DCHGraph_html_a0788694fbff155949fc4f4d6487c223e"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a0788694fbff155949fc4f4d6487c223e">SVF::DCHGraph::getNumFields</a></div><div class="ttdeci">unsigned getNumFields(const DIType *base)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00341">DCHG.h:341</a></div></div>
|
|
69
|
+
<a href="DCHG_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===----- DCHG.h -- CHG using DWARF debug info ---------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// This is based upon the original CHA.h (now CHG.h).</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">/*</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * DCHG.h</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * Created on: Aug 23, 2019</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> */</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// TODO: add a flag such that getCanonicalType returns its arg so</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// that the impl. does not "node collapsing" based on teq.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef DCHG_H_</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#define DCHG_H_</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="CHG_8h.html">Graphs/CHG.h</a>"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="CPPUtil_8h.html">SVF-LLVM/CPPUtil.h</a>"</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="SVFModule_8h.html">SVFIR/SVFModule.h</a>"</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="WorkList_8h.html">Util/WorkList.h</a>"</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">class </span>SVFModule;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">class </span>DCHNode;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html"> 30</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DCHEdge.html">DCHEdge</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge</a><DCHNode></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">enum</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  {</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba9c05805c60fe04033bd9815968059e90"> 35</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba9c05805c60fe04033bd9815968059e90">INHERITANCE</a>, <span class="comment">// inheritance relation</span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba3e807b4caeb170c5cd1e855ac1a92d77"> 36</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba3e807b4caeb170c5cd1e855ac1a92d77">INSTANCE</a>, <span class="comment">// template-instance relation</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba3b49b95b713f585b717810dce5ac6564"> 37</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba3b49b95b713f585b717810dce5ac6564">FIRST_FIELD</a>, <span class="comment">// src -ff-> dst => dst is first field of src</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba8b07351616a1798fa34ec3828f485ebb"> 38</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba8b07351616a1798fa34ec3828f485ebb">STD_DEF</a> <span class="comment">// Edges defined by the standard like (int -std-> char)</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="comment">// We also make the char --> void edge a STD_DEF edge.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  };</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a2580878ab964494ee5c7840e16ef84b3"> 42</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html">GenericNode<DCHNode, DCHEdge>::GEdgeSetTy</a> <a class="code" href="classSVF_1_1DCHEdge.html#a2580878ab964494ee5c7840e16ef84b3">DCHEdgeSetTy</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a17e3db6d11e0752064194ffc46cd9afe"> 44</a></span>  <a class="code" href="classSVF_1_1DCHEdge.html#a17e3db6d11e0752064194ffc46cd9afe">DCHEdge</a>(<a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> *<a class="code" href="classSVF_1_1GenericEdge.html#a0e8736f88ee75da025d874f92328ca71">src</a>, <a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> *<a class="code" href="classSVF_1_1GenericEdge.html#aa41cb7482bdab1ba328f4b94f30f3ee4">dst</a>, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k = 0)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  : <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge</a><<a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a>>(src, dst, k), <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>(0)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a500ccfa8f8327ab792844698423d8578"> 49</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1DCHEdge.html#a500ccfa8f8327ab792844698423d8578">getConstantFieldIdx</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a70f757826082c95766c8324c1264e977"> 54</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHEdge.html#a70f757826082c95766c8324c1264e977">setOffset</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  this->offset = <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493"> 60</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1DCHEdge.html#a41bd0d95d588aa7fb77e83dc91654493">offset</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html"> 63</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericNode.html">GenericNode</a><DCHNode, DCHEdge></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3"> 66</a></span>  <span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3a06075ea779ab7777fd25e0e45c462a73"> 68</a></span>  PURE_ABSTRACT = 0x1, <span class="comment">// pure virtual abstract class</span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3a1d2b2d38bfc09259f63933e9ab23aecc"> 69</a></span>  MULTI_INHERITANCE = 0x2, <span class="comment">// multi inheritance class</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3a38e9932af7d38e26c84fb0edbd083afc"> 70</a></span>  TEMPLATE = 0x04, <span class="comment">// template class</span></div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3ad5c99cf0681af30e8ed4cc59cc2371cb"> 71</a></span>  SCALAR = 0x08 <span class="comment">// non-class scalar type</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  } <a class="code" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3">CLASSATTR</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#aebd4fb544e8a97164901ab602e0fe7fc"> 74</a></span>  <span class="keyword">typedef</span> std::vector<const Function*> <a class="code" href="classSVF_1_1DCHNode.html#aebd4fb544e8a97164901ab602e0fe7fc">FuncVector</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a3e81cc40aa1c37999cead00f1af85a6e"> 76</a></span>  <a class="code" href="classSVF_1_1DCHNode.html#a3e81cc40aa1c37999cead00f1af85a6e">DCHNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *diType, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> i = 0, <a class="code" href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">GNodeK</a> k = 0)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  : <a class="code" href="classSVF_1_1GenericNode.html">GenericNode</a><<a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a>, <a class="code" href="classSVF_1_1DCHEdge.html">DCHEdge</a>>(i, k), vtable(nullptr), flags(0)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  this->diType = diType;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (diType == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  typeName = <span class="stringliteral">"null-void"</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (diType->getRawName() != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  typeName = diType->getName().str();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  typeName = <span class="stringliteral">"unnamed!"</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#ab2d407888f4cf9fd5d9ae0b16ef2af49"> 94</a></span>  <a class="code" href="classSVF_1_1DCHNode.html#ab2d407888f4cf9fd5d9ae0b16ef2af49">~DCHNode</a>() { }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#aaf4036d892bdae02a01d31bfe3db2153"> 96</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHNode.html#aaf4036d892bdae02a01d31bfe3db2153">getType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> diType;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a089af6085dec833b58133a9e834dab54"> 101</a></span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1DCHNode.html#a089af6085dec833b58133a9e834dab54">getName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> typeName;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a4e08c543fa2ae557ff835b1a0f3c53a4"> 108</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a4e08c543fa2ae557ff835b1a0f3c53a4">setFlag</a>(<a class="code" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3">CLASSATTR</a> mask)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  flags |= mask;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a743bc5df582114c45d1907d62a42a39c"> 112</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#a743bc5df582114c45d1907d62a42a39c">hasFlag</a>(<a class="code" href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3">CLASSATTR</a> mask)<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">return</span> (flags & mask) == mask;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#afa271fdb9c1aa3589f41655813a2de8e"> 120</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#afa271fdb9c1aa3589f41655813a2de8e">setPureAbstract</a>()</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  setFlag(PURE_ABSTRACT);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a798e80f0cc5951789474abc3a0999166"> 124</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a798e80f0cc5951789474abc3a0999166">setMultiInheritance</a>()</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  setFlag(MULTI_INHERITANCE);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a3947007a7b8074f06064e34de9d980fe"> 128</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a3947007a7b8074f06064e34de9d980fe">setTemplate</a>()</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  setFlag(TEMPLATE);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a917265fa44ed08b66a6bd722f318bfa4"> 132</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a917265fa44ed08b66a6bd722f318bfa4">setScalar</a>()</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  setFlag(SCALAR);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#aed5e8397d43b602b79425acdae5e01f5"> 136</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#aed5e8397d43b602b79425acdae5e01f5">isPureAbstract</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> hasFlag(PURE_ABSTRACT);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a42026e30e790bce5be03da3e45353c8d"> 140</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#a42026e30e790bce5be03da3e45353c8d">isMultiInheritance</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> hasFlag(MULTI_INHERITANCE);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#ada436c7cb9108898c520952a87ebd01d"> 144</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#ada436c7cb9108898c520952a87ebd01d">isTemplate</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> hasFlag(TEMPLATE);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a50cf99ff5cc910512c1ce3987c7395ef"> 148</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHNode.html#a50cf99ff5cc910512c1ce3987c7395ef">isScalar</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> hasFlag(SCALAR);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a9d1016e3da3462664198b1125dfc8f6e"> 154</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#a9d1016e3da3462664198b1125dfc8f6e">addTypedef</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a852e75c562139237fcc754c7461533e6">DIDerivedType</a> *diTypedef)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  typedefs.insert(diTypedef);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#ac77edc44c3c5acc185c27c018837d066"> 159</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const DIDerivedType *></a> &<a class="code" href="classSVF_1_1DCHNode.html#ac77edc44c3c5acc185c27c018837d066">getTypedefs</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> typedefs;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#ad3144bcf462769c687bc7b65ef2f1639"> 164</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHNode.html#ad3144bcf462769c687bc7b65ef2f1639">setVTable</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a> *vtbl)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  vtable = vtbl;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a9184a71cd5dae94843ac89f4235d4fa2"> 169</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a> *<a class="code" href="classSVF_1_1DCHNode.html#a9184a71cd5dae94843ac89f4235d4fa2">getVTable</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> vtable;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a806a65f35c9f4ea118c1ef44ddb46079"> 175</a></span>  <span class="keyword">const</span> std::vector<std::vector<const Function* >> &<a class="code" href="classSVF_1_1DCHNode.html#a806a65f35c9f4ea118c1ef44ddb46079">getVfnVectors</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> vfnVectors;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a41ba902b643e2aec828be1a89f4536af"> 181</a></span>  std::vector<const Function* > &<a class="code" href="classSVF_1_1DCHNode.html#a41ba902b643e2aec828be1a89f4536af">getVfnVector</a>(<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">if</span> (vfnVectors.size() < n + 1)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  vfnVectors.resize(n + 1);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> vfnVectors[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>];</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a05b5b4539273ac5d21d8cbcfa712a439"> 193</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHNode.html#a05b5b4539273ac5d21d8cbcfa712a439">diType</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#abafa483be12690549fbcccaf4c3fa511"> 195</a></span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const DIDerivedType *></a> <a class="code" href="classSVF_1_1DCHNode.html#abafa483be12690549fbcccaf4c3fa511">typedefs</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#aca8d8b3cf86c566698cc8b76e940f46e"> 196</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* <a class="code" href="classSVF_1_1DCHNode.html#aca8d8b3cf86c566698cc8b76e940f46e">vtable</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a8a7b412262af7a90c9ef583b6a8c10fc"> 197</a></span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1DCHNode.html#a8a7b412262af7a90c9ef583b6a8c10fc">typeName</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a0b2c21429fd28c50965737a0baa2e90b"> 198</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classSVF_1_1DCHNode.html#a0b2c21429fd28c50965737a0baa2e90b">flags</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#a6b0971c1f8a90945694754eff8bf068b"> 200</a></span>  std::vector<const Function* > <a class="code" href="classSVF_1_1DCHNode.html#a6b0971c1f8a90945694754eff8bf068b">primaryVTable</a>;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHNode.html#af479bf99a759b5dd68619e24f00bfa10"> 204</a></span>  std::vector<std::vector<const Function*>> <a class="code" href="classSVF_1_1DCHNode.html#af479bf99a759b5dd68619e24f00bfa10">vfnVectors</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> };</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html"> 208</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1DCHGraph.html">DCHGraph</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a>, <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericGraph.html">GenericGraph</a><DCHNode, DCHEdge></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *stripQualifiers(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *stripArray(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> teq(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t2);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> diTypeToStr(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">// Returns whether t is an array, a struct, a class, a union, or neither.</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> isAgg(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a7cbea4d5399333497faa3f8d213e365e"> 233</a></span>  <a class="code" href="classSVF_1_1DCHGraph.html#a7cbea4d5399333497faa3f8d213e365e">DCHGraph</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a> *svfMod)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  : svfModule(svfMod), numTypes(0) <span class="comment">// vfID(0), buildingCHGTime(0) {</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  this->kind = DI;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#ae358abf5a377f480ecaea4df7a9fbdfd"> 239</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1DCHGraph.html#ae358abf5a377f480ecaea4df7a9fbdfd">~DCHGraph</a>() { };</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> buildCHG(<span class="keywordtype">bool</span> extend);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a587baf86ecc2fdbecfcf85310673e9f4"> 245</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DCHGraph.html#a587baf86ecc2fdbecfcf85310673e9f4">dump</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& filename)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>(), filename, <span class="keyword">this</span>);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordtype">void</span> <a class="code" href="cJSON_8cpp.html#ae71e2aec89bf140e6430cb7d5ca417c5">print</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a1494aeef22e15baaa160e8d598dd7de0"> 252</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#a1494aeef22e15baaa160e8d598dd7de0">csHasVFnsBasedonCHA</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)<span class="keyword"> override</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> csHasVtblsBasedonCHA(cs);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> &getCSVFsBasedonCHA(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs) <span class="keyword">override</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#afc7235305640be3d6dbae8199d5c8611"> 259</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#afc7235305640be3d6dbae8199d5c8611">csHasVtblsBasedonCHA</a>(<a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported"</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = getCanonicalType(getCSStaticType(cs));</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span> (!hasNode(type))</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">return</span> getNode(type)->getVTable() != <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a2fef8f7209f100c7a266cf3102b1219b"> 271</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#a2fef8f7209f100c7a266cf3102b1219b">csHasVtblsBasedonCHA</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)<span class="keyword"> override</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported!"</span>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">VTableSet</a> &getCSVtblsBasedonCHA(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs) <span class="keyword">override</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> getVFnsFromVtbls(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">VTableSet</a> &vtbls, <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> &virtualFunctions) <span class="keyword">override</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isBase(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a8a1a0a26c50cc4becfc754bb68d1dc6b">a</a>, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>, <span class="keywordtype">bool</span> firstField);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isFieldOf(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *f, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *b);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#af9970ff0ef4a8f4c638da9f519d14a21"> 286</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#af9970ff0ef4a8f4c638da9f519d14a21">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a> *chg)</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">return</span> chg-><a class="code" href="classSVF_1_1CommonCHGraph.html#adf2a02fff9d7dd9fc9d92121e5e28f8b">getKind</a>() == DI;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *getCanonicalType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#acaff636e6a9cf59363d6ee00435c04ff"> 297</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHGraph.html#acaff636e6a9cf59363d6ee00435c04ff">getFieldType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *base, <span class="keywordtype">unsigned</span> idx)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  base = getCanonicalType(base);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span> (base == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="comment">// Conservative; the base object is untyped, sadly.</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="comment">// For TBHC this is conservative because the union type is lower in the DCHG</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="comment">// than its fields. TODO: make more precise.</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">if</span> (base->getTag() == dwarf::DW_TAG_union_type)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">if</span> (base->getTag() == dwarf::DW_TAG_array_type)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a> *cbase = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a>>(base);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  assert(cbase && <span class="stringliteral">"DCHG: bad DIComposite case"</span>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> cbase->getBaseType();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">if</span> (!(base->getTag() == dwarf::DW_TAG_class_type</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  || base->getTag() == dwarf::DW_TAG_structure_type))</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  assert(fieldTypes.find(base) != fieldTypes.end() && <span class="stringliteral">"DCHG: base not flattened!"</span>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  std::vector<const DIType *> &fields = fieldTypes[base];</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  assert(fields.size() > idx && <span class="stringliteral">"DCHG: idx into struct larger than # fields!"</span>);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">return</span> getCanonicalType(fields[idx]);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#ae9a0007299178912e2568dc7158d6824"> 333</a></span>  <span class="keyword">const</span> std::vector<const DIType *> &<a class="code" href="classSVF_1_1DCHGraph.html#ae9a0007299178912e2568dc7158d6824">getFieldTypes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *base)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  base = getCanonicalType(base);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  assert(fieldTypes.find(base) != fieldTypes.end() && <span class="stringliteral">"DCHG: base not flattened!"</span>);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> fieldTypes[base];</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="comment">// Returns the number of fields in base (length of getFieldTypes).</span></div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a0788694fbff155949fc4f4d6487c223e"> 341</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classSVF_1_1DCHGraph.html#a0788694fbff155949fc4f4d6487c223e">getNumFields</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *base)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  base = getCanonicalType(base);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  assert(fieldTypes.find(base) != fieldTypes.end() && <span class="stringliteral">"DCHG: base not flattened!"</span>);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">return</span> fieldTypes[base].size();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a159e158c794fff115d5642b85963f43b"> 349</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const DIType *></a> &<a class="code" href="classSVF_1_1DCHGraph.html#a159e158c794fff115d5642b85963f43b">getAggs</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *base)</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  base = getCanonicalType(base);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  assert(containingAggs.find(base) != containingAggs.end() && <span class="stringliteral">"DCHG: aggregates not gathered for base!"</span>);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">return</span> containingAggs[base];</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordtype">bool</span> isFirstField(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *f, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *b);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a85a3c9a6a60a4379717773f8722ae42e"> 360</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a> *<a class="code" href="classSVF_1_1DCHGraph.html#a85a3c9a6a60a4379717773f8722ae42e">svfModule</a>;</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#aa6f49dfc9e3580d3f2d8c257395eb11e"> 362</a></span>  <span class="keywordtype">bool</span> extended = <span class="keyword">false</span>;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a581ce71cbc7994f71c9a6b9b145d3b9f"> 364</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, DCHNode *></a> <a class="code" href="classSVF_1_1DCHGraph.html#a581ce71cbc7994f71c9a6b9b145d3b9f">diTypeToNodeMap</a>;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a42f373998403f615a248ce94bc836b63"> 366</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFGlobalValue *, const DIType *></a> <a class="code" href="classSVF_1_1DCHGraph.html#a42f373998403f615a248ce94bc836b63">vtblToTypeMap</a>;</div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#ac0d5f1e10f642aac5b64792bf5fcbd9d"> 368</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, NodeBS></a> <a class="code" href="classSVF_1_1DCHGraph.html#ac0d5f1e10f642aac5b64792bf5fcbd9d">chaMap</a>;</div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#abe8d313b501182ab62f2276a19d670a4"> 370</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, NodeBS></a> <a class="code" href="classSVF_1_1DCHGraph.html#abe8d313b501182ab62f2276a19d670a4">chaFFMap</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a294e7a04aff9cef87c1008e91a620155"> 372</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, VTableSet></a> <a class="code" href="classSVF_1_1DCHGraph.html#a294e7a04aff9cef87c1008e91a620155">vtblCHAMap</a>;</div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#ad79a569e77f94fa8494eed3f18e07e90"> 374</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<CallSite, VFunSet></a> <a class="code" href="classSVF_1_1DCHGraph.html#ad79a569e77f94fa8494eed3f18e07e90">csCHAMap</a>;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a498a18fe8702251b6f2a4e6379e5cbb1"> 376</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, const DIType *></a> <a class="code" href="classSVF_1_1DCHGraph.html#a498a18fe8702251b6f2a4e6379e5cbb1">canonicalTypeMap</a>;</div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a10225f56b21eb7f0870fdc433de3c393"> 378</a></span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const DIType *></a> <a class="code" href="classSVF_1_1DCHGraph.html#a10225f56b21eb7f0870fdc433de3c393">canonicalTypes</a>;</div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a574ec14099f1112b394b00a79f3fdf1a"> 380</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, std::vector<const DIType *></a>> <a class="code" href="classSVF_1_1DCHGraph.html#a574ec14099f1112b394b00a79f3fdf1a">fieldTypes</a>;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#adc7a17f70ac3fa89624ad874dbd16ff9"> 382</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const DIType *, Set<const DIType *></a>> <a class="code" href="classSVF_1_1DCHGraph.html#adc7a17f70ac3fa89624ad874dbd16ff9">containingAggs</a>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordtype">void</span> handleDIBasicType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ada0513be7e25325325ccc9183aeca278">DIBasicType</a> *basicType);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordtype">void</span> handleDICompositeType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a> *compositeType);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordtype">void</span> handleDIDerivedType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a852e75c562139237fcc754c7461533e6">DIDerivedType</a> *derivedType);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordtype">void</span> handleDISubroutineType(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a090e0791e8c200104ed3ab6bab157129">DISubroutineType</a> *subroutineType);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordtype">void</span> buildVTables(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a> &module);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &cha(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, <span class="keywordtype">bool</span> firstField);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordtype">void</span> handleTypedef(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *typedefType);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordtype">void</span> flatten(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordtype">void</span> gatherAggs(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aded9b991c77acc5284ccead0739e84f1">DICompositeType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> *getOrCreateNode(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#aefe2e9c130048a55a3aed63d128da7a0"> 413</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHGraph.html#aefe2e9c130048a55a3aed63d128da7a0">getCSStaticType</a>(<a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *md = cs->getMetadata(<a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">cppUtil::ctir::derefMDName</a>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  assert(md != <span class="keyword">nullptr</span> && <span class="stringliteral">"Missing type metadata at virtual callsite"</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *diType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a>>(md);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  assert(diType != <span class="keyword">nullptr</span> && <span class="stringliteral">"Incorrect metadata type at virtual callsite"</span>);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">return</span> diType;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a236d785d728189c2026357ce837fcdc6"> 422</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1DCHGraph.html#a236d785d728189c2026357ce837fcdc6">getCSStaticType</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)<span class="keyword"> const</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not supported!"</span>);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a58341e23c1dc2b3e7fce190ed16a8a25"> 428</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DCHGraph.html#a58341e23c1dc2b3e7fce190ed16a8a25">hasNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  type = getCanonicalType(type);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> diTypeToNodeMap.find(type) != diTypeToNodeMap.end();</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a96c68bbb5ee5e939158ce0b67da2c61d"> 435</a></span>  <a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a> *<a class="code" href="classSVF_1_1DCHGraph.html#a96c68bbb5ee5e939158ce0b67da2c61d">getNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  type = getCanonicalType(type);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">if</span> (hasNode(type))</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">return</span> diTypeToNodeMap.at(type);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="classSVF_1_1DCHEdge.html">DCHEdge</a> *addEdge(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t2, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">DCHEdge::GEdgeKind</a> et);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="classSVF_1_1DCHEdge.html">DCHEdge</a> *<a class="code" href="CHG_8cpp.html#a4c6cbac96543cd55e4df050a33512ac5">hasEdge</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *t2, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">DCHEdge::GEdgeKind</a> et);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="classSVF_1_1DCHGraph.html#a76fd3154a31584bb64683f2d762cc56c"> 453</a></span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="classSVF_1_1DCHGraph.html#a76fd3154a31584bb64683f2d762cc56c">numTypes</a>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> };</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="comment">/* !</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="comment"> * GenericGraphTraits specializations for generic graph algorithms.</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="comment"> * Provide graph traits for traversing from a constraint node using standard graph traversals.</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="comment"> */</span></div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html"> 464</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span><a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a><<a class="code" href="namespaceSVF.html">SVF</a>::<a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a>*> : <span class="keyword">public</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a><SVF::GenericNode<SVF::DCHNode,SVF::DCHEdge>* ></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> };</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="keyword">template</span><></div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html"> 470</a></span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a><<a class="code" href="structSVF_1_1Inverse.html">Inverse</a><SVF::<a class="code" href="classSVF_1_1DCHNode.html">DCHNode</a>*> > : <span class="keyword">public</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a><Inverse<SVF::GenericNode<SVF::DCHNode,SVF::DCHEdge>* > ></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> };</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html"> 474</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span><a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a><SVF::<a class="code" href="classSVF_1_1DCHGraph.html">DCHGraph</a>*> : <span class="keyword">public</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a><SVF::GenericGraph<SVF::DCHNode,SVF::DCHEdge>* ></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> {</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html#aab14259075b96fab09dde300fbeff390"> 476</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1DCHNode.html">SVF::DCHNode</a> *<a class="code" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html#aab14259075b96fab09dde300fbeff390">NodeRef</a>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> };</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> } <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor">#endif </span><span class="comment">/* DCHG_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1DCHGraph_html_a0788694fbff155949fc4f4d6487c223e"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a0788694fbff155949fc4f4d6487c223e">SVF::DCHGraph::getNumFields</a></div><div class="ttdeci">unsigned getNumFields(const DIType *base)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00341">DCHG.h:341</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_adc7a17f70ac3fa89624ad874dbd16ff9"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#adc7a17f70ac3fa89624ad874dbd16ff9">SVF::DCHGraph::containingAggs</a></div><div class="ttdeci">Map< const DIType *, Set< const DIType * > > containingAggs</div><div class="ttdoc">Maps aggregate types to all the aggregate types it transitively contains. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00382">DCHG.h:382</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_ae9a0007299178912e2568dc7158d6824"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#ae9a0007299178912e2568dc7158d6824">SVF::DCHGraph::getFieldTypes</a></div><div class="ttdeci">const std::vector< const DIType * > & getFieldTypes(const DIType *base)</div><div class="ttdoc">Returns a vector of the types of all fields in base. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00333">DCHG.h:333</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a85a3c9a6a60a4379717773f8722ae42e"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a85a3c9a6a60a4379717773f8722ae42e">SVF::DCHGraph::svfModule</a></div><div class="ttdeci">const SVFModule * svfModule</div><div class="ttdoc">SVF Module this CHG is built from. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00360">DCHG.h:360</a></div></div>
|
|
@@ -75,7 +75,6 @@ $(function() {
|
|
|
75
75
|
<div class="ttc" id="CHG_8h_html"><div class="ttname"><a href="CHG_8h.html">CHG.h</a></div></div>
|
|
76
76
|
<div class="ttc" id="classSVF_1_1DCHEdge_html"><div class="ttname"><a href="classSVF_1_1DCHEdge.html">SVF::DCHEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00030">DCHG.h:30</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a498a18fe8702251b6f2a4e6379e5cbb1"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a498a18fe8702251b6f2a4e6379e5cbb1">SVF::DCHGraph::canonicalTypeMap</a></div><div class="ttdeci">Map< const DIType *, const DIType * > canonicalTypeMap</div><div class="ttdoc">Maps types to their canonical type (many-to-one). </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00376">DCHG.h:376</a></div></div>
|
|
78
|
-
<div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00192">CFLGraph.h:192</a></div></div>
|
|
79
78
|
<div class="ttc" id="classSVF_1_1DCHEdge_html_a70f757826082c95766c8324c1264e977"><div class="ttname"><a href="classSVF_1_1DCHEdge.html#a70f757826082c95766c8324c1264e977">SVF::DCHEdge::setOffset</a></div><div class="ttdeci">void setOffset(u32_t offset)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00054">DCHG.h:54</a></div></div>
|
|
80
79
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
81
80
|
<div class="ttc" id="CPPUtil_8h_html"><div class="ttname"><a href="CPPUtil_8h.html">CPPUtil.h</a></div></div>
|
|
@@ -103,16 +102,18 @@ $(function() {
|
|
|
103
102
|
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
|
|
104
103
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a029988e54846db9aca2584e1c10283e3"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a029988e54846db9aca2584e1c10283e3">SVF::DCHNode::CLASSATTR</a></div><div class="ttdeci">CLASSATTR</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00066">DCHG.h:66</a></div></div>
|
|
105
104
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_1_1ctir_html_a0cd5347bc8043d4306e66a4a96005ace"><div class="ttname"><a href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">SVF::cppUtil::ctir::derefMDName</a></div><div class="ttdeci">const std::string derefMDName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00114">CPPUtil.h:114</a></div></div>
|
|
106
|
-
<div class="ttc" id="classSVF_1_1GenericEdge_html"><div class="ttname"><a href="classSVF_1_1GenericEdge.html">SVF::GenericEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
105
|
+
<div class="ttc" id="classSVF_1_1GenericEdge_html"><div class="ttname"><a href="classSVF_1_1GenericEdge.html">SVF::GenericEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00044">GenericGraph.h:44</a></div></div>
|
|
107
106
|
<div class="ttc" id="classSVF_1_1DCHEdge_html_a500ccfa8f8327ab792844698423d8578"><div class="ttname"><a href="classSVF_1_1DCHEdge.html#a500ccfa8f8327ab792844698423d8578">SVF::DCHEdge::getConstantFieldIdx</a></div><div class="ttdeci">u32_t getConstantFieldIdx(void) const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00049">DCHG.h:49</a></div></div>
|
|
108
107
|
<div class="ttc" id="cJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
|
|
109
108
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a581ce71cbc7994f71c9a6b9b145d3b9f"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a581ce71cbc7994f71c9a6b9b145d3b9f">SVF::DCHGraph::diTypeToNodeMap</a></div><div class="ttdeci">Map< const DIType *, DCHNode * > diTypeToNodeMap</div><div class="ttdoc">Maps DITypes to their nodes. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00364">DCHG.h:364</a></div></div>
|
|
110
109
|
<div class="ttc" id="cJSON_8h_html_a1a175e87536301df98c805ac0636ad7c"><div class="ttname"><a href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a></div><div class="ttdeci">const cJSON *const b</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00255">cJSON.h:255</a></div></div>
|
|
111
110
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a9184a71cd5dae94843ac89f4235d4fa2"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a9184a71cd5dae94843ac89f4235d4fa2">SVF::DCHNode::getVTable</a></div><div class="ttdeci">const SVFGlobalValue * getVTable() const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00169">DCHG.h:169</a></div></div>
|
|
112
111
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a806a65f35c9f4ea118c1ef44ddb46079"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a806a65f35c9f4ea118c1ef44ddb46079">SVF::DCHNode::getVfnVectors</a></div><div class="ttdeci">const std::vector< std::vector< const Function *> > & getVfnVectors(void) const</div><div class="ttdoc">Returns the vector of virtual function vectors. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00175">DCHG.h:175</a></div></div>
|
|
112
|
+
<div class="ttc" id="structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4_html_aab14259075b96fab09dde300fbeff390"><div class="ttname"><a href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html#aab14259075b96fab09dde300fbeff390">SVF::GenericGraphTraits< SVF::DCHGraph * >::NodeRef</a></div><div class="ttdeci">SVF::DCHNode * NodeRef</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00476">DCHG.h:476</a></div></div>
|
|
113
113
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a05b5b4539273ac5d21d8cbcfa712a439"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a05b5b4539273ac5d21d8cbcfa712a439">SVF::DCHNode::diType</a></div><div class="ttdeci">const DIType * diType</div><div class="ttdoc">Type of this node. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00193">DCHG.h:193</a></div></div>
|
|
114
114
|
<div class="ttc" id="namespaceSVF_html_a090e0791e8c200104ed3ab6bab157129"><div class="ttname"><a href="namespaceSVF.html#a090e0791e8c200104ed3ab6bab157129">SVF::DISubroutineType</a></div><div class="ttdeci">llvm::DISubroutineType DISubroutineType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00208">BasicTypes.h:208</a></div></div>
|
|
115
115
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a2fef8f7209f100c7a266cf3102b1219b"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a2fef8f7209f100c7a266cf3102b1219b">SVF::DCHGraph::csHasVtblsBasedonCHA</a></div><div class="ttdeci">virtual bool csHasVtblsBasedonCHA(CallSite cs) override</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00271">DCHG.h:271</a></div></div>
|
|
116
|
+
<div class="ttc" id="structSVF_1_1Inverse_html"><div class="ttname"><a href="structSVF_1_1Inverse.html">SVF::Inverse</a></div><div class="ttdef"><b>Definition:</b> <a href="GraphTraits_8h_source.html#l00097">GraphTraits.h:97</a></div></div>
|
|
116
117
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a3947007a7b8074f06064e34de9d980fe"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a3947007a7b8074f06064e34de9d980fe">SVF::DCHNode::setTemplate</a></div><div class="ttdeci">void setTemplate()</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00128">DCHG.h:128</a></div></div>
|
|
117
118
|
<div class="ttc" id="classSVF_1_1DCHEdge_html_a48f01c4a02c4e278a1ab70b16efdef4ba3e807b4caeb170c5cd1e855ac1a92d77"><div class="ttname"><a href="classSVF_1_1DCHEdge.html#a48f01c4a02c4e278a1ab70b16efdef4ba3e807b4caeb170c5cd1e855ac1a92d77">SVF::DCHEdge::INSTANCE</a></div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00036">DCHG.h:36</a></div></div>
|
|
118
119
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a798e80f0cc5951789474abc3a0999166"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a798e80f0cc5951789474abc3a0999166">SVF::DCHNode::setMultiInheritance</a></div><div class="ttdeci">void setMultiInheritance()</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00124">DCHG.h:124</a></div></div>
|
|
@@ -121,26 +122,25 @@ $(function() {
|
|
|
121
122
|
<div class="ttc" id="cJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
|
|
122
123
|
<div class="ttc" id="GenericGraph_8h_html"><div class="ttname"><a href="GenericGraph_8h.html">GenericGraph.h</a></div></div>
|
|
123
124
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a236d785d728189c2026357ce837fcdc6"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a236d785d728189c2026357ce837fcdc6">SVF::DCHGraph::getCSStaticType</a></div><div class="ttdeci">const DIType * getCSStaticType(CallSite cs) const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00422">DCHG.h:422</a></div></div>
|
|
124
|
-
<div class="ttc" id="classSVF_1_1GenericEdge_html_aab8892b73370c32b48621cd1d0cce614"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">SVF::GenericEdge< DCHNode >::GEdgeFlag</a></div><div class="ttdeci">u64_t GEdgeFlag</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
125
|
+
<div class="ttc" id="classSVF_1_1GenericEdge_html_aab8892b73370c32b48621cd1d0cce614"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">SVF::GenericEdge< DCHNode >::GEdgeFlag</a></div><div class="ttdeci">u64_t GEdgeFlag</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00054">GenericGraph.h:54</a></div></div>
|
|
125
126
|
<div class="ttc" id="namespaceSVF_html_a852e75c562139237fcc754c7461533e6"><div class="ttname"><a href="namespaceSVF.html#a852e75c562139237fcc754c7461533e6">SVF::DIDerivedType</a></div><div class="ttdeci">llvm::DIDerivedType DIDerivedType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00206">BasicTypes.h:206</a></div></div>
|
|
126
127
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a96c68bbb5ee5e939158ce0b67da2c61d"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a96c68bbb5ee5e939158ce0b67da2c61d">SVF::DCHGraph::getNode</a></div><div class="ttdeci">DCHNode * getNode(const DIType *type)</div><div class="ttdoc">Returns the node for type (nullptr if it doesn&#39;t exist). </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00435">DCHG.h:435</a></div></div>
|
|
127
|
-
<div class="ttc" id="classllvm_1_1GraphPrinter_html_af6ed328e74882d2b5e2b4039cb836928"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &O, const std::string &GraphName, const GraphType &GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00058">GraphPrinter.h:58</a></div></div>
|
|
128
128
|
<div class="ttc" id="classSVF_1_1DCHNode_html_ab2d407888f4cf9fd5d9ae0b16ef2af49"><div class="ttname"><a href="classSVF_1_1DCHNode.html#ab2d407888f4cf9fd5d9ae0b16ef2af49">SVF::DCHNode::~DCHNode</a></div><div class="ttdeci">~DCHNode()</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00094">DCHG.h:94</a></div></div>
|
|
129
129
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a4e08c543fa2ae557ff835b1a0f3c53a4"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a4e08c543fa2ae557ff835b1a0f3c53a4">SVF::DCHNode::setFlag</a></div><div class="ttdeci">void setFlag(CLASSATTR mask)</div><div class="ttdoc">Flags. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00108">DCHG.h:108</a></div></div>
|
|
130
130
|
<div class="ttc" id="namespaceSVF_html_a340a9e77adc2bbfdee79e22da9ead234"><div class="ttname"><a href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">SVF::VTableSet</a></div><div class="ttdeci">Set< const SVFGlobalValue * > VTableSet</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00044">CHG.h:44</a></div></div>
|
|
131
131
|
<div class="ttc" id="namespaceSVF_html_ad2b487757f1e1a1d81073120fc1d49c7"><div class="ttname"><a href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">SVF::VFunSet</a></div><div class="ttdeci">Set< const SVFFunction * > VFunSet</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00047">CHG.h:47</a></div></div>
|
|
132
132
|
<div class="ttc" id="classSVF_1_1DCHNode_html_ad3144bcf462769c687bc7b65ef2f1639"><div class="ttname"><a href="classSVF_1_1DCHNode.html#ad3144bcf462769c687bc7b65ef2f1639">SVF::DCHNode::setVTable</a></div><div class="ttdeci">void setVTable(const SVFGlobalValue *vtbl)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00164">DCHG.h:164</a></div></div>
|
|
133
133
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a574ec14099f1112b394b00a79f3fdf1a"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a574ec14099f1112b394b00a79f3fdf1a">SVF::DCHGraph::fieldTypes</a></div><div class="ttdeci">Map< const DIType *, std::vector< const DIType * > > fieldTypes</div><div class="ttdoc">Maps types to their flattened fields&#39; types. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00380">DCHG.h:380</a></div></div>
|
|
134
|
-
<div class="ttc" id="classSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
134
|
+
<div class="ttc" id="classSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00783">SVFValue.h:783</a></div></div>
|
|
135
135
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
136
|
-
<div class="ttc" id="classSVF_1_1GenericNode_html_a3f20339b5295e11beb0f9adb95c7aa5b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">SVF::GenericNode< DCHNode, DCHEdge >::GNodeK</a></div><div class="ttdeci">s64_t GNodeK</div><div class="ttdoc">Edge kind. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
137
|
-
<div class="ttc" id="classSVF_1_1GenericEdge_html_aa41cb7482bdab1ba328f4b94f30f3ee4"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aa41cb7482bdab1ba328f4b94f30f3ee4">SVF::GenericEdge< DCHNode >::dst</a></div><div class="ttdeci">DCHNode * dst</div><div class="ttdoc">destination node </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
136
|
+
<div class="ttc" id="classSVF_1_1GenericNode_html_a3f20339b5295e11beb0f9adb95c7aa5b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">SVF::GenericNode< DCHNode, DCHEdge >::GNodeK</a></div><div class="ttdeci">s64_t GNodeK</div><div class="ttdoc">Edge kind. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00141">GenericGraph.h:141</a></div></div>
|
|
137
|
+
<div class="ttc" id="classSVF_1_1GenericEdge_html_aa41cb7482bdab1ba328f4b94f30f3ee4"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aa41cb7482bdab1ba328f4b94f30f3ee4">SVF::GenericEdge< DCHNode >::dst</a></div><div class="ttdeci">DCHNode * dst</div><div class="ttdoc">destination node </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00058">GenericGraph.h:58</a></div></div>
|
|
138
138
|
<div class="ttc" id="classSVF_1_1DCHNode_html"><div class="ttname"><a href="classSVF_1_1DCHNode.html">SVF::DCHNode</a></div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00063">DCHG.h:63</a></div></div>
|
|
139
139
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a0b2c21429fd28c50965737a0baa2e90b"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a0b2c21429fd28c50965737a0baa2e90b">SVF::DCHNode::flags</a></div><div class="ttdeci">size_t flags</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00198">DCHG.h:198</a></div></div>
|
|
140
140
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a58341e23c1dc2b3e7fce190ed16a8a25"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a58341e23c1dc2b3e7fce190ed16a8a25">SVF::DCHGraph::hasNode</a></div><div class="ttdeci">bool hasNode(const DIType *type)</div><div class="ttdoc">Checks if a node exists for type. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00428">DCHG.h:428</a></div></div>
|
|
141
141
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_ac0d5f1e10f642aac5b64792bf5fcbd9d"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#ac0d5f1e10f642aac5b64792bf5fcbd9d">SVF::DCHGraph::chaMap</a></div><div class="ttdeci">Map< const DIType *, NodeBS > chaMap</div><div class="ttdoc">Maps types to all children (i.e. CHA). </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00368">DCHG.h:368</a></div></div>
|
|
142
142
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a50cf99ff5cc910512c1ce3987c7395ef"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a50cf99ff5cc910512c1ce3987c7395ef">SVF::DCHNode::isScalar</a></div><div class="ttdeci">bool isScalar() const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00148">DCHG.h:148</a></div></div>
|
|
143
|
-
<div class="ttc" id="classSVF_1_1GenericNode_html"><div class="ttname"><a href="classSVF_1_1GenericNode.html">SVF::GenericNode</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
143
|
+
<div class="ttc" id="classSVF_1_1GenericNode_html"><div class="ttname"><a href="classSVF_1_1GenericNode.html">SVF::GenericNode</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00134">GenericGraph.h:134</a></div></div>
|
|
144
144
|
<div class="ttc" id="classSVF_1_1DCHNode_html_aca8d8b3cf86c566698cc8b76e940f46e"><div class="ttname"><a href="classSVF_1_1DCHNode.html#aca8d8b3cf86c566698cc8b76e940f46e">SVF::DCHNode::vtable</a></div><div class="ttdeci">const SVFGlobalValue * vtable</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00196">DCHG.h:196</a></div></div>
|
|
145
145
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a3e81cc40aa1c37999cead00f1af85a6e"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a3e81cc40aa1c37999cead00f1af85a6e">SVF::DCHNode::DCHNode</a></div><div class="ttdeci">DCHNode(const DIType *diType, NodeID i=0, GNodeK k=0)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00076">DCHG.h:76</a></div></div>
|
|
146
146
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a7cbea4d5399333497faa3f8d213e365e"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a7cbea4d5399333497faa3f8d213e365e">SVF::DCHGraph::DCHGraph</a></div><div class="ttdeci">DCHGraph(const SVFModule *svfMod)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00233">DCHG.h:233</a></div></div>
|
|
@@ -150,13 +150,13 @@ $(function() {
|
|
|
150
150
|
<div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00086">BasicTypes.h:86</a></div></div>
|
|
151
151
|
<div class="ttc" id="cJSON_8cpp_html_a8a1a0a26c50cc4becfc754bb68d1dc6b"><div class="ttname"><a href="cJSON_8cpp.html#a8a1a0a26c50cc4becfc754bb68d1dc6b">a</a></div><div class="ttdeci">cJSON * a</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02560">cJSON.cpp:2560</a></div></div>
|
|
152
152
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a743bc5df582114c45d1907d62a42a39c"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a743bc5df582114c45d1907d62a42a39c">SVF::DCHNode::hasFlag</a></div><div class="ttdeci">bool hasFlag(CLASSATTR mask) const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00112">DCHG.h:112</a></div></div>
|
|
153
|
-
<div class="ttc" id="classSVF_1_1GenericEdge_html_a5aceeb48929f54264807b36569019a8a"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">SVF::GenericEdge< DCHNode >::GEdgeKind</a></div><div class="ttdeci">s64_t GEdgeKind</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
153
|
+
<div class="ttc" id="classSVF_1_1GenericEdge_html_a5aceeb48929f54264807b36569019a8a"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">SVF::GenericEdge< DCHNode >::GEdgeKind</a></div><div class="ttdeci">s64_t GEdgeKind</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00055">GenericGraph.h:55</a></div></div>
|
|
154
154
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
|
|
155
155
|
<div class="ttc" id="classSVF_1_1DCHNode_html_afa271fdb9c1aa3589f41655813a2de8e"><div class="ttname"><a href="classSVF_1_1DCHNode.html#afa271fdb9c1aa3589f41655813a2de8e">SVF::DCHNode::setPureAbstract</a></div><div class="ttdeci">void setPureAbstract()</div><div class="ttdoc">Attribute. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00120">DCHG.h:120</a></div></div>
|
|
156
156
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
|
|
157
157
|
<div class="ttc" id="namespaceSVF_html_ada0513be7e25325325ccc9183aeca278"><div class="ttname"><a href="namespaceSVF.html#ada0513be7e25325325ccc9183aeca278">SVF::DIBasicType</a></div><div class="ttdeci">llvm::DIBasicType DIBasicType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00209">BasicTypes.h:209</a></div></div>
|
|
158
158
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a294e7a04aff9cef87c1008e91a620155"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a294e7a04aff9cef87c1008e91a620155">SVF::DCHGraph::vtblCHAMap</a></div><div class="ttdeci">Map< const DIType *, VTableSet > vtblCHAMap</div><div class="ttdoc">Maps types to a set with their vtable and all their children&#39;s. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00372">DCHG.h:372</a></div></div>
|
|
159
|
-
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
159
|
+
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01014">SVFValue.h:1014</a></div></div>
|
|
160
160
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a8a7b412262af7a90c9ef583b6a8c10fc"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a8a7b412262af7a90c9ef583b6a8c10fc">SVF::DCHNode::typeName</a></div><div class="ttdeci">std::string typeName</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00197">DCHG.h:197</a></div></div>
|
|
161
161
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a089af6085dec833b58133a9e834dab54"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a089af6085dec833b58133a9e834dab54">SVF::DCHNode::getName</a></div><div class="ttdeci">std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00101">DCHG.h:101</a></div></div>
|
|
162
162
|
<div class="ttc" id="classSVF_1_1DCHNode_html_abafa483be12690549fbcccaf4c3fa511"><div class="ttname"><a href="classSVF_1_1DCHNode.html#abafa483be12690549fbcccaf4c3fa511">SVF::DCHNode::typedefs</a></div><div class="ttdeci">Set< const DIDerivedType * > typedefs</div><div class="ttdoc">Typedefs which map to this type. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00195">DCHG.h:195</a></div></div>
|
|
@@ -166,18 +166,19 @@ $(function() {
|
|
|
166
166
|
<div class="ttc" id="WorkList_8h_html"><div class="ttname"><a href="WorkList_8h.html">WorkList.h</a></div></div>
|
|
167
167
|
<div class="ttc" id="classSVF_1_1DCHNode_html_ada436c7cb9108898c520952a87ebd01d"><div class="ttname"><a href="classSVF_1_1DCHNode.html#ada436c7cb9108898c520952a87ebd01d">SVF::DCHNode::isTemplate</a></div><div class="ttdeci">bool isTemplate() const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00144">DCHG.h:144</a></div></div>
|
|
168
168
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a42026e30e790bce5be03da3e45353c8d"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a42026e30e790bce5be03da3e45353c8d">SVF::DCHNode::isMultiInheritance</a></div><div class="ttdeci">bool isMultiInheritance() const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00140">DCHG.h:140</a></div></div>
|
|
169
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html"><div class="ttname"><a href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
170
|
-
<div class="ttc" id="structllvm_1_1GraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4_html_a7f54c1b4b286ea5b46471741e4c34b54"><div class="ttname"><a href="structllvm_1_1GraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html#a7f54c1b4b286ea5b46471741e4c34b54">llvm::GraphTraits< SVF::DCHGraph * >::NodeRef</a></div><div class="ttdeci">SVF::DCHNode * NodeRef</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00476">DCHG.h:476</a></div></div>
|
|
169
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html"><div class="ttname"><a href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00335">GenericGraph.h:335</a></div></div>
|
|
171
170
|
<div class="ttc" id="namespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
|
|
172
171
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a76fd3154a31584bb64683f2d762cc56c"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a76fd3154a31584bb64683f2d762cc56c">SVF::DCHGraph::numTypes</a></div><div class="ttdeci">NodeID numTypes</div><div class="ttdoc">Number of types (nodes) in the graph. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00453">DCHG.h:453</a></div></div>
|
|
172
|
+
<div class="ttc" id="classSVF_1_1GraphPrinter_html_a014217fb0d05c8f2a2f1a6c5b19d3e10"><div class="ttname"><a href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">SVF::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &O, const std::string &GraphName, const GraphType &GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00056">GraphPrinter.h:56</a></div></div>
|
|
173
173
|
<div class="ttc" id="classSVF_1_1CommonCHGraph_html"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html">SVF::CommonCHGraph</a></div><div class="ttdoc">Common base for class hierarchy graph. Only implements what PointerAnalysis needs. </div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00050">CHG.h:50</a></div></div>
|
|
174
174
|
<div class="ttc" id="classSVF_1_1DCHNode_html_ac77edc44c3c5acc185c27c018837d066"><div class="ttname"><a href="classSVF_1_1DCHNode.html#ac77edc44c3c5acc185c27c018837d066">SVF::DCHNode::getTypedefs</a></div><div class="ttdeci">const Set< const DIDerivedType * > & getTypedefs(void) const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00159">DCHG.h:159</a></div></div>
|
|
175
175
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
176
|
+
<div class="ttc" id="structSVF_1_1GenericGraphTraits_html"><div class="ttname"><a href="structSVF_1_1GenericGraphTraits.html">SVF::GenericGraphTraits</a></div><div class="ttdef"><b>Definition:</b> <a href="GraphTraits_8h_source.html#l00036">GraphTraits.h:36</a></div></div>
|
|
176
177
|
<div class="ttc" id="classSVF_1_1DCHEdge_html_a17e3db6d11e0752064194ffc46cd9afe"><div class="ttname"><a href="classSVF_1_1DCHEdge.html#a17e3db6d11e0752064194ffc46cd9afe">SVF::DCHEdge::DCHEdge</a></div><div class="ttdeci">DCHEdge(DCHNode *src, DCHNode *dst, GEdgeFlag k=0)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00044">DCHG.h:44</a></div></div>
|
|
177
178
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_afc7235305640be3d6dbae8199d5c8611"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#afc7235305640be3d6dbae8199d5c8611">SVF::DCHGraph::csHasVtblsBasedonCHA</a></div><div class="ttdeci">virtual bool csHasVtblsBasedonCHA(CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00259">DCHG.h:259</a></div></div>
|
|
178
179
|
<div class="ttc" id="namespaceSVF_html_ad127b0ad478640ede3d426e3a58d2632"><div class="ttname"><a href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">SVF::DIType</a></div><div class="ttdeci">llvm::DIType DIType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00204">BasicTypes.h:204</a></div></div>
|
|
179
180
|
<div class="ttc" id="classSVF_1_1DCHNode_html_a917265fa44ed08b66a6bd722f318bfa4"><div class="ttname"><a href="classSVF_1_1DCHNode.html#a917265fa44ed08b66a6bd722f318bfa4">SVF::DCHNode::setScalar</a></div><div class="ttdeci">void setScalar()</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00132">DCHG.h:132</a></div></div>
|
|
180
|
-
<div class="ttc" id="classSVF_1_1GenericEdge_html_a0e8736f88ee75da025d874f92328ca71"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#a0e8736f88ee75da025d874f92328ca71">SVF::GenericEdge< DCHNode >::src</a></div><div class="ttdeci">DCHNode * src</div><div class="ttdoc">source node </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
181
|
+
<div class="ttc" id="classSVF_1_1GenericEdge_html_a0e8736f88ee75da025d874f92328ca71"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#a0e8736f88ee75da025d874f92328ca71">SVF::GenericEdge< DCHNode >::src</a></div><div class="ttdeci">DCHNode * src</div><div class="ttdoc">source node </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00057">GenericGraph.h:57</a></div></div>
|
|
181
182
|
<div class="ttc" id="classSVF_1_1DCHGraph_html_a10225f56b21eb7f0870fdc433de3c393"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a10225f56b21eb7f0870fdc433de3c393">SVF::DCHGraph::canonicalTypes</a></div><div class="ttdeci">Set< const DIType * > canonicalTypes</div><div class="ttdoc">Set of all possible canonical types (i.e. values of canonicalTypeMap). </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00378">DCHG.h:378</a></div></div>
|
|
182
183
|
<div class="ttc" id="classSVF_1_1DCHNode_html_aed5e8397d43b602b79425acdae5e01f5"><div class="ttname"><a href="classSVF_1_1DCHNode.html#aed5e8397d43b602b79425acdae5e01f5">SVF::DCHNode::isPureAbstract</a></div><div class="ttdeci">bool isPureAbstract() const</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00136">DCHG.h:136</a></div></div>
|
|
183
184
|
<div class="ttc" id="classSVF_1_1CommonCHGraph_html_adf2a02fff9d7dd9fc9d92121e5e28f8b"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html#adf2a02fff9d7dd9fc9d92121e5e28f8b">SVF::CommonCHGraph::getKind</a></div><div class="ttdeci">CHGKind getKind(void) const</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00066">CHG.h:66</a></div></div>
|