svf-tools 1.0.894 → 1.0.896
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/AbstractExecution_8cpp_source.html +1 -1
- package/SVF-doxygen/html/AbstractExecution_8h_source.html +1 -1
- package/SVF-doxygen/html/AbstractPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/AbstractValue_8h_source.html +1 -1
- package/SVF-doxygen/html/AccessPath_8cpp_source.html +1 -1
- package/SVF-doxygen/html/AccessPath_8h_source.html +1 -1
- package/SVF-doxygen/html/AddressValue_8h_source.html +1 -1
- package/SVF-doxygen/html/AndersenPWC_8h_source.html +1 -1
- package/SVF-doxygen/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/AndersenStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Andersen_8h_source.html +1 -1
- package/SVF-doxygen/html/Annotator_8h_source.html +4 -4
- package/SVF-doxygen/html/BasicTypes_8h.html +1 -0
- package/SVF-doxygen/html/BasicTypes_8h_source.html +345 -344
- package/SVF-doxygen/html/BitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/BitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/BoundedZ3Expr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/BoundedZ3Expr_8h_source.html +1 -1
- package/SVF-doxygen/html/BreakConstantExpr_8cpp.html +2 -2
- package/SVF-doxygen/html/BreakConstantExpr_8cpp_source.html +6 -6
- package/SVF-doxygen/html/BreakConstantExpr_8h_source.html +5 -5
- package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CDGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/CDG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CDG_8h_source.html +1 -1
- package/SVF-doxygen/html/CFGNormalizer_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFGNormalizer_8h_source.html +1 -1
- package/SVF-doxygen/html/CFGrammar_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFGrammar_8h_source.html +2 -2
- package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLAlias_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLBase_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLBase_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLGramGraphChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLGraphBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLSolver_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLStat_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLVF_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLVF_8h_source.html +1 -1
- package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +304 -303
- package/SVF-doxygen/html/CHGBuilder_8h_source.html +10 -10
- package/SVF-doxygen/html/CHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/CSC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CSC_8h_source.html +1 -1
- package/SVF-doxygen/html/CallGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CallGraphBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/Casting_8h_source.html +1 -1
- package/SVF-doxygen/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/ConsGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/ConsGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/CoreBitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CoreBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/CppUtil_8cpp_source.html +17 -17
- package/SVF-doxygen/html/CppUtil_8h_source.html +6 -6
- package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/DCHG_8cpp_source.html +22 -22
- package/SVF-doxygen/html/DCHG_8h_source.html +7 -7
- package/SVF-doxygen/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/DDAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/DOTGraphTraits_8h_source.html +1 -1
- package/SVF-doxygen/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/ExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/FSMPTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/FileChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/GEPTypeBridgeIterator_8h_source.html +3 -3
- package/SVF-doxygen/html/GeneralType_8h_source.html +1 -1
- package/SVF-doxygen/html/GenericGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/GrammarBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/GrammarBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/GraphPrinter_8h_source.html +1 -1
- package/SVF-doxygen/html/GraphReachSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/GraphTraits_8h_source.html +1 -1
- package/SVF-doxygen/html/GraphWriter_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/ICFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/ICFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGSimplification_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFGSimplification_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGWTO_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/IRGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/IntervalExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/IntervalExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/IntervalValue_8h_source.html +1 -1
- package/SVF-doxygen/html/LLVMLoopAnalysis_8cpp_source.html +7 -7
- package/SVF-doxygen/html/LLVMLoopAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +37 -37
- package/SVF-doxygen/html/LLVMModule_8h_source.html +15 -15
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +32 -32
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +20 -20
- package/SVF-doxygen/html/LeakChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/LockAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LockAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +12 -12
- package/SVF-doxygen/html/LockResultValidator_8h_source.html +2 -2
- package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MHP_8h_source.html +1 -1
- package/SVF-doxygen/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +7 -7
- package/SVF-doxygen/html/MTAAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +12 -12
- package/SVF-doxygen/html/MTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTA_8h_source.html +1 -1
- package/SVF-doxygen/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MemRegion_8h_source.html +1 -1
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MemSSA_8h_source.html +1 -1
- package/SVF-doxygen/html/MutablePointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/NodeIDAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/NumericLiteral_8h_source.html +1 -1
- package/SVF-doxygen/html/ObjTypeInference_8cpp.html +1 -1
- package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +525 -501
- package/SVF-doxygen/html/ObjTypeInference_8h_source.html +17 -17
- package/SVF-doxygen/html/Options_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Options_8h_source.html +1 -1
- package/SVF-doxygen/html/PAGBuilderFromFile_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PAGBuilderFromFile_8h_source.html +1 -1
- package/SVF-doxygen/html/PCG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/PTACallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/PTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/PersistentPointsToCache_8h_source.html +1 -1
- package/SVF-doxygen/html/PersistentPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysisImpl_8h_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointsTo_8h_source.html +1 -1
- package/SVF-doxygen/html/ProgSlice_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ProgSlice_8h_source.html +1 -1
- package/SVF-doxygen/html/RelExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/RelExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/RelationSolver_8cpp_source.html +1 -1
- package/SVF-doxygen/html/RelationSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/SCC_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFBugReport_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFBugReport_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFFileSystem_8cpp.html +1 -1
- package/SVF-doxygen/html/SVFFileSystem_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFFileSystem_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFGOPT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFGStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +41 -41
- package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +47 -47
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +8 -8
- package/SVF-doxygen/html/SVFIR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIR_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFLoop_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFModule_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFStat_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFStatements_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFType_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFVariables_8h_source.html +1 -1
- package/SVF-doxygen/html/SaberCheckerAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SaberSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/SingleAbsValue_8h_source.html +1 -1
- package/SVF-doxygen/html/SparseBitVector_8h_source.html +2 -2
- package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/SrcSnkSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/SymState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SymState_8h_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +34 -34
- package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +7 -7
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +1 -1
- package/SVF-doxygen/html/TCT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/TCT_8h_source.html +1 -1
- package/SVF-doxygen/html/ThreadAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ThreadAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ThreadCallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/TypeAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/VFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VFG_8h_source.html +1 -1
- package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VersionedFlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/WPAFSSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/WPASolver_8h_source.html +1 -1
- package/SVF-doxygen/html/WPAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/WTO_8h_source.html +1 -1
- package/SVF-doxygen/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/Z3Expr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Z3Expr_8h_source.html +1 -1
- package/SVF-doxygen/html/ae_8cpp_source.html +1 -1
- package/SVF-doxygen/html/cfl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Annotator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BreakConstantGEPs.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +299 -298
- package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +20 -20
- package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1LLVMLoopAnalysis.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +36 -36
- package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +11 -11
- package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +10 -10
- package/SVF-doxygen/html/classSVF_1_1MergeFunctionRets.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +509 -485
- package/SVF-doxygen/html/classSVF_1_1RaceResultValidator.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +22 -22
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +35 -35
- package/SVF-doxygen/html/classllvm_1_1generic__bridge__gep__type__iterator.html +2 -2
- package/SVF-doxygen/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/iterator_8h_source.html +1 -1
- package/SVF-doxygen/html/iterator__range_8h_source.html +1 -1
- package/SVF-doxygen/html/llvm2svf_8cpp_source.html +1 -1
- package/SVF-doxygen/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/namespaceSVF.html +115 -115
- package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +33 -33
- package/SVF-doxygen/html/namespaceSVF_1_1cppUtil.html +12 -12
- package/SVF-doxygen/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1PopulationCounter.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
- package/SVF-doxygen/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +5 -5
- package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +8 -8
- package/SVF-doxygen/html/wpa_8cpp_source.html +1 -1
- package/package.json +1 -1
- package/svf-llvm/include/SVF-LLVM/BasicTypes.h +1 -0
- package/svf-llvm/lib/CHGBuilder.cpp +1 -0
- package/svf-llvm/lib/ObjTypeInference.cpp +51 -27
|
@@ -524,292 +524,293 @@ $(function() {
|
|
|
524
524
|
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">if</span> (dname.className.size() > 0 &&</div>
|
|
525
525
|
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  vtblClassName.compare(dname.className) != 0)</div>
|
|
526
526
|
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  {</div>
|
|
527
|
-
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  chg->
|
|
528
|
-
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> 
|
|
529
|
-
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> 
|
|
530
|
-
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> 
|
|
531
|
-
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> 
|
|
532
|
-
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> 
|
|
533
|
-
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> 
|
|
534
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> 
|
|
535
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> 
|
|
536
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="
|
|
537
|
-
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> 
|
|
538
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> 
|
|
539
|
-
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> 
|
|
540
|
-
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> 
|
|
541
|
-
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> 
|
|
542
|
-
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> 
|
|
543
|
-
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> 
|
|
544
|
-
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> 
|
|
545
|
-
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> 
|
|
546
|
-
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> 
|
|
547
|
-
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> 
|
|
548
|
-
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> 
|
|
549
|
-
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> 
|
|
550
|
-
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> 
|
|
551
|
-
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> 
|
|
552
|
-
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> 
|
|
553
|
-
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> 
|
|
554
|
-
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> 
|
|
555
|
-
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> 
|
|
556
|
-
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> 
|
|
557
|
-
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> 
|
|
558
|
-
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> 
|
|
559
|
-
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> 
|
|
560
|
-
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> 
|
|
561
|
-
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> 
|
|
562
|
-
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> 
|
|
563
|
-
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> 
|
|
564
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> 
|
|
565
|
-
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> 
|
|
566
|
-
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> 
|
|
567
|
-
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> 
|
|
568
|
-
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> 
|
|
569
|
-
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> 
|
|
570
|
-
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> 
|
|
571
|
-
<div class="line"><a name="
|
|
572
|
-
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> 
|
|
573
|
-
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> 
|
|
574
|
-
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> 
|
|
575
|
-
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> 
|
|
576
|
-
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  assert(
|
|
577
|
-
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> 
|
|
578
|
-
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> 
|
|
579
|
-
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> 
|
|
580
|
-
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> 
|
|
581
|
-
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> 
|
|
582
|
-
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> 
|
|
583
|
-
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> 
|
|
584
|
-
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> 
|
|
585
|
-
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> 
|
|
586
|
-
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> 
|
|
587
|
-
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> 
|
|
588
|
-
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> 
|
|
589
|
-
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> 
|
|
590
|
-
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> 
|
|
591
|
-
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> 
|
|
592
|
-
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> 
|
|
593
|
-
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> 
|
|
594
|
-
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> 
|
|
595
|
-
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> 
|
|
596
|
-
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> 
|
|
597
|
-
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> 
|
|
598
|
-
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> 
|
|
599
|
-
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> 
|
|
600
|
-
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> 
|
|
601
|
-
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> 
|
|
602
|
-
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> 
|
|
603
|
-
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> 
|
|
604
|
-
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> 
|
|
605
|
-
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> 
|
|
606
|
-
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> 
|
|
607
|
-
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> 
|
|
608
|
-
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> }</div>
|
|
609
|
-
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> 
|
|
527
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">if</span>(!chg->getNode(dname.className)) createNode(dname.className);</div>
|
|
528
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  chg->addEdge(vtblClassName, dname.className, <a class="code" href="classSVF_1_1CHEdge.html#a26280c3b724551036f7e3ba2b5922676a78df5157ac61c49a724af5aa03d36d0c">CHEdge::INHERITANCE</a>);</div>
|
|
529
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div>
|
|
530
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div>
|
|
531
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">else</span></div>
|
|
532
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  {</div>
|
|
533
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">GlobalAlias</a> *alias =</div>
|
|
534
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  SVFUtil::dyn_cast<GlobalAlias>(operand))</div>
|
|
535
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  {</div>
|
|
536
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a> *aliasValue = alias->getAliasee();</div>
|
|
537
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* aliasFunc =</div>
|
|
538
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  SVFUtil::dyn_cast<Function>(aliasValue))</div>
|
|
539
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  {</div>
|
|
540
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  addFuncToFuncVector(virtualFunctions, aliasFunc);</div>
|
|
541
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  }</div>
|
|
542
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *aliasconst =</div>
|
|
543
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  SVFUtil::dyn_cast<ConstantExpr>(aliasValue))</div>
|
|
544
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  {</div>
|
|
545
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  (void)aliasconst; <span class="comment">// Suppress warning of unused variable under release build</span></div>
|
|
546
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  assert(aliasconst->getOpcode() == Instruction::BitCast &&</div>
|
|
547
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="stringliteral">"aliased constantexpr in vtable not a bitcast"</span>);</div>
|
|
548
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* aliasbitcastfunc =</div>
|
|
549
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  SVFUtil::dyn_cast<Function>(aliasconst->getOperand(0));</div>
|
|
550
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  assert(aliasbitcastfunc &&</div>
|
|
551
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="stringliteral">"aliased bitcast in vtable not a function"</span>);</div>
|
|
552
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  addFuncToFuncVector(virtualFunctions, aliasbitcastfunc);</div>
|
|
553
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div>
|
|
554
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">else</span></div>
|
|
555
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  {</div>
|
|
556
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"alias not function or bitcast"</span>);</div>
|
|
557
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  }</div>
|
|
558
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  </div>
|
|
559
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  pure_abstract &= <span class="keyword">false</span>;</div>
|
|
560
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  }</div>
|
|
561
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (operand->getName().str().compare(0, <a class="code" href="CHGBuilder_8cpp.html#a4ecb39b2fb5510fb20341373b7ad5450">ztiLabel</a>.size(),</div>
|
|
562
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="CHGBuilder_8cpp.html#a4ecb39b2fb5510fb20341373b7ad5450">ztiLabel</a>) == 0)</div>
|
|
563
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  {</div>
|
|
564
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  }</div>
|
|
565
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">else</span></div>
|
|
566
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  {</div>
|
|
567
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  assert(<span class="stringliteral">"what else can be in bitcast of a vtable?"</span>);</div>
|
|
568
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  }</div>
|
|
569
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  }</div>
|
|
570
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  };</div>
|
|
571
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  </div>
|
|
572
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *ce =</div>
|
|
573
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  SVFUtil::dyn_cast<ConstantExpr>(operand))</div>
|
|
574
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  {</div>
|
|
575
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode = ce->getOpcode();</div>
|
|
576
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  assert(opcode == Instruction::IntToPtr);</div>
|
|
577
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  assert(ce->getNumOperands() == 1 &&</div>
|
|
578
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="stringliteral">"inttptr operand num not 1"</span>);</div>
|
|
579
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">if</span> (opcode == Instruction::IntToPtr)</div>
|
|
580
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  {</div>
|
|
581
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  node-><a class="code" href="classSVF_1_1CHNode.html#a5d751a3a0d88c0de374bfeb526051440">setMultiInheritance</a>();</div>
|
|
582
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  ++i;</div>
|
|
583
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">break</span>;</div>
|
|
584
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  }</div>
|
|
585
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  }</div>
|
|
586
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">else</span></div>
|
|
587
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  {</div>
|
|
588
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  foo(operand);</div>
|
|
589
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  }</div>
|
|
590
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div>
|
|
591
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">if</span> (is_virtual && virtualFunctions.size() > 0)</div>
|
|
592
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  {</div>
|
|
593
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < null_ptr_num; ++i)</div>
|
|
594
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  {</div>
|
|
595
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = virtualFunctions[i];</div>
|
|
596
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  virtualFunctions.insert(virtualFunctions.begin(), fun);</div>
|
|
597
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  }</div>
|
|
598
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  }</div>
|
|
599
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">if</span> (virtualFunctions.size() > 0)</div>
|
|
600
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  node-><a class="code" href="classSVF_1_1CHNode.html#a8c51571df92b5e152cc42e9aaf712dc9">addVirtualFunctionVector</a>(virtualFunctions);</div>
|
|
601
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  }</div>
|
|
602
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">if</span> (pure_abstract == <span class="keyword">true</span>)</div>
|
|
603
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  {</div>
|
|
604
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  node-><a class="code" href="classSVF_1_1CHNode.html#abac89987927dadd53dd646eae540a024">setPureAbstract</a>();</div>
|
|
605
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div>
|
|
606
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  }</div>
|
|
607
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  }</div>
|
|
608
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div>
|
|
609
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> }</div>
|
|
610
610
|
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  </div>
|
|
611
|
-
<div class="line"><a name="l00555"></a><span class="lineno"
|
|
612
|
-
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> 
|
|
613
|
-
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> 
|
|
614
|
-
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> 
|
|
615
|
-
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="comment"> *
|
|
616
|
-
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="comment"> *
|
|
617
|
-
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="comment"> *
|
|
618
|
-
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="comment">
|
|
619
|
-
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> 
|
|
620
|
-
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <
|
|
621
|
-
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> 
|
|
622
|
-
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> 
|
|
623
|
-
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> 
|
|
624
|
-
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <
|
|
625
|
-
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> 
|
|
626
|
-
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  </div>
|
|
627
|
-
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> 
|
|
628
|
-
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  </div>
|
|
629
|
-
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> 
|
|
630
|
-
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> 
|
|
631
|
-
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="comment">
|
|
632
|
-
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> 
|
|
633
|
-
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> 
|
|
634
|
-
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  nodeStack
|
|
635
|
-
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> 
|
|
636
|
-
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> 
|
|
637
|
-
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> 
|
|
638
|
-
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  nodeStack.
|
|
639
|
-
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> 
|
|
640
|
-
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> 
|
|
641
|
-
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> 
|
|
642
|
-
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> 
|
|
643
|
-
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> 
|
|
644
|
-
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> 
|
|
645
|
-
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> 
|
|
646
|
-
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> 
|
|
647
|
-
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> 
|
|
648
|
-
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> 
|
|
649
|
-
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> 
|
|
650
|
-
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> 
|
|
651
|
-
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> 
|
|
652
|
-
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> 
|
|
653
|
-
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> 
|
|
654
|
-
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> 
|
|
655
|
-
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> 
|
|
656
|
-
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> 
|
|
657
|
-
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> 
|
|
658
|
-
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> 
|
|
659
|
-
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> 
|
|
660
|
-
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> 
|
|
661
|
-
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="comment">
|
|
662
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> 
|
|
663
|
-
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> 
|
|
664
|
-
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> 
|
|
665
|
-
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> 
|
|
666
|
-
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> 
|
|
667
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="
|
|
668
|
-
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> 
|
|
669
|
-
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> 
|
|
670
|
-
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> 
|
|
671
|
-
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> 
|
|
672
|
-
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> 
|
|
673
|
-
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> 
|
|
674
|
-
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> 
|
|
675
|
-
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> 
|
|
676
|
-
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> 
|
|
677
|
-
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> 
|
|
678
|
-
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> 
|
|
679
|
-
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> 
|
|
680
|
-
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="comment"> *
|
|
681
|
-
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="comment"> *
|
|
682
|
-
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="comment"> *
|
|
683
|
-
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="comment"> *
|
|
684
|
-
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="comment"> * <f,
|
|
685
|
-
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="comment"> * <
|
|
686
|
-
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="comment"> * <g,
|
|
687
|
-
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="comment"> * <g,
|
|
688
|
-
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="comment"> * <
|
|
689
|
-
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="comment"> * <~
|
|
690
|
-
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="comment"> * <~
|
|
691
|
-
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="comment"> *
|
|
692
|
-
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="comment">
|
|
693
|
-
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> 
|
|
694
|
-
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> 
|
|
695
|
-
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> 
|
|
696
|
-
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> 
|
|
697
|
-
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> 
|
|
698
|
-
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keyword">
|
|
699
|
-
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> 
|
|
700
|
-
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> 
|
|
701
|
-
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> 
|
|
702
|
-
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> 
|
|
703
|
-
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> 
|
|
704
|
-
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> 
|
|
705
|
-
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> 
|
|
706
|
-
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> 
|
|
707
|
-
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> }</div>
|
|
708
|
-
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> 
|
|
611
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  </div>
|
|
612
|
+
<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classSVF_1_1CHGBuilder.html#aa677ac2c640ee7fc0dab1d4fe508ead8"> 556</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CHGBuilder.html#aa677ac2c640ee7fc0dab1d4fe508ead8">CHGBuilder::buildVirtualFunctionToIDMap</a>()</div>
|
|
613
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> {</div>
|
|
614
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="comment">/*</span></div>
|
|
615
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="comment"> * 1. Divide classes into groups</span></div>
|
|
616
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="comment"> * 2. Get all virtual functions in a group</span></div>
|
|
617
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="comment"> * 3. Assign consecutive IDs to virtual functions that have</span></div>
|
|
618
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="comment"> * the same name (after demangling) in a group</span></div>
|
|
619
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="comment"> */</span></div>
|
|
620
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <a class="code" href="classSVF_1_1CHGraph.html#ad0f60c720b277c60ed8a8966189bb42b">CHGraph::CHNodeSetTy</a> visitedNodes;</div>
|
|
621
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">CHGraph::const_iterator</a> nit = chg->begin(),</div>
|
|
622
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  neit = chg->end(); nit != neit; ++nit)</div>
|
|
623
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  {</div>
|
|
624
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *node = nit->second;</div>
|
|
625
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">if</span> (visitedNodes.find(node) != visitedNodes.end())</div>
|
|
626
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">continue</span>;</div>
|
|
627
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  </div>
|
|
628
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordtype">string</span> className = node-><a class="code" href="classSVF_1_1CHNode.html#af6e71c1a932464b1b615fc177f5af089">getName</a>();</div>
|
|
629
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  </div>
|
|
630
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="comment">/*</span></div>
|
|
631
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="comment"> * get all the classes in a specific group</span></div>
|
|
632
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="comment"> */</span></div>
|
|
633
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <a class="code" href="classSVF_1_1CHGraph.html#ad0f60c720b277c60ed8a8966189bb42b">CHGraph::CHNodeSetTy</a> group;</div>
|
|
634
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  stack<const CHNode*> nodeStack;</div>
|
|
635
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  nodeStack.push(node);</div>
|
|
636
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">while</span> (!nodeStack.empty())</div>
|
|
637
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  {</div>
|
|
638
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *curnode = nodeStack.top();</div>
|
|
639
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  nodeStack.pop();</div>
|
|
640
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  group.insert(curnode);</div>
|
|
641
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">if</span> (visitedNodes.find(curnode) != visitedNodes.end())</div>
|
|
642
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">continue</span>;</div>
|
|
643
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">for</span> (CHEdge::CHEdgeSetTy::const_iterator it = curnode-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>().begin(),</div>
|
|
644
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  eit = curnode-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>().end(); it != eit; ++it)</div>
|
|
645
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  {</div>
|
|
646
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *tmpnode = (*it)->getDstNode();</div>
|
|
647
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  nodeStack.push(tmpnode);</div>
|
|
648
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  group.insert(tmpnode);</div>
|
|
649
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div>
|
|
650
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">for</span> (CHEdge::CHEdgeSetTy::const_iterator it = curnode-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().begin(),</div>
|
|
651
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  eit = curnode-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().end(); it != eit; ++it)</div>
|
|
652
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  {</div>
|
|
653
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *tmpnode = (*it)->getSrcNode();</div>
|
|
654
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  nodeStack.push(tmpnode);</div>
|
|
655
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  group.insert(tmpnode);</div>
|
|
656
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  }</div>
|
|
657
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  visitedNodes.insert(curnode);</div>
|
|
658
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  }</div>
|
|
659
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  </div>
|
|
660
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="comment">/*</span></div>
|
|
661
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="comment"> * get all virtual functions in a specific group</span></div>
|
|
662
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="comment"> */</span></div>
|
|
663
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  set<const SVFFunction*> virtualFunctions;</div>
|
|
664
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">for</span> (CHGraph::CHNodeSetTy::iterator it = group.begin(),</div>
|
|
665
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  eit = group.end(); it != eit; ++it)</div>
|
|
666
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  {</div>
|
|
667
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keyword">const</span> vector<CHNode::FuncVector> &vecs = (*it)-><a class="code" href="classSVF_1_1CHNode.html#a5df1cf4d51bf3406d188c96bc9aae0af">getVirtualFunctionVectors</a>();</div>
|
|
668
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">for</span> (vector<CHNode::FuncVector>::const_iterator vit = vecs.begin(),</div>
|
|
669
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  veit = vecs.end(); vit != veit; ++vit)</div>
|
|
670
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  {</div>
|
|
671
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordflow">for</span> (vector<const SVFFunction*>::const_iterator fit = (*vit).begin(),</div>
|
|
672
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  feit = (*vit).end(); fit != feit; ++fit)</div>
|
|
673
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  {</div>
|
|
674
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  virtualFunctions.insert(*fit);</div>
|
|
675
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  }</div>
|
|
676
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  }</div>
|
|
677
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  }</div>
|
|
678
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  </div>
|
|
679
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="comment">/*</span></div>
|
|
680
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="comment"> * build a set of pairs of demangled function name and function in a</span></div>
|
|
681
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="comment"> * specific group, items in the set will be sort by the first item of the</span></div>
|
|
682
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="comment"> * pair, so all the virtual functions in a group will be sorted by the</span></div>
|
|
683
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="comment"> * demangled function name</span></div>
|
|
684
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="comment"> * <f, A::f></span></div>
|
|
685
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="comment"> * <f, B::f></span></div>
|
|
686
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="comment"> * <g, A::g></span></div>
|
|
687
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="comment"> * <g, B::g></span></div>
|
|
688
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="comment"> * <g, C::g></span></div>
|
|
689
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="comment"> * <~A, A::~A></span></div>
|
|
690
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="comment"> * <~B, B::~B></span></div>
|
|
691
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="comment"> * <~C, C::~C></span></div>
|
|
692
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="comment"> * ...</span></div>
|
|
693
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="comment"> */</span></div>
|
|
694
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  set<pair<string, const SVFFunction*> > fNameSet;</div>
|
|
695
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">for</span> (set<const SVFFunction*>::iterator fit = virtualFunctions.begin(),</div>
|
|
696
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  feit = virtualFunctions.end(); fit != feit; ++fit)</div>
|
|
697
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  {</div>
|
|
698
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f = *fit;</div>
|
|
699
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keyword">struct </span>DemangledName dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">demangle</a>(f-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>());</div>
|
|
700
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  fNameSet.insert(pair<string, const SVFFunction*>(dname.funcName, f));</div>
|
|
701
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div>
|
|
702
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">for</span> (<a class="code" href="WPA_2CMakeLists_8txt.html#a5b660868031b6dee85d01fea51ef09a5">set</a><pair<string, const SVFFunction*>>::iterator it = fNameSet.begin(),</div>
|
|
703
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  eit = fNameSet.end(); it != eit; ++it)</div>
|
|
704
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  {</div>
|
|
705
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  chg->virtualFunctionToIDMap[it->second] = chg->vfID++;</div>
|
|
706
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  }</div>
|
|
707
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  }</div>
|
|
708
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> }</div>
|
|
709
709
|
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  </div>
|
|
710
|
-
<div class="line"><a name="l00654"></a><span class="lineno"
|
|
711
|
-
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> 
|
|
712
|
-
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> 
|
|
713
|
-
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> 
|
|
714
|
-
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> 
|
|
715
|
-
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> 
|
|
716
|
-
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> 
|
|
717
|
-
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> 
|
|
718
|
-
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> 
|
|
719
|
-
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> 
|
|
720
|
-
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> 
|
|
721
|
-
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> 
|
|
722
|
-
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> 
|
|
723
|
-
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  </div>
|
|
724
|
-
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> 
|
|
725
|
-
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <
|
|
726
|
-
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="
|
|
727
|
-
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> 
|
|
728
|
-
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> 
|
|
729
|
-
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keyword">const</span> <a class="code" href="
|
|
730
|
-
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="
|
|
731
|
-
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> 
|
|
732
|
-
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> 
|
|
733
|
-
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> 
|
|
734
|
-
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> 
|
|
735
|
-
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> 
|
|
736
|
-
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> 
|
|
737
|
-
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> 
|
|
738
|
-
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> 
|
|
739
|
-
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> 
|
|
740
|
-
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> 
|
|
741
|
-
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> 
|
|
742
|
-
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> 
|
|
743
|
-
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> 
|
|
744
|
-
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> 
|
|
745
|
-
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> 
|
|
746
|
-
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> 
|
|
747
|
-
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> 
|
|
748
|
-
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> }</div>
|
|
749
|
-
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> 
|
|
710
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  </div>
|
|
711
|
+
<div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="classSVF_1_1CHGBuilder.html#abab6d95945a43fbe4c73ac12550f5d8c"> 655</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CHGBuilder.html#abab6d95945a43fbe4c73ac12550f5d8c">CHGBuilder::buildCSToCHAVtblsAndVfnsMap</a>()</div>
|
|
712
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> {</div>
|
|
713
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  </div>
|
|
714
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &M : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getLLVMModules())</div>
|
|
715
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  {</div>
|
|
716
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">for</span> (Module::const_iterator <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> = M.begin(), E = M.end(); <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> != E; ++<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
717
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  {</div>
|
|
718
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a032e8478a7b6a8bb0b7755c98a7bce91">const_inst_iterator</a> II = inst_begin(*<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>), E = inst_end(*<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>); II != E; ++II)</div>
|
|
719
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  {</div>
|
|
720
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* callInst = SVFUtil::dyn_cast<CallBase>(&*II))</div>
|
|
721
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  {</div>
|
|
722
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1cppUtil.html#aab1dce633f9a03796c208b6fba2bd2b4">cppUtil::isVirtualCallSite</a>(callInst) == <span class="keyword">false</span>)</div>
|
|
723
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">continue</span>;</div>
|
|
724
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  </div>
|
|
725
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <a class="code" href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">VTableSet</a> vtbls;</div>
|
|
726
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CHGBuilder.html#adbff217477a779de9024d9a5777413a7">CHNodeSetTy</a>& chClasses = getCSClasses(callInst);</div>
|
|
727
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <span class="keywordflow">for</span> (CHNodeSetTy::const_iterator it = chClasses.begin(), eit = chClasses.end(); it != eit; ++it)</div>
|
|
728
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  {</div>
|
|
729
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *<a class="code" href="cJSON_8cpp.html#ad00efb41ca386db28bacc7aefe79535c">child</a> = *it;</div>
|
|
730
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a> *vtbl = <a class="code" href="cJSON_8cpp.html#ad00efb41ca386db28bacc7aefe79535c">child</a>->getVTable();</div>
|
|
731
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordflow">if</span> (vtbl != <span class="keyword">nullptr</span>)</div>
|
|
732
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  {</div>
|
|
733
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  vtbls.insert(vtbl);</div>
|
|
734
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div>
|
|
735
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  }</div>
|
|
736
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">if</span> (vtbls.size() > 0)</div>
|
|
737
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  {</div>
|
|
738
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getSVFInstruction(callInst));</div>
|
|
739
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  chg->csToCHAVtblsMap[cs] = vtbls;</div>
|
|
740
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> virtualFunctions;</div>
|
|
741
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  chg->getVFnsFromVtbls(cs, vtbls, virtualFunctions);</div>
|
|
742
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keywordflow">if</span> (virtualFunctions.size() > 0)</div>
|
|
743
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  chg->csToCHAVFnsMap[cs] = virtualFunctions;</div>
|
|
744
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  }</div>
|
|
745
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  }</div>
|
|
746
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  }</div>
|
|
747
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  }</div>
|
|
748
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  }</div>
|
|
749
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> }</div>
|
|
750
750
|
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  </div>
|
|
751
|
-
<div class="line"><a name="l00695"></a><span class="lineno"
|
|
752
|
-
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> 
|
|
753
|
-
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> 
|
|
754
|
-
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <
|
|
755
|
-
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  </div>
|
|
756
|
-
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> 
|
|
757
|
-
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> 
|
|
758
|
-
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> 
|
|
759
|
-
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> 
|
|
760
|
-
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> 
|
|
761
|
-
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> 
|
|
762
|
-
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> 
|
|
763
|
-
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> 
|
|
764
|
-
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  </div>
|
|
765
|
-
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> 
|
|
766
|
-
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> 
|
|
767
|
-
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> 
|
|
768
|
-
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="
|
|
769
|
-
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> 
|
|
770
|
-
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> 
|
|
771
|
-
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> 
|
|
772
|
-
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> 
|
|
773
|
-
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> 
|
|
774
|
-
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> 
|
|
775
|
-
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> 
|
|
776
|
-
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> 
|
|
777
|
-
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> 
|
|
778
|
-
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> 
|
|
779
|
-
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> 
|
|
780
|
-
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> 
|
|
781
|
-
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> 
|
|
782
|
-
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> 
|
|
783
|
-
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> 
|
|
784
|
-
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> 
|
|
785
|
-
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> 
|
|
786
|
-
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> 
|
|
787
|
-
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> }</div>
|
|
788
|
-
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> 
|
|
789
|
-
<div class="line"><a name="l00733"></a><span class="lineno"
|
|
790
|
-
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> 
|
|
791
|
-
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> 
|
|
792
|
-
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> 
|
|
793
|
-
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> 
|
|
794
|
-
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> 
|
|
795
|
-
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> 
|
|
796
|
-
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> 
|
|
797
|
-
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> 
|
|
798
|
-
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <
|
|
799
|
-
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> 
|
|
800
|
-
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> 
|
|
801
|
-
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> 
|
|
802
|
-
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> 
|
|
803
|
-
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> 
|
|
804
|
-
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> 
|
|
805
|
-
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> 
|
|
806
|
-
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> 
|
|
807
|
-
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> 
|
|
808
|
-
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <
|
|
809
|
-
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> 
|
|
810
|
-
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> 
|
|
811
|
-
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> 
|
|
812
|
-
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> }</div>
|
|
751
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  </div>
|
|
752
|
+
<div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="classSVF_1_1CHGBuilder.html#adc1b1f45e7000fa57e3a70ef9e4af853"> 696</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CHGraph.html#ad0f60c720b277c60ed8a8966189bb42b">CHGraph::CHNodeSetTy</a>& <a class="code" href="classSVF_1_1CHGBuilder.html#adc1b1f45e7000fa57e3a70ef9e4af853">CHGBuilder::getCSClasses</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs)</div>
|
|
753
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> {</div>
|
|
754
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  assert(<a class="code" href="namespaceSVF_1_1cppUtil.html#aab1dce633f9a03796c208b6fba2bd2b4">cppUtil::isVirtualCallSite</a>(cs) && <span class="stringliteral">"not virtual callsite!"</span>);</div>
|
|
755
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfcall = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(cs);</div>
|
|
756
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  </div>
|
|
757
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  CHGraph::CallSiteToCHNodesMap::const_iterator it = chg->csToClassesMap.find(svfcall);</div>
|
|
758
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">if</span> (it != chg->csToClassesMap.end())</div>
|
|
759
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  {</div>
|
|
760
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
761
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  }</div>
|
|
762
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keywordflow">else</span></div>
|
|
763
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  {</div>
|
|
764
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<string></a> thisPtrClassNames = <a class="code" href="namespaceSVF_1_1cppUtil.html#a8de9a0f0c400240b6cb433b4db3fb3d1">getClassNameOfThisPtr</a>(cs);</div>
|
|
765
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  </div>
|
|
766
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keywordflow">if</span>(thisPtrClassNames.empty())</div>
|
|
767
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  {</div>
|
|
768
|
+
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="comment">// if we cannot infer classname, conservatively push all class nodes</span></div>
|
|
769
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &node: *chg)</div>
|
|
770
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  {</div>
|
|
771
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  chg->csToClassesMap[svfcall].insert(node.second);</div>
|
|
772
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  }</div>
|
|
773
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keywordflow">return</span> chg->csToClassesMap[svfcall];</div>
|
|
774
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  }</div>
|
|
775
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  </div>
|
|
776
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &thisPtrClassName: thisPtrClassNames)</div>
|
|
777
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  {</div>
|
|
778
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CHNode.html">CHNode</a>* thisNode = chg->getNode(thisPtrClassName))</div>
|
|
779
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  {</div>
|
|
780
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CHGraph.html#ad0f60c720b277c60ed8a8966189bb42b">CHGraph::CHNodeSetTy</a>& instAndDesces = getInstancesAndDescendants(thisPtrClassName);</div>
|
|
781
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  chg->csToClassesMap[svfcall].insert(thisNode);</div>
|
|
782
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">for</span> (CHGraph::CHNodeSetTy::const_iterator it2 = instAndDesces.begin(), eit = instAndDesces.end(); it2 != eit; ++it2)</div>
|
|
783
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  chg->csToClassesMap[svfcall].insert(*it2);</div>
|
|
784
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  }</div>
|
|
785
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  }</div>
|
|
786
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">return</span> chg->csToClassesMap[svfcall];</div>
|
|
787
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  }</div>
|
|
788
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> }</div>
|
|
789
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  </div>
|
|
790
|
+
<div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="classSVF_1_1CHGBuilder.html#a87170f2cf98c6094491b8fbafdebec14"> 734</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CHGBuilder.html#a87170f2cf98c6094491b8fbafdebec14">CHGBuilder::addFuncToFuncVector</a>(<a class="code" href="classSVF_1_1CHNode.html#aa4af6538c9994ec54a7b82691f846a31">CHNode::FuncVector</a> &v, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *lf)</div>
|
|
791
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> {</div>
|
|
792
|
+
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">cppUtil::isCPPThunkFunction</a>(lf))</div>
|
|
793
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  {</div>
|
|
794
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span>* tf = <a class="code" href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">cppUtil::getThunkTarget</a>(lf))</div>
|
|
795
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  {</div>
|
|
796
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* pFunction =</div>
|
|
797
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(tf);</div>
|
|
798
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(pFunction-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>());</div>
|
|
799
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordtype">string</span> calleeName = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>;</div>
|
|
800
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  pFunction-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(calleeName);</div>
|
|
801
|
+
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  v.push_back(pFunction);</div>
|
|
802
|
+
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  }</div>
|
|
803
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  }</div>
|
|
804
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">else</span></div>
|
|
805
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  {</div>
|
|
806
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* pFunction =</div>
|
|
807
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(lf);</div>
|
|
808
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">cppUtil::demangle</a>(pFunction-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>());</div>
|
|
809
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordtype">string</span> calleeName = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>;</div>
|
|
810
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  pFunction-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(calleeName);</div>
|
|
811
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  v.push_back(pFunction);</div>
|
|
812
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  }</div>
|
|
813
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> }</div>
|
|
813
814
|
</div><!-- fragment --></div><!-- contents -->
|
|
814
815
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
815
816
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a2401b022638769f59f86ab424a189b6e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string & getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00243">SVFValue.h:243</a></div></div>
|
|
@@ -818,12 +819,12 @@ $(function() {
|
|
|
818
819
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00105">LLVMModule.h:105</a></div></div>
|
|
819
820
|
<div class="ttc" id="aCHGBuilder_8cpp_html_a5b49460faf973332d3cbfc561c994c6c"><div class="ttname"><a href="CHGBuilder_8cpp.html#a5b49460faf973332d3cbfc561c994c6c">pureVirtualFunName</a></div><div class="ttdeci">const string pureVirtualFunName</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00056">CHGBuilder.cpp:56</a></div></div>
|
|
820
821
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_aa5c672ac426ad4085d64d97f8cb14ace"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#aa5c672ac426ad4085d64d97f8cb14ace">SVF::CHGBuilder::buildCHG</a></div><div class="ttdeci">void buildCHG()</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00061">CHGBuilder.cpp:61</a></div></div>
|
|
821
|
-
<div class="ttc" id="anamespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
822
|
+
<div class="ttc" id="anamespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00148">BasicTypes.h:148</a></div></div>
|
|
822
823
|
<div class="ttc" id="aclassSVF_1_1CHEdge_html_a26280c3b724551036f7e3ba2b5922676a78df5157ac61c49a724af5aa03d36d0c"><div class="ttname"><a href="classSVF_1_1CHEdge.html#a26280c3b724551036f7e3ba2b5922676a78df5157ac61c49a724af5aa03d36d0c">SVF::CHEdge::INHERITANCE</a></div><div class="ttdeci">@ INHERITANCE</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00086">CHG.h:86</a></div></div>
|
|
823
824
|
<div class="ttc" id="aclassSVF_1_1CHNode_html_af6e71c1a932464b1b615fc177f5af089"><div class="ttname"><a href="classSVF_1_1CHNode.html#af6e71c1a932464b1b615fc177f5af089">SVF::CHNode::getName</a></div><div class="ttdeci">std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00130">CHG.h:130</a></div></div>
|
|
824
825
|
<div class="ttc" id="aLLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
|
|
825
826
|
<div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00092">GeneralType.h:92</a></div></div>
|
|
826
|
-
<div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#
|
|
827
|
+
<div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
|
|
827
828
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a8325774df9d65d78ef6a66fef59b9a97"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">SVF::SVFValue::setName</a></div><div class="ttdeci">void setName(const std::string &n)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00247">SVFValue.h:247</a></div></div>
|
|
828
829
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_ae0376b8ecdf2093b88e8c529f0e014e0"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#ae0376b8ecdf2093b88e8c529f0e014e0">SVF::CHGBuilder::createNode</a></div><div class="ttdeci">CHNode * createNode(const std::string &name)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00237">CHGBuilder.cpp:237</a></div></div>
|
|
829
830
|
<div class="ttc" id="astructSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8h_source.html#l00047">CppUtil.h:47</a></div></div>
|
|
@@ -831,7 +832,7 @@ $(function() {
|
|
|
831
832
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a21636200f17c62034720c4287aa818b5"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a21636200f17c62034720c4287aa818b5">SVF::LLVMUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const Function * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00039">LLVMUtil.cpp:39</a></div></div>
|
|
832
833
|
<div class="ttc" id="aSVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00512">SVFType.h:512</a></div></div>
|
|
833
834
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00205">LLVMModule.h:205</a></div></div>
|
|
834
|
-
<div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
835
|
+
<div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
835
836
|
<div class="ttc" id="anamespaceSVF_html_ad2b487757f1e1a1d81073120fc1d49c7"><div class="ttname"><a href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">SVF::VFunSet</a></div><div class="ttdeci">Set< const SVFFunction * > VFunSet</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00047">CHG.h:47</a></div></div>
|
|
836
837
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a917c4bd2d5fd1354b5069bf0a68533d9"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">SVF::cppUtil::isCPPThunkFunction</a></div><div class="ttdeci">bool isCPPThunkFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00318">CppUtil.cpp:318</a></div></div>
|
|
837
838
|
<div class="ttc" id="aPTAStat_8h_html"><div class="ttname"><a href="PTAStat_8h.html">PTAStat.h</a></div></div>
|
|
@@ -839,11 +840,11 @@ $(function() {
|
|
|
839
840
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_ac9c6d4315e7a1a826add7ed9cf924553"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">SVF::cppUtil::getThunkTarget</a></div><div class="ttdeci">const Function * getThunkTarget(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00324">CppUtil.cpp:324</a></div></div>
|
|
840
841
|
<div class="ttc" id="aSVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00490">SVFType.h:490</a></div></div>
|
|
841
842
|
<div class="ttc" id="aclassSVF_1_1CHNode_html_a8c51571df92b5e152cc42e9aaf712dc9"><div class="ttname"><a href="classSVF_1_1CHNode.html#a8c51571df92b5e152cc42e9aaf712dc9">SVF::CHNode::addVirtualFunctionVector</a></div><div class="ttdeci">void addVirtualFunctionVector(FuncVector vfuncvec)</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00174">CHG.h:174</a></div></div>
|
|
842
|
-
<div class="ttc" id="anamespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
843
|
-
<div class="ttc" id="anamespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
843
|
+
<div class="ttc" id="anamespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
|
|
844
|
+
<div class="ttc" id="anamespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00146">BasicTypes.h:146</a></div></div>
|
|
844
845
|
<div class="ttc" id="aclassSVF_1_1CHNode_html_aa72c4509da3bfd2a3c656da38fe36c81"><div class="ttname"><a href="classSVF_1_1CHNode.html#aa72c4509da3bfd2a3c656da38fe36c81">SVF::CHNode::setVTable</a></div><div class="ttdeci">void setVTable(const SVFGlobalValue *vtbl)</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00189">CHG.h:189</a></div></div>
|
|
845
846
|
<div class="ttc" id="aWPA_2CMakeLists_8txt_html_a5b660868031b6dee85d01fea51ef09a5"><div class="ttname"><a href="WPA_2CMakeLists_8txt.html#a5b660868031b6dee85d01fea51ef09a5">set</a></div><div class="ttdeci">set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) add_llvm_executable(wpa wpa.cpp) target_link_libraries(wpa PUBLIC $</div><div class="ttdef"><b>Definition:</b> <a href="WPA_2CMakeLists_8txt_source.html#l00001">CMakeLists.txt:1</a></div></div>
|
|
846
|
-
<div class="ttc" id="anamespaceSVF_html_a5ae718cba37d8e34d2946530dc098c8e"><div class="ttname"><a href="namespaceSVF.html#a5ae718cba37d8e34d2946530dc098c8e">SVF::ConstantArray</a></div><div class="ttdeci">llvm::ConstantArray ConstantArray</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
847
|
+
<div class="ttc" id="anamespaceSVF_html_a5ae718cba37d8e34d2946530dc098c8e"><div class="ttname"><a href="namespaceSVF.html#a5ae718cba37d8e34d2946530dc098c8e">SVF::ConstantArray</a></div><div class="ttdeci">llvm::ConstantArray ConstantArray</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00123">BasicTypes.h:123</a></div></div>
|
|
847
848
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_a65112fa6d1b2bc1c7e9c956ec9b91919"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#a65112fa6d1b2bc1c7e9c956ec9b91919">SVF::CHGBuilder::getInstancesAndDescendants</a></div><div class="ttdeci">const CHGraph::CHNodeSetTy & getInstancesAndDescendants(const std::string &className)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00297">CHGBuilder.cpp:297</a></div></div>
|
|
848
849
|
<div class="ttc" id="aclassSVF_1_1CHNode_html_aa4af6538c9994ec54a7b82691f846a31"><div class="ttname"><a href="classSVF_1_1CHNode.html#aa4af6538c9994ec54a7b82691f846a31">SVF::CHNode::FuncVector</a></div><div class="ttdeci">std::vector< const SVFFunction * > FuncVector</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00121">CHG.h:121</a></div></div>
|
|
849
850
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
|
@@ -851,7 +852,7 @@ $(function() {
|
|
|
851
852
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_af983b0e1fbd371d8672e8f03f63084fc"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">SVF::LLVMUtil::isCastConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCastConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00214">LLVMUtil.h:214</a></div></div>
|
|
852
853
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_a2828eb6b2bd86d6f279967c34da8e7e4"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#a2828eb6b2bd86d6f279967c34da8e7e4">SVF::CHGBuilder::analyzeVTables</a></div><div class="ttdeci">void analyzeVTables(const Module &M)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00363">CHGBuilder.cpp:363</a></div></div>
|
|
853
854
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_a443b021eb2b08b92164515750385b058"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#a443b021eb2b08b92164515750385b058">SVF::CHGBuilder::readInheritanceMetadataFromModule</a></div><div class="ttdeci">void readInheritanceMetadataFromModule(const Module &M)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00216">CHGBuilder.cpp:216</a></div></div>
|
|
854
|
-
<div class="ttc" id="anamespaceSVF_html_a0fd33072b099f61eaa642e94ed0c03fc"><div class="ttname"><a href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">SVF::GlobalAlias</a></div><div class="ttdeci">llvm::GlobalAlias GlobalAlias</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
855
|
+
<div class="ttc" id="anamespaceSVF_html_a0fd33072b099f61eaa642e94ed0c03fc"><div class="ttname"><a href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">SVF::GlobalAlias</a></div><div class="ttdeci">llvm::GlobalAlias GlobalAlias</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
|
|
855
856
|
<div class="ttc" id="aObjTypeInference_8h_html"><div class="ttname"><a href="ObjTypeInference_8h.html">ObjTypeInference.h</a></div></div>
|
|
856
857
|
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
857
858
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
@@ -865,25 +866,25 @@ $(function() {
|
|
|
865
866
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_adbff217477a779de9024d9a5777413a7"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#adbff217477a779de9024d9a5777413a7">SVF::CHGBuilder::CHNodeSetTy</a></div><div class="ttdeci">CHGraph::CHNodeSetTy CHNodeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8h_source.html#l00043">CHGBuilder.h:43</a></div></div>
|
|
866
867
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a745a2addadc136075d45c7fb8437af3e"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00195">CppUtil.cpp:195</a></div></div>
|
|
867
868
|
<div class="ttc" id="aclassSVF_1_1CHGraph_html_ad0f60c720b277c60ed8a8966189bb42b"><div class="ttname"><a href="classSVF_1_1CHGraph.html#ad0f60c720b277c60ed8a8966189bb42b">SVF::CHGraph::CHNodeSetTy</a></div><div class="ttdeci">Set< const CHNode * > CHNodeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00222">CHG.h:222</a></div></div>
|
|
868
|
-
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
869
|
+
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00106">BasicTypes.h:106</a></div></div>
|
|
869
870
|
<div class="ttc" id="aclassSVF_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#l00297">SVFValue.h:297</a></div></div>
|
|
870
871
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a1cf2e4671b16b477cc779c72f2419234"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">SVF::cppUtil::getBeforeBrackets</a></div><div class="ttdeci">std::string getBeforeBrackets(const std::string &name)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00127">CppUtil.cpp:127</a></div></div>
|
|
871
|
-
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_adc1b1f45e7000fa57e3a70ef9e4af853"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#adc1b1f45e7000fa57e3a70ef9e4af853">SVF::CHGBuilder::getCSClasses</a></div><div class="ttdeci">const CHNodeSetTy & getCSClasses(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#
|
|
872
|
+
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_adc1b1f45e7000fa57e3a70ef9e4af853"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#adc1b1f45e7000fa57e3a70ef9e4af853">SVF::CHGBuilder::getCSClasses</a></div><div class="ttdeci">const CHNodeSetTy & getCSClasses(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00696">CHGBuilder.cpp:696</a></div></div>
|
|
872
873
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_ad9f1c51ba6dc279f22aa671f29257a50"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#ad9f1c51ba6dc279f22aa671f29257a50">SVF::CHGBuilder::buildInternalMaps</a></div><div class="ttdeci">void buildInternalMaps()</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00154">CHGBuilder.cpp:154</a></div></div>
|
|
873
874
|
<div class="ttc" id="aclassSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00856">SVFValue.h:856</a></div></div>
|
|
874
|
-
<div class="ttc" id="anamespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
875
|
+
<div class="ttc" id="anamespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00112">BasicTypes.h:112</a></div></div>
|
|
875
876
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_ae6d92d48149334b177e9cb8be411b09d"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#ae6d92d48149334b177e9cb8be411b09d">SVF::CHGBuilder::connectInheritEdgeViaCall</a></div><div class="ttdeci">void connectInheritEdgeViaCall(const Function *caller, const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00161">CHGBuilder.cpp:161</a></div></div>
|
|
876
|
-
<div class="ttc" id="anamespaceSVF_html_a032e8478a7b6a8bb0b7755c98a7bce91"><div class="ttname"><a href="namespaceSVF.html#a032e8478a7b6a8bb0b7755c98a7bce91">SVF::const_inst_iterator</a></div><div class="ttdeci">llvm::const_inst_iterator const_inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
877
|
+
<div class="ttc" id="anamespaceSVF_html_a032e8478a7b6a8bb0b7755c98a7bce91"><div class="ttname"><a href="namespaceSVF.html#a032e8478a7b6a8bb0b7755c98a7bce91">SVF::const_inst_iterator</a></div><div class="ttdeci">llvm::const_inst_iterator const_inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00250">BasicTypes.h:250</a></div></div>
|
|
877
878
|
<div class="ttc" id="anamespaceSVF_html_a340a9e77adc2bbfdee79e22da9ead234"><div class="ttname"><a href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">SVF::VTableSet</a></div><div class="ttdeci">Set< const SVFGlobalValue * > VTableSet</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00044">CHG.h:44</a></div></div>
|
|
878
879
|
<div class="ttc" id="aclassSVF_1_1CHNode_html_abac89987927dadd53dd646eae540a024"><div class="ttname"><a href="classSVF_1_1CHNode.html#abac89987927dadd53dd646eae540a024">SVF::CHNode::setPureAbstract</a></div><div class="ttdeci">void setPureAbstract()</div><div class="ttdoc">Attribute.</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00148">CHG.h:148</a></div></div>
|
|
879
880
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a8de9a0f0c400240b6cb433b4db3fb3d1"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a8de9a0f0c400240b6cb433b4db3fb3d1">SVF::cppUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">Set< std::string > getClassNameOfThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00536">CppUtil.cpp:536</a></div></div>
|
|
880
881
|
<div class="ttc" id="aSVFModule_8h_html"><div class="ttname"><a href="SVFModule_8h.html">SVFModule.h</a></div></div>
|
|
881
882
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_aab1dce633f9a03796c208b6fba2bd2b4"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#aab1dce633f9a03796c208b6fba2bd2b4">SVF::cppUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00287">CppUtil.cpp:287</a></div></div>
|
|
882
|
-
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
883
|
+
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
|
|
883
884
|
<div class="ttc" id="aclassSVF_1_1CHNode_html"><div class="ttname"><a href="classSVF_1_1CHNode.html">SVF::CHNode</a></div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00108">CHG.h:108</a></div></div>
|
|
884
885
|
<div class="ttc" id="aclassSVF_1_1CHNode_html_a00343177422c8d84d707432d0c483438"><div class="ttname"><a href="classSVF_1_1CHNode.html#a00343177422c8d84d707432d0c483438">SVF::CHNode::setTemplate</a></div><div class="ttdeci">void setTemplate()</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00156">CHG.h:156</a></div></div>
|
|
885
|
-
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_a87170f2cf98c6094491b8fbafdebec14"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#a87170f2cf98c6094491b8fbafdebec14">SVF::CHGBuilder::addFuncToFuncVector</a></div><div class="ttdeci">void addFuncToFuncVector(CHNode::FuncVector &v, const Function *f)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#
|
|
886
|
-
<div class="ttc" id="anamespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
886
|
+
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_a87170f2cf98c6094491b8fbafdebec14"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#a87170f2cf98c6094491b8fbafdebec14">SVF::CHGBuilder::addFuncToFuncVector</a></div><div class="ttdeci">void addFuncToFuncVector(CHNode::FuncVector &v, const Function *f)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00734">CHGBuilder.cpp:734</a></div></div>
|
|
887
|
+
<div class="ttc" id="anamespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00124">BasicTypes.h:124</a></div></div>
|
|
887
888
|
<div class="ttc" id="aLLVMModule_8h_html"><div class="ttname"><a href="LLVMModule_8h.html">LLVMModule.h</a></div></div>
|
|
888
889
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_ae0f374d110eefcfcf4c196c85db6c0d2"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ae0f374d110eefcfcf4c196c85db6c0d2">SVF::cppUtil::getClassNameFromVtblObj</a></div><div class="ttdeci">std::string getClassNameFromVtblObj(const std::string &vtblName)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00239">CppUtil.cpp:239</a></div></div>
|
|
889
890
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy & getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00197">GenericGraph.h:197</a></div></div>
|
|
@@ -893,19 +894,19 @@ $(function() {
|
|
|
893
894
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_a87ad835786fb8fed2a24c122fa839c25"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#a87ad835786fb8fed2a24c122fa839c25">SVF::CHGBuilder::buildCHGEdges</a></div><div class="ttdeci">void buildCHGEdges(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00132">CHGBuilder.cpp:132</a></div></div>
|
|
894
895
|
<div class="ttc" id="aclassSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01113">SVFValue.h:1113</a></div></div>
|
|
895
896
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae74f307b6f96950ceedb2c375ef1c3a3"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">SVF::LLVMModuleSet::getSVFInstruction</a></div><div class="ttdeci">SVFInstruction * getSVFInstruction(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00219">LLVMModule.h:219</a></div></div>
|
|
896
|
-
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_abab6d95945a43fbe4c73ac12550f5d8c"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#abab6d95945a43fbe4c73ac12550f5d8c">SVF::CHGBuilder::buildCSToCHAVtblsAndVfnsMap</a></div><div class="ttdeci">void buildCSToCHAVtblsAndVfnsMap()</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#
|
|
897
|
-
<div class="ttc" id="anamespaceSVF_html_a67f3f86344f028cacfbeb08caaf7bb0f"><div class="ttname"><a href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">SVF::GlobalValue</a></div><div class="ttdeci">llvm::GlobalValue GlobalValue</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
897
|
+
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_abab6d95945a43fbe4c73ac12550f5d8c"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#abab6d95945a43fbe4c73ac12550f5d8c">SVF::CHGBuilder::buildCSToCHAVtblsAndVfnsMap</a></div><div class="ttdeci">void buildCSToCHAVtblsAndVfnsMap()</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00655">CHGBuilder.cpp:655</a></div></div>
|
|
898
|
+
<div class="ttc" id="anamespaceSVF_html_a67f3f86344f028cacfbeb08caaf7bb0f"><div class="ttname"><a href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">SVF::GlobalValue</a></div><div class="ttdeci">llvm::GlobalValue GlobalValue</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00088">BasicTypes.h:88</a></div></div>
|
|
898
899
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a4550f2fb815882edfb666ac818792064"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4550f2fb815882edfb666ac818792064">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(const std::string &msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00099">SVFUtil.cpp:99</a></div></div>
|
|
899
900
|
<div class="ttc" id="aclassSVF_1_1CHEdge_html_a26280c3b724551036f7e3ba2b5922676a8721eaefd547d6ba5229463d644815f4"><div class="ttname"><a href="classSVF_1_1CHEdge.html#a26280c3b724551036f7e3ba2b5922676a8721eaefd547d6ba5229463d644815f4">SVF::CHEdge::INSTANTCE</a></div><div class="ttdeci">@ INSTANTCE</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00087">CHG.h:87</a></div></div>
|
|
900
901
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a5dfa3f178d4abf37177d0d74ff4c6a97"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVF::GenericGraph::const_iterator</a></div><div class="ttdeci">IDToNodeMapTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00360">GenericGraph.h:360</a></div></div>
|
|
901
|
-
<div class="ttc" id="anamespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
902
|
+
<div class="ttc" id="anamespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00120">BasicTypes.h:120</a></div></div>
|
|
902
903
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
|
|
903
|
-
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_aa677ac2c640ee7fc0dab1d4fe508ead8"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#aa677ac2c640ee7fc0dab1d4fe508ead8">SVF::CHGBuilder::buildVirtualFunctionToIDMap</a></div><div class="ttdeci">void buildVirtualFunctionToIDMap()</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#
|
|
904
|
+
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html_aa677ac2c640ee7fc0dab1d4fe508ead8"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#aa677ac2c640ee7fc0dab1d4fe508ead8">SVF::CHGBuilder::buildVirtualFunctionToIDMap</a></div><div class="ttdeci">void buildVirtualFunctionToIDMap()</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00556">CHGBuilder.cpp:556</a></div></div>
|
|
904
905
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a643736d0d9aae502784f736f492201b4"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a643736d0d9aae502784f736f492201b4">SVF::cppUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00346">CppUtil.cpp:346</a></div></div>
|
|
905
906
|
<div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
|
|
906
|
-
<div class="ttc" id="anamespaceSVF_html_a3011dbac9102f044ad5f36a4ad3d4a71"><div class="ttname"><a href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">SVF::NamedMDNode</a></div><div class="ttdeci">llvm::NamedMDNode NamedMDNode</div><div class="ttdoc">LLVM metadata and debug information.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
907
|
+
<div class="ttc" id="anamespaceSVF_html_a3011dbac9102f044ad5f36a4ad3d4a71"><div class="ttname"><a href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">SVF::NamedMDNode</a></div><div class="ttdeci">llvm::NamedMDNode NamedMDNode</div><div class="ttdoc">LLVM metadata and debug information.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00111">BasicTypes.h:111</a></div></div>
|
|
907
908
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a5a7dc8680a9714e08b01dd339b85bb20"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">SVF::LLVMUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00045">LLVMUtil.h:45</a></div></div>
|
|
908
|
-
<div class="ttc" id="anamespaceSVF_html_a28eec26ec8edaa5e96aecfeb01f6c0d4"><div class="ttname"><a href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">SVF::MDString</a></div><div class="ttdeci">llvm::MDString MDString</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#
|
|
909
|
+
<div class="ttc" id="anamespaceSVF_html_a28eec26ec8edaa5e96aecfeb01f6c0d4"><div class="ttname"><a href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">SVF::MDString</a></div><div class="ttdeci">llvm::MDString MDString</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00101">BasicTypes.h:101</a></div></div>
|
|
909
910
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_af19bec54621f4605bac4feaf9f73803c"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">SVF::cppUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00444">CppUtil.cpp:444</a></div></div>
|
|
910
911
|
<div class="ttc" id="aSVFType_8h_html_a263149d980e5c3165dfe8750bfac3223"><div class="ttname"><a href="SVFType_8h.html#a263149d980e5c3165dfe8750bfac3223">DCHA</a></div><div class="ttdeci">#define DCHA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00506">SVFType.h:506</a></div></div>
|
|
911
912
|
<div class="ttc" id="aSVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DBUG model of each pass.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00484">SVFType.h:484</a></div></div>
|