svf-tools 1.0.613 → 1.0.614
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +13 -0
- package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +23 -28
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
- package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
- package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
- package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
- package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
- package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
- package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +106 -92
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
- package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
- package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
- package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +29 -32
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
- package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/functions.html +1 -1
- package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
- package/SVF-doxygen/html/html/functions_a.html +7 -7
- package/SVF-doxygen/html/html/functions_b.html +6 -6
- package/SVF-doxygen/html/html/functions_c.html +27 -27
- package/SVF-doxygen/html/html/functions_d.html +10 -11
- package/SVF-doxygen/html/html/functions_e.html +2 -2
- package/SVF-doxygen/html/html/functions_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func.html +6 -6
- package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
- package/SVF-doxygen/html/html/functions_func_b.html +6 -6
- package/SVF-doxygen/html/html/functions_func_c.html +27 -27
- package/SVF-doxygen/html/html/functions_func_d.html +10 -11
- package/SVF-doxygen/html/html/functions_func_e.html +2 -2
- package/SVF-doxygen/html/html/functions_func_f.html +5 -5
- package/SVF-doxygen/html/html/functions_func_g.html +22 -22
- package/SVF-doxygen/html/html/functions_func_h.html +3 -3
- package/SVF-doxygen/html/html/functions_func_i.html +2 -2
- package/SVF-doxygen/html/html/functions_func_o.html +3 -3
- package/SVF-doxygen/html/html/functions_func_p.html +5 -5
- package/SVF-doxygen/html/html/functions_func_r.html +5 -8
- package/SVF-doxygen/html/html/functions_func_s.html +5 -5
- package/SVF-doxygen/html/html/functions_func_t.html +1 -1
- package/SVF-doxygen/html/html/functions_func_u.html +23 -23
- package/SVF-doxygen/html/html/functions_g.html +25 -28
- package/SVF-doxygen/html/html/functions_h.html +3 -3
- package/SVF-doxygen/html/html/functions_i.html +5 -5
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_o.html +13 -13
- package/SVF-doxygen/html/html/functions_p.html +19 -19
- package/SVF-doxygen/html/html/functions_r.html +11 -12
- package/SVF-doxygen/html/html/functions_s.html +32 -35
- package/SVF-doxygen/html/html/functions_t.html +12 -12
- package/SVF-doxygen/html/html/functions_type_t.html +1 -1
- package/SVF-doxygen/html/html/functions_u.html +26 -23
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
- package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +3 -7
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
- package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
- package/SVF-doxygen/html/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +4 -4
- package/SVF-doxygen/html/html/search/all_10.js +15 -15
- package/SVF-doxygen/html/html/search/all_11.js +1 -2
- package/SVF-doxygen/html/html/search/all_12.js +19 -20
- package/SVF-doxygen/html/html/search/all_13.js +8 -8
- package/SVF-doxygen/html/html/search/all_14.js +13 -12
- package/SVF-doxygen/html/html/search/all_15.js +4 -4
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_19.js +16 -16
- package/SVF-doxygen/html/html/search/all_2.js +6 -6
- package/SVF-doxygen/html/html/search/all_3.js +14 -14
- package/SVF-doxygen/html/html/search/all_4.js +5 -5
- package/SVF-doxygen/html/html/search/all_5.js +2 -2
- package/SVF-doxygen/html/html/search/all_6.js +5 -5
- package/SVF-doxygen/html/html/search/all_7.js +11 -12
- package/SVF-doxygen/html/html/search/all_8.js +3 -3
- package/SVF-doxygen/html/html/search/all_9.js +3 -3
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_d.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +5 -5
- package/SVF-doxygen/html/html/search/functions_0.js +4 -4
- package/SVF-doxygen/html/html/search/functions_1.js +6 -6
- package/SVF-doxygen/html/html/search/functions_10.js +1 -2
- package/SVF-doxygen/html/html/search/functions_11.js +10 -10
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_13.js +12 -12
- package/SVF-doxygen/html/html/search/functions_17.js +16 -16
- package/SVF-doxygen/html/html/search/functions_2.js +14 -14
- package/SVF-doxygen/html/html/search/functions_3.js +5 -5
- package/SVF-doxygen/html/html/search/functions_4.js +2 -2
- package/SVF-doxygen/html/html/search/functions_5.js +4 -4
- package/SVF-doxygen/html/html/search/functions_6.js +11 -11
- package/SVF-doxygen/html/html/search/functions_7.js +3 -3
- package/SVF-doxygen/html/html/search/functions_8.js +2 -2
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +3 -3
- package/SVF-doxygen/html/html/search/functions_f.js +5 -5
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/variables_0.js +1 -1
- package/SVF-doxygen/html/html/search/variables_10.js +2 -2
- package/SVF-doxygen/html/html/search/variables_12.js +5 -6
- package/SVF-doxygen/html/html/search/variables_13.js +3 -3
- package/SVF-doxygen/html/html/search/variables_14.js +1 -0
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +0 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/build.sh +2 -2
- package/include/DDA/DDAPass.h +1 -1
- package/include/DDA/FlowDDA.h +1 -1
- package/include/Graphs/ICFG.h +1 -1
- package/include/Graphs/SVFG.h +3 -4
- package/include/Graphs/SVFGOPT.h +7 -7
- package/include/MSSA/MemSSA.h +2 -0
- package/include/MSSA/SVFGBuilder.h +5 -14
- package/include/MTA/MTA.h +2 -2
- package/include/MemoryModel/MutablePointsToDS.h +3 -3
- package/include/MemoryModel/PersistentPointsToCache.h +7 -8
- package/include/MemoryModel/PersistentPointsToDS.h +93 -93
- package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
- package/include/MemoryModel/PointsTo.h +24 -24
- package/include/SABER/SrcSnkDDA.h +10 -13
- package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
- package/include/SVF-LLVM/LLVMModule.h +6 -6
- package/include/SVFIR/SVFIR.h +3 -5
- package/include/SVFIR/SVFType.h +6 -8
- package/include/SVFIR/SVFValue.h +3 -3
- package/include/Util/Options.h +0 -1
- package/include/Util/SparseBitVector.h +6 -14
- package/include/WPA/FlowSensitive.h +13 -20
- package/include/WPA/WPASolver.h +5 -9
- package/lib/DDA/DDAPass.cpp +4 -4
- package/lib/Graphs/CFLGraph.cpp +3 -0
- package/lib/Graphs/SVFG.cpp +1 -1
- package/lib/MSSA/MemSSA.cpp +5 -3
- package/lib/MSSA/SVFGBuilder.cpp +9 -27
- package/lib/MTA/MTA.cpp +4 -4
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
- package/lib/MemoryModel/PointsTo.cpp +23 -19
- package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
- package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
- package/lib/SVFIR/SVFIR.cpp +1 -1
- package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
- package/lib/Util/Options.cpp +0 -6
- package/lib/WPA/AndersenSFR.cpp +1 -1
- package/lib/WPA/FlowSensitive.cpp +1 -1
- package/package.json +1 -1
- package/tools/CFL/cfl.cpp +5 -4
- package/tools/DDA/dda.cpp +3 -2
- package/tools/Example/svf-ex.cpp +3 -2
- package/tools/MTA/mta.cpp +6 -4
- package/tools/SABER/saber.cpp +7 -5
- package/tools/WPA/wpa.cpp +3 -2
|
@@ -66,14 +66,14 @@ $(function() {
|
|
|
66
66
|
<div class="title">SVFValue.cpp</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="SVFValue_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#include "<a class="code" href="SVFValue_8h.html">SVFIR/SVFValue.h</a>"</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</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="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c"> 8</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">StInfo::addFldWithType</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fldIdx, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemIdx)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  fldIdxVec.push_back(fldIdx);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  elemIdxVec.push_back(elemIdx);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  fldIdx2TypeMap[fldIdx] = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>;</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> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//{@</span></div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159"> 19</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">StInfo::getOriginalElemType</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fldIdx)<span class="keyword"> const</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword"></span>{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, const SVFType*>::const_iterator</a> it = fldIdx2TypeMap.find(fldIdx);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keywordflow">if</span>(it!=fldIdx2TypeMap.end())</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</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"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66"> 27</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">SVFLoopAndDomInfo::LoopBBs</a>& <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66">SVFLoopAndDomInfo::getLoopInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb)<span class="keyword"> const</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword"></span>{</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  assert(hasLoopInfo(bb) && <span class="stringliteral">"loopinfo does not exit (bb not in a loop)"</span>);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*, LoopBBs>::const_iterator</a> mapIter = bb2LoopMap.find(bb);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">return</span> mapIter->second;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a48654f61a84ac5f93b02fb618cd0d045"> 34</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a48654f61a84ac5f93b02fb618cd0d045">SVFLoopAndDomInfo::getExitBlocksOfLoop</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb, <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a33b96ce50eb1d3caab2b20c19a60b2cc">BBList</a>& exitbbs)<span class="keyword"> const</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword"></span>{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">if</span> (hasLoopInfo(bb))</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a> blocks = getLoopInfo(bb);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (!blocks.empty())</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>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* block : blocks)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ : block-><a class="code" href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">getSuccessors</a>())</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">if</span> ((std::find(blocks.begin(), blocks.end(), succ)==blocks.end()))</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  exitbbs.push_back(succ);</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"> 49</span>  }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a342f2825d6b7e3289d0f0f4b7ee8247c"> 53</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a342f2825d6b7e3289d0f0f4b7ee8247c">SVFLoopAndDomInfo::dominate</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbKey, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbValue)<span class="keyword"> const</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword"></span>{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">if</span> (bbKey == bbValue)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>  <span class="comment">// An unreachable node is dominated by anything.</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">if</span> (isUnreachable(bbValue))</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// And dominates nothing.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (isUnreachable(bbKey))</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet></a>& dtBBsMap = getDomTreeMap();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet>::const_iterator</a> mapIter = dtBBsMap.find(bbKey);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (mapIter != dtBBsMap.end())</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">BBSet</a> & dtBBs = mapIter->second;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">if</span> (dtBBs.find(bbValue) != dtBBs.end())</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>  }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#af66c5a824f9fc2813e2d97e17f9a2e96"> 84</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#af66c5a824f9fc2813e2d97e17f9a2e96">SVFLoopAndDomInfo::postDominate</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbKey, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbValue)<span class="keyword"> const</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword"></span>{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">if</span> (bbKey == bbValue)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// An unreachable node is dominated by anything.</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (isUnreachable(bbValue))</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>  <span class="keywordflow">return</span> <span class="keyword">true</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"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// And dominates nothing.</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (isUnreachable(bbKey))</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet></a>& dtBBsMap = getPostDomTreeMap();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet>::const_iterator</a> mapIter = dtBBsMap.find(bbKey);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> (mapIter != dtBBsMap.end())</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">BBSet</a> & dtBBs = mapIter->second;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span> (dtBBs.find(bbValue) != dtBBs.end())</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43"> 114</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVFLoopAndDomInfo::isLoopHeader</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb)<span class="keyword"> const</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword"></span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span> (hasLoopInfo(bb))</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a>& blocks = getLoopInfo(bb);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  assert(!blocks.empty() && <span class="stringliteral">"no available loop info?"</span>);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> blocks.front() == bb;</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>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a6aefcab4d391e4e9c5cbab151895a1e8"> 125</a></span> <a class="code" href="classSVF_1_1SVFFunction.html#a7e965c21a8afe7fca32d0f41b16361cf">SVFFunction::SVFFunction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& f, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>* ft, <span class="keywordtype">bool</span> declare, <span class="keywordtype">bool</span> intric, <span class="keywordtype">bool</span> adt, <span class="keywordtype">bool</span> varg, <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a>* ld):</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(f,ty,<a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFFunc),isDecl(declare), intricsic(intric), addrTaken(adt), isUncalled(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), isNotRet(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), varArg(varg), funcType(ft), loopAndDom(ld), realDefFun(nullptr)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686"> 130</a></span> <a class="code" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVFFunction::~SVFFunction</a>()</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb : <a class="code" href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">allBBs</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">delete</span> bb;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* arg : <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">delete</span> arg;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SVFFunction.html#aefde3a0671e34541a4ad5d7a6dfaa5d1">loopAndDom</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e"> 139</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVFFunction::arg_size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword"></span>{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> }</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_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee"> 144</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* <a class="code" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVFFunction::getArg</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)<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>  assert (idx < <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size() && <span class="stringliteral">"getArg() out of range!"</span>);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>[idx];</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58"> 150</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVFFunction::isVarArg</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword"></span>{</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a11aaa0ffaf7fa3d220c9af5d4537eaad">varArg</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#ae87740af3d1d7f9d1342e31b551dc4d7"> 155</a></span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#aaf00caa4803939dd655b45c349575a19">SVFBasicBlock::SVFBasicBlock</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f):</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(b, ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::<a class="code" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860ea732cb3760ef56163428add79824174f4">SVFBB</a>), fun(f)</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"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a3563eb676adc76ba19b7c8c58c851d7c"> 160</a></span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a3563eb676adc76ba19b7c8c58c851d7c">SVFBasicBlock::~SVFBasicBlock</a>()</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst : <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">delete</span> inst;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174"> 169</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">if</span> (SuccBB == Succ)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  i++;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Didn't find succesor edge?"</span>);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a104c66cdd4d88ba90eefd32bc9eef389"> 182</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)<span class="keyword"> const</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword"></span>{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</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>  <span class="keywordflow">if</span> (SuccBB == Succ)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  i++;</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>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Didn't find succesor edge?"</span>);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38"> 195</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* <a class="code" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVFBasicBlock::getTerminator</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword"></span>{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.empty() || !<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back()->isTerminator())</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5"> 205</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> pos;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  ++pos;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Didn't find predecessor edge?"</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> pos;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> }</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a5fe2dae55581ff1cd6ef251a351d5c4f"> 217</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)<span class="keyword"> const</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword"></span>{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> pos;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  ++pos;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Didn't find predecessor edge?"</span>);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> pos;</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> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFInstruction.html#af12f1d63483901bd33a42f04bccddeb8"> 230</a></span> <a class="code" href="classSVF_1_1SVFInstruction.html#a7d81c86ea5e1f8e313457862e19c2a3c">SVFInstruction::SVFInstruction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>, <span class="keywordtype">bool</span> tm, <span class="keywordtype">bool</span> isRet, <a class="code" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860e">SVFValKind</a> k):</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(i, ty, k), bb(b), terminator(tm), ret(isRet)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> }</div><div class="ttc" id="classSVF_1_1SVFFunction_html_aa61307a21647def105677d36bfbaf32f"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">SVF::SVFFunction::allBBs</a></div><div class="ttdeci">std::vector< const SVFBasicBlock * > allBBs</div><div class="ttdoc">the definition of a function across multiple modules </div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00277">SVFValue.h:277</a></div></div>
|
|
69
|
+
<a href="SVFValue_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#include "<a class="code" href="SVFValue_8h.html">SVFIR/SVFValue.h</a>"</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</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="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c"> 8</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">StInfo::addFldWithType</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fldIdx, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemIdx)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  fldIdxVec.push_back(fldIdx);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  elemIdxVec.push_back(elemIdx);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  fldIdx2TypeMap[fldIdx] = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>;</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> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//{@</span></div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159"> 19</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">StInfo::getOriginalElemType</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fldIdx)<span class="keyword"> const</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword"></span>{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, const SVFType*>::const_iterator</a> it = fldIdx2TypeMap.find(fldIdx);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keywordflow">if</span>(it!=fldIdx2TypeMap.end())</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</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"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66"> 27</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">SVFLoopAndDomInfo::LoopBBs</a>& <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66">SVFLoopAndDomInfo::getLoopInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb)<span class="keyword"> const</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword"></span>{</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  assert(hasLoopInfo(bb) && <span class="stringliteral">"loopinfo does not exit (bb not in a loop)"</span>);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*, LoopBBs>::const_iterator</a> mapIter = bb2LoopMap.find(bb);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">return</span> mapIter->second;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a48654f61a84ac5f93b02fb618cd0d045"> 34</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a48654f61a84ac5f93b02fb618cd0d045">SVFLoopAndDomInfo::getExitBlocksOfLoop</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb, <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a33b96ce50eb1d3caab2b20c19a60b2cc">BBList</a>& exitbbs)<span class="keyword"> const</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword"></span>{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">if</span> (hasLoopInfo(bb))</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a> blocks = getLoopInfo(bb);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (!blocks.empty())</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>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* block : blocks)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ : block-><a class="code" href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">getSuccessors</a>())</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">if</span> ((std::find(blocks.begin(), blocks.end(), succ)==blocks.end()))</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  exitbbs.push_back(succ);</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"> 49</span>  }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a342f2825d6b7e3289d0f0f4b7ee8247c"> 53</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a342f2825d6b7e3289d0f0f4b7ee8247c">SVFLoopAndDomInfo::dominate</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbKey, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbValue)<span class="keyword"> const</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword"></span>{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">if</span> (bbKey == bbValue)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>  <span class="comment">// An unreachable node is dominated by anything.</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">if</span> (isUnreachable(bbValue))</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// And dominates nothing.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (isUnreachable(bbKey))</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet></a>& dtBBsMap = getDomTreeMap();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet>::const_iterator</a> mapIter = dtBBsMap.find(bbKey);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (mapIter != dtBBsMap.end())</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">BBSet</a> & dtBBs = mapIter->second;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">if</span> (dtBBs.find(bbValue) != dtBBs.end())</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>  }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#af66c5a824f9fc2813e2d97e17f9a2e96"> 84</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#af66c5a824f9fc2813e2d97e17f9a2e96">SVFLoopAndDomInfo::postDominate</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbKey, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbValue)<span class="keyword"> const</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword"></span>{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">if</span> (bbKey == bbValue)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// An unreachable node is dominated by anything.</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (isUnreachable(bbValue))</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>  <span class="keywordflow">return</span> <span class="keyword">true</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"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// And dominates nothing.</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (isUnreachable(bbKey))</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet></a>& dtBBsMap = getPostDomTreeMap();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet>::const_iterator</a> mapIter = dtBBsMap.find(bbKey);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> (mapIter != dtBBsMap.end())</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">BBSet</a> & dtBBs = mapIter->second;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span> (dtBBs.find(bbValue) != dtBBs.end())</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43"> 114</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVFLoopAndDomInfo::isLoopHeader</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb)<span class="keyword"> const</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword"></span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span> (hasLoopInfo(bb))</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a>& blocks = getLoopInfo(bb);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  assert(!blocks.empty() && <span class="stringliteral">"no available loop info?"</span>);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> blocks.front() == bb;</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>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a6aefcab4d391e4e9c5cbab151895a1e8"> 125</a></span> <a class="code" href="classSVF_1_1SVFFunction.html#a7e965c21a8afe7fca32d0f41b16361cf">SVFFunction::SVFFunction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& f, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>* ft, <span class="keywordtype">bool</span> declare, <span class="keywordtype">bool</span> intric, <span class="keywordtype">bool</span> adt, <span class="keywordtype">bool</span> varg, <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a>* ld):</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(f,ty,<a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFFunc),isDecl(declare), intricsic(intric), addrTaken(adt), isUncalled(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), isNotRet(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), varArg(varg), funcType(ft), loopAndDom(ld), realDefFun(nullptr)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686"> 130</a></span> <a class="code" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVFFunction::~SVFFunction</a>()</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb : <a class="code" href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">allBBs</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">delete</span> bb;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* arg : <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">delete</span> arg;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SVFFunction.html#aefde3a0671e34541a4ad5d7a6dfaa5d1">loopAndDom</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e"> 139</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVFFunction::arg_size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword"></span>{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> }</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_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee"> 144</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* <a class="code" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVFFunction::getArg</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)<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>  assert (idx < <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size() && <span class="stringliteral">"getArg() out of range!"</span>);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>[idx];</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58"> 150</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVFFunction::isVarArg</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword"></span>{</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a11aaa0ffaf7fa3d220c9af5d4537eaad">varArg</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#ae87740af3d1d7f9d1342e31b551dc4d7"> 155</a></span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ae017f9a00c523585718bde13665275b3">SVFBasicBlock::SVFBasicBlock</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f):</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(b, ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::<a class="code" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860ea732cb3760ef56163428add79824174f4">SVFBB</a>), fun(f)</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"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac"> 160</a></span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVFBasicBlock::~SVFBasicBlock</a>()</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst : <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">delete</span> inst;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174"> 169</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">if</span> (SuccBB == Succ)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  i++;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Didn't find succesor edge?"</span>);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a104c66cdd4d88ba90eefd32bc9eef389"> 182</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)<span class="keyword"> const</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword"></span>{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</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>  <span class="keywordflow">if</span> (SuccBB == Succ)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  i++;</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>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Didn't find succesor edge?"</span>);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38"> 195</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* <a class="code" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVFBasicBlock::getTerminator</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword"></span>{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.empty() || !<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back()->isTerminator())</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5"> 205</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> pos;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  ++pos;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Didn't find predecessor edge?"</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> pos;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> }</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a5fe2dae55581ff1cd6ef251a351d5c4f"> 217</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)<span class="keyword"> const</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword"></span>{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> pos;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  ++pos;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Didn't find predecessor edge?"</span>);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> pos;</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> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFInstruction.html#af12f1d63483901bd33a42f04bccddeb8"> 230</a></span> <a class="code" href="classSVF_1_1SVFInstruction.html#a7d81c86ea5e1f8e313457862e19c2a3c">SVFInstruction::SVFInstruction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>, <span class="keywordtype">bool</span> tm, <span class="keywordtype">bool</span> isRet, <a class="code" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860e">SVFValKind</a> k):</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(i, ty, k), bb(b), terminator(tm), ret(isRet)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> }</div><div class="ttc" id="classSVF_1_1SVFFunction_html_aa61307a21647def105677d36bfbaf32f"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">SVF::SVFFunction::allBBs</a></div><div class="ttdeci">std::vector< const SVFBasicBlock * > allBBs</div><div class="ttdoc">the definition of a function across multiple modules </div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00277">SVFValue.h:277</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1SVFLoopAndDomInfo_html_ad478ac88bc07cf4d6d0ad3517b2c4ab3"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">SVF::SVFLoopAndDomInfo::BBSet</a></div><div class="ttdeci">Set< const SVFBasicBlock * > BBSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00053">SVFValue.h:53</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00195">SVFValue.cpp:195</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a7c3a69644f5e1351aad5d0ce0048abfd"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">SVF::SVFBasicBlock::succBBs</a></div><div class="ttdeci">std::vector< const SVFBasicBlock * > succBBs</div><div class="ttdoc">all successor BasicBlocks of this BasicBlock </div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00480">SVFValue.h:480</a></div></div>
|
|
75
75
|
<div class="ttc" id="classSVF_1_1SVFLoopAndDomInfo_html_a342f2825d6b7e3289d0f0f4b7ee8247c"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a342f2825d6b7e3289d0f0f4b7ee8247c">SVF::SVFLoopAndDomInfo::dominate</a></div><div class="ttdeci">bool dominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00053">SVFValue.cpp:53</a></div></div>
|
|
76
|
-
<div class="ttc" id="classSVF_1_1SVFFunctionType_html"><div class="ttname"><a href="classSVF_1_1SVFFunctionType.html">SVF::SVFFunctionType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
76
|
+
<div class="ttc" id="classSVF_1_1SVFFunctionType_html"><div class="ttname"><a href="classSVF_1_1SVFFunctionType.html">SVF::SVFFunctionType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00345">SVFType.h:345</a></div></div>
|
|
77
77
|
<div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
78
78
|
<div class="ttc" id="cJSON_8cpp_html_a65e9886d74aaee76545e83dd09011727"><div class="ttname"><a href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a></div><div class="ttdeci">#define false</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00070">cJSON.cpp:70</a></div></div>
|
|
79
79
|
<div class="ttc" id="classSVF_1_1SVFLoopAndDomInfo_html_ae5e2b154313b4330bb015050aec72a1f"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">SVF::SVFLoopAndDomInfo::LoopBBs</a></div><div class="ttdeci">BBList LoopBBs</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00055">SVFValue.h:55</a></div></div>
|
|
@@ -86,7 +86,6 @@ $(function() {
|
|
|
86
86
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ab8a735b5d183f5190c4c45b313f1b174"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVF::SVFBasicBlock::getBBSuccessorPos</a></div><div class="ttdeci">u32_t getBBSuccessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00169">SVFValue.cpp:169</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1SVFFunction_html_ae578002917b4ccbf28f172dba30d1d58"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00150">SVFValue.cpp:150</a></div></div>
|
|
88
88
|
<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>
|
|
89
|
-
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_aaf00caa4803939dd655b45c349575a19"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#aaf00caa4803939dd655b45c349575a19">SVF::SVFBasicBlock::SVFBasicBlock</a></div><div class="ttdeci">SVFBasicBlock(void)=delete</div></div>
|
|
90
89
|
<div class="ttc" id="classSVF_1_1SVFInstruction_html_a7d81c86ea5e1f8e313457862e19c2a3c"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#a7d81c86ea5e1f8e313457862e19c2a3c">SVF::SVFInstruction::SVFInstruction</a></div><div class="ttdeci">SVFInstruction(void)=delete</div></div>
|
|
91
90
|
<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>
|
|
92
91
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a59a4b7d815f624e448afe3ac0e9d18f5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVF::SVFBasicBlock::getBBPredecessorPos</a></div><div class="ttdeci">u32_t getBBPredecessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00205">SVFValue.cpp:205</a></div></div>
|
|
@@ -97,8 +96,8 @@ $(function() {
|
|
|
97
96
|
<div class="ttc" id="classSVF_1_1SVFLoopAndDomInfo_html"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html">SVF::SVFLoopAndDomInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00050">SVFValue.h:50</a></div></div>
|
|
98
97
|
<div class="ttc" id="SVFValue_8h_html"><div class="ttname"><a href="SVFValue_8h.html">SVFValue.h</a></div></div>
|
|
99
98
|
<div class="ttc" id="classSVF_1_1SVFLoopAndDomInfo_html_af66c5a824f9fc2813e2d97e17f9a2e96"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#af66c5a824f9fc2813e2d97e17f9a2e96">SVF::SVFLoopAndDomInfo::postDominate</a></div><div class="ttdeci">bool postDominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00084">SVFValue.cpp:84</a></div></div>
|
|
99
|
+
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ae017f9a00c523585718bde13665275b3"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ae017f9a00c523585718bde13665275b3">SVF::SVFBasicBlock::SVFBasicBlock</a></div><div class="ttdeci">SVFBasicBlock()=delete</div></div>
|
|
100
100
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00037">AbstractValue.h:37</a></div></div>
|
|
101
|
-
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a3563eb676adc76ba19b7c8c58c851d7c"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a3563eb676adc76ba19b7c8c58c851d7c">SVF::SVFBasicBlock::~SVFBasicBlock</a></div><div class="ttdeci">virtual ~SVFBasicBlock()</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00160">SVFValue.cpp:160</a></div></div>
|
|
102
101
|
<div class="ttc" id="classSVF_1_1SVFFunction_html_a11aaa0ffaf7fa3d220c9af5d4537eaad"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a11aaa0ffaf7fa3d220c9af5d4537eaad">SVF::SVFFunction::varArg</a></div><div class="ttdeci">bool varArg</div><div class="ttdoc">return true if this function never returns </div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00273">SVFValue.h:273</a></div></div>
|
|
103
102
|
<div class="ttc" id="classSVF_1_1SVFValue_html_afb50ea5aeea7a0608a3c9335aea6860e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860e">SVF::SVFValue::SVFValKind</a></div><div class="ttdeci">SVFValKind</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00154">SVFValue.h:154</a></div></div>
|
|
104
103
|
<div class="ttc" id="classSVF_1_1SVFFunction_html_a7e965c21a8afe7fca32d0f41b16361cf"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a7e965c21a8afe7fca32d0f41b16361cf">SVF::SVFFunction::SVFFunction</a></div><div class="ttdeci">SVFFunction(void)=delete</div></div>
|
|
@@ -107,10 +106,11 @@ $(function() {
|
|
|
107
106
|
<div class="ttc" id="classSVF_1_1SVFArgument_html"><div class="ttname"><a href="classSVF_1_1SVFArgument.html">SVF::SVFArgument</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00819">SVFValue.h:819</a></div></div>
|
|
108
107
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00471">SVFValue.h:471</a></div></div>
|
|
109
108
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ac6fabc508f6b64127bb597f7b2110231"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">SVF::SVFBasicBlock::getPredecessors</a></div><div class="ttdeci">const std::vector< const SVFBasicBlock * > & getPredecessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00556">SVFValue.h:556</a></div></div>
|
|
110
|
-
<div class="ttc" id="classSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
109
|
+
<div class="ttc" id="classSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00233">SVFType.h:233</a></div></div>
|
|
111
110
|
<div class="ttc" id="classSVF_1_1SVFLoopAndDomInfo_html_a0fb893485fc3df088d921762514faf66"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66">SVF::SVFLoopAndDomInfo::getLoopInfo</a></div><div class="ttdeci">const LoopBBs & getLoopInfo(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00027">SVFValue.cpp:27</a></div></div>
|
|
112
111
|
<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>
|
|
113
112
|
<div class="ttc" id="classSVF_1_1StInfo_html_a055697f565cb9d73b41110090fe50159"><div class="ttname"><a href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">SVF::StInfo::getOriginalElemType</a></div><div class="ttdeci">const SVFType * getOriginalElemType(u32_t fldIdx) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00019">SVFValue.cpp:19</a></div></div>
|
|
113
|
+
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_abd5adb119af2024fe4702ba25394d5ac"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVF::SVFBasicBlock::~SVFBasicBlock</a></div><div class="ttdeci">~SVFBasicBlock() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00160">SVFValue.cpp:160</a></div></div>
|
|
114
114
|
<div class="ttc" id="classSVF_1_1SVFFunction_html_aefde3a0671e34541a4ad5d7a6dfaa5d1"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aefde3a0671e34541a4ad5d7a6dfaa5d1">SVF::SVFFunction::loopAndDom</a></div><div class="ttdeci">SVFLoopAndDomInfo * loopAndDom</div><div class="ttdoc">FunctionType, which is different from the type (PointerType) of this SVFFunction. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00275">SVFValue.h:275</a></div></div>
|
|
115
115
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a66f51cd41e93ad055c4a0c2874e73fae"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">SVF::SVFBasicBlock::getSuccessors</a></div><div class="ttdeci">const std::vector< const SVFBasicBlock * > & getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00551">SVFValue.h:551</a></div></div>
|
|
116
116
|
<div class="ttc" id="classSVF_1_1SVFFunction_html_ab8c7a9c79b0668aae604bbe54e34e46e"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVF::SVFFunction::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00139">SVFValue.cpp:139</a></div></div>
|